Lezione n°17 Prof.ssa Rossella Petreschi Lezione del 3/12/2014 del Corso di Algoritmica
Il problema dell’assegnamento INPUT: n persone, n differenti lavori. Matrice dei costi C(nxn):il costo dell’assegnamento della persona i al lavoro j è la quantità C(i,j). PROBLEMA: assegnare n persone ad n lavori (ogni persona ad esattamente un lavoro, ogni lavoro ad esattamente una persona) in modo da rendere il costo totale dell’assegnamento il minore possibile. ALTRA FORMULAZIONE: Selezionare un elemento in ogni riga della matrice in modo tale che la somma degli elementi selezionati sia la più piccola possibile e nessuna coppia di elementi selezionati sia sulla stessa colonna. LOWER BOUND: Somma dei valori minimi sulle singole righe, che in generale non è una soluzione ammissibile. TECNICA: best-first branch and bound SOLUZIONE POLINOMIALE: metodo ungherese 2
Il problema della bisaccia INPUT: n elementi ciascuno di peso wi e valore vi e una bisaccia di capacità W. PROBLEMA: trovare la migliore scelta di elementi che non superando la capacità della bisaccia, ottimizzi il guadagno della scelta stessa. CONVENIENZA: Ordinare in modo non decrescente rispetto al rapporto valore/peso v1/w1 ≥ v2/w2 ≥ v3/w3 ≥…≥vn/wn UPPER BOUND: ub = Svk + (W-Swk)(vi+1/wi+1 ), k= 1,…i, i=1,…n TECNICA: best-first branch and bound 3
Ciclo Euleriano/ Ciclo Hamiltoniano CICLO EULERIANO passa per ogni arco del grafo una e una sola volta Proprietà strutturale G tutti i nodi di grado pari CICLO HAMILTONIANO passa per ogni nodo del grafo una e una sola volta Proprietà strutturale ???????? DODECAEDRO DI HAMILTON 4
Ciclo Hamiltoniano INPUT: G =(V,E) connesso, V=n PROBLEMA: trovare un (tutti) i cicli hamiltoniani di G, se esistono RAPPRESENTAZIONE: con t-ple di dimensione n (x1,x2,…xn), xi rappresenta l’i-esimo vertice visitato nel ciclo proposto VINCOLI ESPLICITI: la t-pla è una permutazione VINCOLI IMPLICITI: (xi xi+1 ) deve essere un arco Per evitare di generare più volte uno stesso ciclo, assumiamo che il primo elemento della permutazione sia sempre il vertice 1 del grafo 5
Il problema del commesso viaggiatore IL NOME: data una rete di città, connesse tramite delle strade, trovare il percorso di minore lunghezza che un commesso viaggiatore deve seguire per visitare tutte le città una e una sola volta. IL MODELLO: un grafo pesato i cui nodi rappresentano le città, gli archi le strade fra le città e i pesi sugli archi la distanza fra le due città in considerazione. PROBLEMA: trovare il ciclo di minor peso (minor lunghezza) che passi per tutti i nodi una e una sola volta. CONFRONTO: la differenza con il circuito hamiltoniano è che qui il grafo è pesato LOWER BOUND 1: lb = distanza minima fra tutte le città moltiplicata per n LOWER BOUND 2: lb = Ssi /2, 1≤i≤n, dove si è la somma delle distanze dalla città i alle due città ad essa più vicine 6