ASP Timetable เป็นแอปพลิเคชันกำหนดเวลาที่นำมาใช้ในลักษณะที่ประกาศโดยใช้ Answer Set Programming และ Clingo Solver ในหลักสูตรปัญญาประดิษฐ์ของฉัน การตั้งเวลาถือเป็นปัญหา AI แบบคลาสสิกที่เกี่ยวข้องกับข้อจำกัดหลายประการ และโปรแกรมนี้จัดการกับความท้าทายและข้อควรพิจารณาต่างๆ ที่เกี่ยวข้องกับการสร้างตารางเวลา
atoms.lp
)src
ของโปรเจ็กต์ git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
สร้างชุดคำตอบโดยใช้ Clingo
และไพพ์เอาต์พุตไปยังสคริปต์ python ที่จะแยกวิเคราะห์ข้อมูลและสร้าง GUI: clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
โดยที่:
clingo
เป็นคำสั่งที่ใช้ในการรันสร้างชุดคำตอบโดยใช้ไฟล์ AnsProlog ที่ระบุtimetable.lp
ประกอบด้วยตัวสร้าง กฎ ข้อจำกัด และตัวเลือก dislay เพื่อสร้างตารางเวลาที่เหมาะสมที่สุดatoms.lp
ประกอบด้วยอะตอมทั้งหมด เช่น หลักสูตร อาจารย์ ห้อง ...--outf=2
ส่งออกชุดคำตอบที่สร้างขึ้นในรูปแบบ JSON|
ไพพ์เอาต์พุต JSON ลงในสคริปต์หลามpython Timetable.py
รันสคริปต์ Python เพื่อแยกวิเคราะห์เอาต์พุต JSON และสร้าง Tkinter GUI ด้วยข้อมูลจากคำตอบที่ดีที่สุดรอจนกว่าตารางเวลาจะถูกสร้างขึ้นใน ASP และ GUI จะเปิดตัวใน Python
หากคุณเพียงต้องการสร้างชุดคำตอบโดยใช้ clingo โดยไม่มี Tkinter GUI:
clingo -n 0 asp/timetable.lp asp/atoms.lp
หากคุณต้องการรันกรณีทดสอบ ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์ "src" ก่อนที่จะใช้คำสั่งนี้ และแทนที่ด้วยกรณีทดสอบในไดเร็กทอรี ASP-Timetable/src/asp/test_cases
:
clingo -n 0 asp/timetable.lp asp/test_cases/.lp --outf=2 | python Timetable.py
คุณสามารถดูเอกสาร LANA บนเว็บเบราว์เซอร์ของคุณ (สร้างโดยใช้ส่วนขยาย SeaLion Eclipse) โดยไปที่โฟลเดอร์ documentation
และเปิดไฟล์ index.html
ในเว็บเบราว์เซอร์ของคุณ