L'obiettivo di questo progetto è la realizzazione di un programma che, simulando un caso d'uso reale, mostri le potenzialità dell'Answer Set Programming nella risoluzione di problemi di soddisfacimento di vincoli che possiamo categorizzare in strettamente necessari alla risoluzione del problema o desiderabili ma non essenziali. Il caso d'uso su cui tale lavoro si incentra riguarda la creazione di un calendario delle lezioni e l'assegnazione delle aule ai vari gruppi classe di un generico istituto scolastico. Il primo passo è stato quello di creare una versione base del programma contenente tutti i vincoli necessari richiesti dal contesto al fine di ottenere una soluzione valida. In seguito è stata creata una componente del programma che, presi i vincoli desiderati, andrà a effettuare varie risoluzioni, alla ricerca di quella più conforme e vicina alle richieste inserite. Successivamente, si è realizzata un'interfaccia grafica per mostrare la possibile semplicità di utilizzo del software anche per utenti senza conoscenze specifiche relativamente allo strumento in questione. L'obiettivo finale è dunque quello di creare un software che, ricevuti in input i vincoli desiderati e i vincoli necessari, vada a restituire la soluzione contenente il maggior numero possibile di vincoli soddisfatti. Tale fine è stato raggiunto tramite l'utilizzo del solver Clingo e due librerie Python: Clyngor e Kivy.
Answer Set Programming e gestione della didattica scolastica
ANTAL BURLACU, SABIN
2019/2020
Abstract
L'obiettivo di questo progetto è la realizzazione di un programma che, simulando un caso d'uso reale, mostri le potenzialità dell'Answer Set Programming nella risoluzione di problemi di soddisfacimento di vincoli che possiamo categorizzare in strettamente necessari alla risoluzione del problema o desiderabili ma non essenziali. Il caso d'uso su cui tale lavoro si incentra riguarda la creazione di un calendario delle lezioni e l'assegnazione delle aule ai vari gruppi classe di un generico istituto scolastico. Il primo passo è stato quello di creare una versione base del programma contenente tutti i vincoli necessari richiesti dal contesto al fine di ottenere una soluzione valida. In seguito è stata creata una componente del programma che, presi i vincoli desiderati, andrà a effettuare varie risoluzioni, alla ricerca di quella più conforme e vicina alle richieste inserite. Successivamente, si è realizzata un'interfaccia grafica per mostrare la possibile semplicità di utilizzo del software anche per utenti senza conoscenze specifiche relativamente allo strumento in questione. L'obiettivo finale è dunque quello di creare un software che, ricevuti in input i vincoli desiderati e i vincoli necessari, vada a restituire la soluzione contenente il maggior numero possibile di vincoli soddisfatti. Tale fine è stato raggiunto tramite l'utilizzo del solver Clingo e due librerie Python: Clyngor e Kivy.File | Dimensione | Formato | |
---|---|---|---|
853494_tesiantal.pdf
non disponibili
Tipologia:
Altro materiale allegato
Dimensione
967.81 kB
Formato
Adobe PDF
|
967.81 kB | Adobe PDF |
Se sei interessato/a a consultare l'elaborato, vai nella sezione Home in alto a destra, dove troverai le informazioni su come richiederlo. I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/29698