ASP Timetable é um aplicativo de tabela de horários implementado de forma declarativa usando Answer Set Programming e o solucionador Clingo meu curso de Inteligência Artificial. A tabela de horários é considerada um problema clássico de IA que envolve muitas restrições, e este programa aborda os diferentes desafios e considerações que envolvem a geração de horários.
atoms.lp
)src
do projeto. git clone https://github.com/Adamouization/ASP-Timetable
cd ASP-Timetable/src/
Gere o conjunto de respostas usando Clingo
e canalize a saída para o script python que analisará os dados e gerará uma GUI: clingo -n 0 asp/timetable.lp asp/atoms.lp --outf=2 | python Timetable.py
onde:
clingo
é o comando usado para executar a geração do conjunto de respostas usando os arquivos AnsProlog especificadostimetable.lp
contém os geradores, regras, restrições e opções de exibição para gerar o horário idealatoms.lp
contém todos os átomos, como cursos, palestrantes, salas, ...--outf=2
gera o conjunto de respostas gerado no formato JSON|
canaliza a saída JSON para o script pythonpython Timetable.py
executa o script Python para analisar a saída JSON e criar a GUI Tkinter com os dados da resposta ideal.Aguarde até que o horário seja gerado em ASP e a GUI seja iniciada em Python.
Se você deseja apenas gerar o conjunto de respostas usando clingo sem a GUI do Tkinter:
clingo -n 0 asp/timetable.lp asp/atoms.lp
Se você deseja apenas executar os casos de teste, certifique-se de estar na pasta "src" antes de usar este comando e substitua pelo caso de teste no diretório ASP-Timetable/src/asp/test_cases
:
clingo -n 0 asp/timetable.lp asp/test_cases/<test-file>.lp --outf=2 | python Timetable.py
Você pode visualizar a documentação LANA em seu navegador da web (gerada usando a extensão SeaLion Eclipse). Para isso, acesse a pasta documentation
e abra o arquivo index.html
em seu navegador.