ASP Timetable
1.0.0
ASP Timetable は、Answer Set Programming と人工知能コースの Clingo ソルバーを使用して宣言的な方法で実装された時間割アプリケーションです。時刻表作成は多くの制約を伴う古典的な AI の問題と考えられていますが、このプログラムは時刻表の生成に伴うさまざまな課題と考慮事項に取り組みます。
atoms.lp
でユーザーが指定)src
フォルダーに移動します。 git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
Clingo
使用して回答セットを生成し、データを解析して GUI を生成する Python スクリプトに出力をパイプします。 clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
ここで:
clingo
、指定された AnsProlog ファイルを使用して回答セットの生成を実行するために使用されるコマンドです。timetable.lp
最適なタイムテーブルを生成するためのジェネレーター、ルール、制約、および表示オプションが含まれていますatoms.lp
は、コース、講師、部屋などのすべてのアトムが含まれています。--outf=2
生成された回答セットを JSON 形式で出力します。|
JSON 出力を Python スクリプトにパイプしますpython Timetable.py
、Python スクリプトを実行して JSON 出力を解析し、最適な答えからのデータを使用して Tkinter GUI を作成します。タイムテーブルが ASP で生成され、GUI が Python で起動されるまで待ちます。
Tkinter GUI を使用せずに clingo を使用して回答セットを生成したいだけの場合は、次のようにします。
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ドキュメントは Web ブラウザで表示できます (SeaLion Eclipse 拡張機能を使用して生成)。これを行うには、 documentation
フォルダーに移動し、Web ブラウザーでindex.html
ファイルを開きます。