Glossario ยท approach
Programmazione a Vincoli
Paradigma di ottimizzazione centrato sul trovare una soluzione che soddisfi un insieme di vincoli โ particolarmente forte per scheduling e assegnazione.
Constraint ProgrammingCP
La programmazione a vincoli (Constraint Programming โ CP) รจ un approccio di ottimizzazione che definisce un problema come 'variabili + vincoli' e cerca soluzioni che soddisfino tutti i vincoli. Differenza dalla programmazione intera mista (MIP): MIP lavora su equazioni lineari e minimizza/massimizza una funzione di costo/beneficio; CP esprime vincoli logici direttamente e si concentra prima sul trovare una soluzione ammissibile, poi sul miglioramento. Per problemi con struttura 'prima zero conflitti, poi ottimizzare' โ scheduling, orario lezioni, assegnazione, pianificazione turni, puzzle, configurazione โ CP fornisce tipicamente soluzioni piรน velocemente del MIP. Sono disponibili diversi motori open-source maturi di programmazione a vincoli; esistono anche prodotti commerciali.
รrnek
Un orario scolastico: 50 docenti e 30 classi sotto molti vincoli. Il solver CP imposta 'variabili = ora + aula per ogni corso', 'vincoli = nessun conflitto'; prova assegnazioni di variabili e trova una soluzione in secondi o minuti.