Vai al contenuto

1.2 Categorie di problemi di ottimizzazione combinatoria

  • Le decisioni di un problema di ottimizzazione combinatoria rientrano in cinque categorie. A ogni categoria sono associati un oggetto combinatorio, che è la forma di una soluzione, e un tipo naturale di variabili decisionali.

1.2.1 Categorie di decisioni

  1. IN/OUT (inclusione/esclusione). Ogni elemento è selezionato oppure no: una soluzione è un sottoinsieme degli elementi, descritto da variabili binarie \(x_j \in \{0,1\}\), con \(x_j = 1\) se e solo se l'elemento \(j\) è selezionato.

    • Esempi: selezionare i progetti da finanziare con un budget limitato, scegliere i prodotti di un portafoglio, decidere quali clienti visitare in un percorso.
  2. Conteggio (quantità discrete). La decisione è quante unità di ogni elemento usare: una soluzione è un vettore di quantità intere, descritto da variabili intere \(x_j \in \Z_{\ge 0}\).

    • Esempi: quante unità di un prodotto produrre, quanti operatori assegnare a un turno, quanti server attivare in un data center.
  3. Assegnamento. Ogni elemento è assegnato a esattamente una fra diverse risorse distinte: una soluzione è una funzione dagli elementi alle risorse, descritta da variabili binarie \(x_{ij} \in \{0,1\}\), uguali a \(1\) se e solo se l'elemento \(j\) è assegnato alla risorsa \(i\).

    • Esempi: assegnare compiti a macchine o persone, abbinare studenti a progetti, allocare veicoli ai percorsi di consegna.
  4. Ordinamento e sequenze. La decisione è l'ordine in cui gli elementi sono lavorati o visitati: una soluzione è una permutazione \(\sigma = (\sigma_1,\dots,\sigma_n)\) degli elementi, o un ordinamento ciclico per un giro.

    • Esempi: l'ordine in cui sono lavorati i lavori, la sequenza delle operazioni su una macchina, l'ordine di visita dei clienti.
  5. Configurazione e partizionamento. Gli elementi sono suddivisi in gruppi, ciascuno dei quali soddisfa una condizione come una capacità: una soluzione è una partizione degli elementi in gruppi intercambiabili.

    • Esempi: suddividere un insieme di elementi in gruppi, impaccare oggetti in contenitori, tagliare materiali minimizzando lo sfrido.
Categoria Oggetto combinatorio Variabili naturali
IN/OUT sottoinsieme \(x_j \in \{0,1\}\)
conteggio vettore di quantità intere \(x_j \in \Z_{\ge 0}\)
assegnamento funzione (classi etichettate) \(x_{ij} \in \{0,1\}\), una risorsa \(i\) per ogni \(j\)
ordinamento e sequenze permutazione, ordinamento ciclico \(x_{ij} \in \{0,1\}\), uguale a \(1\) se \(j\) segue \(i\)
configurazione e partizionamento partizione (classi non etichettate) \(x_{ij} \in \{0,1\}\), elemento \(j\) nel gruppo \(i\)
  • La tabella riassume le cinque categorie, i loro oggetti combinatori e le loro variabili naturali.

  • Con un insieme base opportuno ogni categoria rientra nella Definizione 1.1: per un assegnamento l'insieme base è l'insieme delle coppie (elemento, risorsa), per un ordinamento l'insieme delle coppie di elementi consecutivi.

  • Assegnamento e partizionamento differiscono solo nelle risorse: risorse distinte danno classi etichettate, risorse identiche danno gruppi intercambiabili (Sezione 1.3).

La categoria delle decisioni determina l'oggetto combinatorio delle soluzioni, il numero di soluzioni candidate e le variabili decisionali naturali.

1.2.2 Aree applicative

  • I problemi di ottimizzazione combinatoria nascono in molte aree applicative. Le principali, con le loro decisioni tipiche e alcuni esempi, sono:
Area Decisioni tipiche Esempi
pianificazione della produzione che cosa, quando e quanto produrre, con quali risorse lot sizing, pianificazione della capacità, bilanciamento delle linee di assemblaggio
scheduling ordine e tempi delle operazioni sulle risorse scheduling dei lavori sulle macchine, scheduling di progetti, scheduling della manutenzione
localizzazione di impianti dove aprire gli impianti e quali clienti serve ciascuno localizzazione di magazzini, di stabilimenti, di servizi di emergenza
packing come sistemare oggetti in contenitori selezione del carico, carico di più veicoli, carico dei pallet
taglio come tagliare il materiale grezzo nei pezzi richiesti taglio di barre e lastre, minimizzazione dello sfrido, taglio a ghigliottina
logistica e catena di fornitura percorsi, flotte e livelli di scorta instradamento di veicoli, gestione della flotta, gestione delle scorte
trasporti equipaggi, veicoli e orari di un sistema di mobilità turnazione degli equipaggi, instradamento degli aerei, orari ferroviari
gestione del personale assegnamento di persone a compiti, turni e ruoli pianificazione della forza lavoro, turni degli infermieri, pianificazione dei turni
progettazione di reti quali nodi e archi di una rete attivare reti di telecomunicazione, energetiche e di trasporto
  • Un problema reale combina spesso diverse categorie. Per esempio, la localizzazione di impianti decide quali impianti aprire (IN/OUT) e assegna ogni cliente a un impianto aperto (assegnamento).

1.2.3 I problemi del corso per categoria

  • La tabella colloca i problemi del corso nelle loro categorie; ogni nome rimanda alla sua pagina.
Problema Soluzione Categoria
problema dello zaino 0/1 (KP) sottoinsieme di oggetti IN/OUT
problema del subset sum (SSP) sottoinsieme di oggetti IN/OUT
problema dello zaino limitato (BKP) numero di copie di ogni oggetto conteggio
problema dello zaino illimitato (UKP) numero di copie di ogni oggetto conteggio
problema dello zaino multidimensionale (MDKP) sottoinsieme di oggetti IN/OUT
problema degli zaini multipli (MKP) ogni oggetto in uno zaino o in nessuno assegnamento
problema dello zaino a scelta multipla (MCKP) un oggetto per classe IN/OUT
problema dello zaino con setup (KPS) sottoinsieme di classi e di oggetti IN/OUT
problema del bin packing (BPP) partizione degli oggetti nei contenitori partizionamento
problema del cutting stock (CSP) numero di rotoli tagliati con ogni schema configurazione, conteggio
problema della colorazione dei vertici (VCP) partizione dei vertici in insiemi stabili partizionamento
problema della clique massima (MCP) sottoinsieme di vertici IN/OUT
problema dell'insieme stabile massimo (MSSP) sottoinsieme di vertici IN/OUT
problema del commesso viaggiatore (TSP) ordinamento ciclico delle città ordinamento
problema del commesso viaggiatore asimmetrico (ATSP) ordinamento delle città su un giro ordinamento
scheduling su macchine parallele identiche (\(P\|C_{\max}\)) assegnamento dei lavori alle macchine assegnamento
problema di lot sizing capacitato (CLS) periodi di setup e quantità prodotte IN/OUT, conteggio

Avanti: 1.3 Contare le soluzioni