Il problema dello zaino

Slides:



Advertisements
Presentazioni simili
Metodologia Sperimentale Agronomica / Metodi Statistici per la Ricerca Ambientale Marco Acutis a.a CdS.
Advertisements

I circuiti elettrici.
IL GOLD STANDARD: INTRODUZIONE
XXXII CONVEGNO NAZIONALE Società Italiana di Chimica Agraria
Campi di gravità e topografia: analisi con QGIS
Regole associative Gianluca Amato
Ciclo di Seminari e Corso
Valutazione dei risultati della classificazione
Generalità Laboratorio Arduino.
Natura e origini della attuale crisi europea
ECONOMIA DELLE ISTITUZIONI FINANZIARIE
Stato di COMPASS Franco Bradamante CSN1 Roma, 16 luglio 2012.
La struttura dei materiali
ESSERE HOMELESS: PERCORSI DI VITA E FATTORI DETERMINANTI
Introduzione a VPN Ing. Gianpiero Ciacci.
Le verifiche empiriche del teorema di Heckscher-Ohlin: il paradosso di Leontief Wassily Leontief realizzò la prima verifica empirica del teorema di HO.
…. modello di Solow?.
Politica economica: che cosa è?
 π BUZZO GIACOMO D’AGOSTINO ALBERTO DE ANGELIS FEDERICA
“BLAISE PASCAL”- Voghera-
La vitamina C è una molecola contenente C,H e O
REDDITO DI CITTADINANZA E OPPORTUNITA’ ECONOMICA: UN CONFRONTO TRA ITALIA E RESTO D’EUROPA Pasquale Tridico Dipartimento di Economia, Università Roma Tre.
Classificazione e Predizione
L’economia monetaria Corso di Economia delle Istituzioni Finanziarie
L’infiltrazione LM-75: 2016/2017
UN NUOVO MODO DI GUARDARE IL MONDO
LA PREVENZIONE INCENDI NELLE STRUTTURE RELIGIOSE APERTE AL PUBBLICO
LE NOVITÀ DEL BILANCIO 2016 …………………………………………………………………………………………………………..
Le unità territoriali per le analisi socio-economiche
Pompe di calore a integrazione geotermica
ISTITUZIONI (regole scritte e nn scritte che governano l’interazione tra individui) → d.p. e contratti → norme sociali con appropriati Δ delle regole.
Università di Roma Tor Vergata
Convegno europeo sui minori
ATIPICITA’ DEL FATTORE UMANO NEL PILOTAGGIO DEI DRONI
CALENDARIO LEZIONI AGGIORNATO
RAEE è l’acronimo di Rifiuti da Apparecchiature Elettriche ed Elettroniche; ogni elettrodomestico ha un ciclo di vita terminato il quale, sia per malfunzionamento.
Appunti per ostetriche e non solo
Ricerca e innovazione:
Pubblica Amministrazione: semplificazione e costi della politica
Il processo di analisi dei fabbisogni
Comunicazioni Assemblea nazionale TTA 1-2 dicembre 2016
Proactive Care e Proactive Care Advanced
Maria Antonietta Volonté Dipartimento di Neurologia
IL CONFLITTO NELLA CHIESA PRIMITIVA
Piano di formazione Docenti neoassunti a.s. 2016/2017
È possibile rendere comprensibile oggi questo termine filosofico, al di fuori della esigua cerchia degli specialisti? Io una volta ci ho provato in una.
ACCORDO AGROAMBIENTALE D’AREA OPPORTUNITA’ PER LA VALDASO
Il secondo principio.
PROGETTO RELAZIONI PREPOTENTI
Vitamine Sono sostanze organiche a basso peso molecolare strutturalmente assai varie indispensabili per lo svolgimento delle funzioni vitali, di origine.
La misurazione e la valutazione della performance
I PRINCIPI NUTRITIVI Quali sono, I test per individuarli &
1.2 Nuovi prodotti alimentari
ASSOCIAZIONE ITALIANA GIURISTI DI IMPRESA
L’evoluzione del Diritto delle Assicurazioni Continuità o rottura con il passato? Avv. Giuseppe Ranieri Studio Legale Tributario Ranieri Comitato Esecutivo.
ADOZIONE INTERNAZIONALE
Esame delle modifiche apportate al precedente ordinamento
e l’associazione in partecipazione
Profilo biografico e opere
IL TOTALITARISMO.
L’Imposta sul reddito delle società (IRES)
Asl Vco – Direzione Generale
Assunzioni, Attività, Investimenti
UROLOGIA - RIMINI VISITE UROLOGICHE AMBULATORIALI REGIME RICOVERO
Endometriosi profonda: quando la chirurgia
Nota AIFA 75 Determinazione 18 novembre 2010 (GU 29 novembre 2010, n. 279): modifiche, con riferimento alla nota AIFA 75,  alla determinazione del 4 gennaio.
PIANO DI RIORDINO PRESIDI DI FOLIGNO E SPOLETO
SINTOMI DEL BASSO APPARATO URINARIO 4 MARZO 2017
Con gli occhi di Maxwell
Transcript della presentazione:

Il problema dello zaino (knapsack problem) Moreno Marzolla http://www.moreno.marzolla.name/

Algoritmi e Strutture Dati Copyright © 2010, 2011 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/ASD2010/) This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Problema dello zaino 0-1 Supponiamo di avere un insieme X composto da n oggetti {x1, x2, ... xn} L'oggetto xi ha peso p(xi) e valore v(xi) Esiste una unica istanza di ciascun oggetto xi Disponiamo un contenitore in grado di trasportare al massimo un peso pari a P Vogliamo determinare un sottoinsieme YX di oggetti, tale che Il peso complessivo degli oggetti in Y sia ≤ P Il valore complessivo degli oggetti in Y sia il massimo possibile Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Definizione formale Vogliamo determinare un sottoinsieme YX di oggetti tale che: e tale da massimizzare il valore complessivo: 𝑥∈𝑌 𝑝 𝑥 ≤𝑃 𝑥∈𝑌 𝑣 𝑥 Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Approccio greedy #1 Ad ogni passo, scelgo tra gli oggetti non ancora nello zaino quello di valore massimo, tra tutti quelli che hanno un peso minore o uguale alla capacità residua dello zaino Nota: questo algoritmo non fornisce sempre la soluzione ottima Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Esempio 20Kg 28€ / 20Kg 15€ / 10Kg 15€ / 10Kg 20€ / 8Kg 20€ / 8Kg 28€ / 20Kg La soluzione calcolata in questo esempio non è la soluzione ottima! Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Approccio greedy #2 Ad ogni passo, scelgo tra gli oggetti non ancora nello zaino quello di valore specifico massimo, tra tutti quelli che hanno un peso minore o uguale alla capacità residua dello zaino Il valore specifico è definito come il valore di un oggetto diviso il suo peso Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Esempio 20Kg 20€ / 8Kg 15€ / 10Kg 15€ / 10Kg 1.5 20€ / 8Kg 2.5 28€ / 20Kg 1.4 28€ / 20Kg 1.4 In questo esempio, l'algoritmo greedy #2 calcola la soluzione ottima, ma... Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Esempio 20Kg 33€ / 11Kg 9Kg 15€ / 10Kg 1.5 15€ / 10Kg 1.5 20€ / 10Kg 2.0 20€ / 10Kg 2.0 33€ / 11Kg 3.0 ...in questo altro esempio anche l'algoritmo greedy #2 non produce la soluzione ottima Algoritmi e Strutture Dati

Soluzione ottima basata sulla Programmazione Dinamica Questa soluzione funziona esclusivamente se i pesi sono numeri interi Sia V(i,j) il massimo valore ottenibile da un sottoinsieme degli oggetti {x1, x2, ...xi} in uno zaino che ha capacità massima j i=1, 2, ...n j=0, 1, ...P Algoritmi e Strutture Dati

Soluzione ottima basata sulla Programmazione Dinamica Sia V(i,j) il massimo valore ottenibile da un sottoinsieme degli oggetti {x1, x2, ...xi} in uno zaino che ha capacità massima j V(i,0) = 0 per ogni i=1..n Se il peso massimo è zero, il valore è sempre zero V(1,j) = v(x1) se j≥ p(x1) C'è abbastanza spazio per l'oggetto x1 V(1,j) = 0 se j<p(x1) Non c'è abbastanza spazio per l'oggetto x1 Algoritmi e Strutture Dati

Soluzione ottima basata sulla Programmazione Dinamica Per calcolare V(i,j) distinguiamo due casi Se j<p(xi) significa che l'i-esimo oggetto è troppo pesante per essere contenuto nello zaino. In tal caso V(i,j) = V(i-1,j) Se j≥p(xi) possiamo scegliere la migliore tra le seguenti possibilità Inserire l'oggetto xi nello zaino. Lo spazio residuo è j- p(xi), il valore massimo ottenibile in questa ipotesi è V(i- 1,j-p(xi))+v(xi) Non inserire l'oggetto xi nello zaino. Il valore massimo ottenibile in questa ipotesi è V(i-1,j) Scegliendo la migliore delle possibilià, possiamo dire V(i,j) = max{ V(i-1,j), V(i-1,j-p(xi))+v(xi) } Algoritmi e Strutture Dati

Soluzione ottima basata sulla Programmazione Dinamica Riassumendo 𝑉 𝑖,𝑗 = 𝑉 𝑖−1,𝑗 𝑠𝑒𝑗<𝑝 𝑥 𝑖 m 𝑉 𝑖−1,𝑗 ,𝑉 𝑖−1,𝑗−𝑝 𝑥 𝑖 +𝑣 𝑥 𝑖 𝑠𝑒𝑗≥𝑝 𝑥 𝑖 V(i-1,j-p(xi)) v(xi) j-p(xi) Kg p(xi) Kg x1 x1 xi-1 xi Algoritmi e Strutture Dati

Tabella di programmazione dinamica / matrice V j 1 2 3 4 5 6 7 8 9 10 i 1 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 12.7 12.7 12.7 2 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 12.7 19.1 19.1 3 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 14.4 19.1 19.1 4 0.0 0.0 12.7 12.7 12.7 12.7 13.0 13.0 14.4 19.1 19.1 Algoritmi e Strutture Dati

Tabella di programmazione dinamica / matrice V j 1 2 3 4 5 6 7 8 9 10 i 1 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 12.7 12.7 12.7 2 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 12.7 19.1 19.1 3 0.0 0.0 12.7 12.7 12.7 12.7 12.7 12.7 14.4 19.1 19.1 4 0.0 0.0 12.7 12.7 12.7 12.7 13.0 13.0 14.4 19.1 19.1 𝑉 3,8 =m 𝑉 2,8 ,𝑉 2,8−𝑝 3 +𝑣 3 =m 12.7,14.4 Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Stampare la soluzione Il massimo valore che è possibile inserire nello zaino rispettando il vincolo di peso massimo è contenuto nella cella V(n,P) della tabella di programmazione dinamica Come facciamo a sapere quali oggetti fanno parte della soluzione ottima? Usiamo una tabella ausiliaria booleana K(i,j) che ha le stesse dimensioni di V(i,j) K(i,j) = true se e solo se l'oggetto xi fa parte della soluzione ottima che ha valore complessivo V(i,j) Algoritmi e Strutture Dati

Tabella di programmazione dinamica / stampa soluzione ottima d := P; i := n; while( i>0 ) do if ( K(i,d) = true ) then stampa “Seleziono oggetto “ i d := d-p(i); endif i := i-1; endwhile p =[ 2, 7, 6, 4 ] v = [ 12. 7, 6.4, 1.7, 0.3 ] 1 2 3 4 5 6 7 8 9 10 1 F F T T T T T T T T T 2 F F F F F F F F F T T 3 F F F F F F F F T F F 4 F F F F Algoritmi e Strutture Dati F F T T F F F