SlideShare une entreprise Scribd logo
1  sur  24
Problema dello zaino
     (Knapsack problem)
Dimostrazione di appartenenza alla classe
                  NP-C

            Fabrizio Finucci
Knapsack
    Definizione (problema generico)
    Data una collezione di oggetti S = {x1,…,xn}, dove
    ogni oggetto xi è caratterizzato da due valori:
     vi , valore dell’oggetto
     wi , peso dell’oggetto
    entrambi interi positivi, e dato uno zaino dotato di
    una certa capacità di peso W, restituire un
    sottoinsieme S di oggetti xj tali che
     j S wj W
     j S vj sia massima

2
Tipi di Knapsack
     Il problema precedente può essere suddiviso in
     tre sottocasi, basati sul numero di volte che un
     oggetto può essere inserito nello zaino:
     1. problema dello zaino 0-1 (0-1 Knapsack problem),
        in cui ogni oggetto può esserci o meno senza
        ripetizioni
     2. problema dello zaino limitato (Bounded Knapsack
        problem), in cui ogni oggetto non può essere
        inserito più di un numero fissato di volte
     3. problema dello zaino illimitato (Unbounded
        Knapsack problem), in cui ogni oggetto può
        essere inserito un numero arbitrario di volte
3
0-1 Knapsack
     D’ora in poi si farà riferimento al caso 0-1
      Knapsack

     Esempio:
                                       #    valore   peso
                                       1      1       1
      S : {3,4} ha valore 40
                                       2      6       2
                            W = 11
                                       3     18       5
                                       4     22       6
                                       5     28       7




4
Knapsack (versione decisionale)
     Al fine di dimostrare l’appartenenza di Knapsack
     alla classe dei problemi NP-Completi, se ne
     formulerà ora la versione decisionale

     Questo è un passaggio necessario al fine di
     utilizzare la tecnica della Riduzione Polinomiale




5
Knapsack (versione decisionale)
    Definizione (problema decisionale)
    Sia data una collezione di oggetti S = {x1,…,xn},
    dove ogni oggetto xi è caratterizzato da due valori:
     vi , valore dell’oggetto
     wi , peso dell’oggetto
    entrambi interi positivi.
    Dato uno zaino dotato di una certa capacità di peso
    W e un valore intero V, decidere se esiste un
    sottoinsieme S di oggetti xj tali che
     j S wj W
     j S vj V

6
Knapsack è NP-Completo
    Teorema
    Knapsack è NP-Completo
    Dimostrazione
    Si dividerà la dimostrazione in due passi:
     1. dimostrazione che Knapsack NP
     2. dimostrazione che Knapsack è riducibile
        polinomialmente da un altro problema NP-
        Completo, in questo caso dal problema della
        somma del sottoinsieme (Subset Sum problem)



7
Subset Sum
    Definizione
    Dato un insieme di numeri naturali I = {x1,…,xn}, e
    dato un intero X, decidere se esiste un
    sottoinsieme I    I di numeri naturali, tali che
    sommati siano uguali a X

     Si ricorda che Subset Sum (come Knapsack) è
     un problema numerico. Gli input di tali problemi
     vengono codificati in binario. Pertanto la riduzione
     dovrà essere polinomiale rispetto alla codifica
     binaria di tali input
8
Subset Sum è NP-Completo
    Teorema
    Subset Sum è NP-Completo
    Dimostrazione
    Si dividerà la dimostrazione in due passi:
     1. dimostrazione che Subset Sum NP
     2. dimostrazione che Subset Sum è riducibile
        polinomialmente da un altro problema NP-
        Completo, in questo caso dal problema della 3-
        soddisfacibilità (3-SAT)



9
3-SAT
     Definizioni
     • Letterale: variabile booleana, asserita o negata
     • Clausola: disgiunzione di letterali
     • Forma normale congiuntiva (CNF): formula F, tale che
       sia una congiunzione di clausole
     • |F| = numero di clausole di F
     Definizione (SAT)
     Data una formula F in CNF, esiste un’assegnazione di
     verità delle variabili soddisfacibile?
     Definizione (3-SAT)
     Data una formula F in CNF, con ogni clausola
     contenente esattamente 3 letterali, esiste
     un’assegnazione di verità delle variabili soddisfacibile?

10
Dimostrazione: Subset Sum
     NP
     Lemma
     Subset Sum NP
     Dimostrazione
      Un sottoinsieme I      I è un certificato di
       lunghezza polinomiale per una data istanza di
       Subset Sum, essendo la sua cardinalità al più
       pari alla cardinalità di I
      Dato un certificato è possibile verificare se
          i I   xi = X
      Applicando la definizione di problema NP, si
      dimostra che Subset Sum appartiene a tale
11    classe di complessità
Dimostrazione: 3-SAT            p   Subset
     Sum
     Lemma
     3-SAT p Subset Sum
     Dimostrazione
     Data un’istanza F di 3-SAT, si costruirà un’istanza
     di Subset Sum tale che ammetta una soluzione sse
     F è soddisfacibile
     Costruzione
     Data un’istanza di 3-SAT con n variabili e k
     clausole, si crei un insieme di 2n + 2k numeri
     ciascuno di n + k cifre, nella maniera che si andrà
     ora ad illustrare
12
Costruzione dell’istanza in forma di
     tabella
                                       x   y   z   C1 C2 C3
                                   x   1   0   0   0   1   0   10001
                                   x   1   0   0   1   0   1       0
                                                               10010
                                   y   0   1   0   1   0   0       1
                                                               10100
        F = C1   C2   C3
                           T
                                       0   1   0   0   1   1   10011
      C1 = x y z               yz      0   0   1   1   1   0   1110
      C2 = x y z                       0   0   1   0   0   1   1001
      C3 = x   y               z       0   0   0   1   0   0     100
      z
                                       0   0   0   2   0   0    200
                                       0   0   0   0   1   0      10
                           D
                                       0   0   0   0   2   0      20
                                       0   0   0   0   0   1      1
                                       0   0   0   0   0   2      2
13                             X       1   1   1   4   4   4   11144
                                                                   4
Costruzione della tabella T
     La tabella viene costruita secondo questi criteri:
         • si creano n + k colonne, dove:
                n = # variabili dell’istanza di 3-SAT
                k = # clausole dell’istanza di 3-SAT
         •   le prime n colonne rappresentano le variabili dell’istanza di
             3-SAT, mentre le restanti k colonne rappresentano le
             clausole della medesima istanza
         •   per ogni variabile dell’istanza di 3-SAT si creano due righe,
             rappresentanti la prima la variabile asserita, la seconda la
             variabile negata (e.g. x e x)
         •   ognuna delle celle delle prime n colonne è così costruita:
                contiene 1 sse la variabile relativa al letterale sulla riga è quella
                 associata alla colonna, altrimenti contiene 0
         •   ognuna delle celle delle restanti k colonne è così costruita:
                si imposta ad 1 il valore di Ci sse la variabile corrispondente alla
                 riga compare (asserita o negata) all’interno della clausola Ci,
14               altrimenti si imposta a 0
Costruzione della tabella D
      A questo punto si aggiungono due ulteriori righe
       per ogni clausola
        la prima contiene il valore 1 sulla cella relativa alla
         clausola considerata
        la seconda contiene il valore 2
      Si costruisce poi, il vettore riga X di n + k celle
       contenente:
        1 sulle prime n celle
        4 sulle k celle restanti




15
Costruzione dell’ istanza di Subset
     Sum
      Le cifre di ogni riga delle tabelle T e D rappresentano
       un numero dell’insieme I di Subset Sum, in notazione
       posizionale decimale (la cifra più significativa è a
       sinistra)

      Il numero associato (con la stessa tecnica usata in
       precedenza) al vettore X rappresenta il valore di X
       nell’istanza di Subset Sum




16
Dimostrazione: 3-SAT                                 p   Subset
     Sum
     Dimostrare che:
     F è soddisfacibile        un sottoinsieme I I, tale che la somma dei suoi
     elementi sia uguale a X
     Dimostrazione ( )
     Dalla spiegazione di costruzione delle tabelle, si può facilmente dimostrare
     che, data un’assegnazione di verità che soddisfa F, sempre un
     sottoinsieme di numeri tali che la loro somma sia X.
     Infatti è sufficiente scegliere:
     • i numeri associati alle righe di T etichettate secondo l’assegnazione di verità
       (i.e. se la variabile x è asserita verrà scelta la riga etichettata con x, se la
       variabile x è negata verrà scelta la riga etichettata con x)
     • un sottoinsieme di righe di D in modo che le ultime k cifre della somma siano
       ‘4’. Si noti che tale assegnazione esiste sempre: ogni clausola ha valore
       ‘vero’ quindi la somma su ognuna delle ultime k colonne della matrice T è
       compresa tra ‘1’ e ‘3’. Per ognuno di tali valori esiste un sottoinsieme di righe
       con le proprietà richieste che non influenza il valore delle altre colonne
     Infine, dal momento che l’assegnazione non può essere contraddittoria, per
     ogni variabile x verrà selezionato uno ed un solo numero tra quelli relativi alle
     righe x e x, dunque per costruzione le prime n cifre della somma saranno 1

17
Dimostrazione: 3-SAT                       p   Subset
     Sum
     Dimostrazione ( )
     Al contrario, supponiamo di avere un sottoinsieme di elementi I
     I, tali che la loro somma sia X.
     È facile notare che:
     • dal momento che le prime n cifre della somma sono ‘1’ è
         garantito che vengano sempre scelto un letterale per ogni
         variabile e che non possano esistere assegnazioni
         contraddittorie
     • dal momento che non è possibile ottenere somma ‘4’ sulle ultime
         k cifre di X usando solo le righe di D, per ogni clausola C deve
         essere stata selezionato un numero relativo ad un letterale
         contenuto in C
     • dunque l’assegnazione derivata a partire dai numeri in I è un’
         assegnazione di verità valida per l’istanza di 3-SAT che soddisfa
         tutte le clausole e quindi la formula
     Si noti, inoltre, che la lunghezza dell’istanza di Subset Sum è
     polinomiale rispetto alla lunghezza dell’istanza di 3-SAT e che ogni
     operazione viene eseguita in tempo polinomiale.
18
Conclusioni sulla dimostrazione
      Verificati entrambi i sensi dell’implicazione e
       verificato che Subset Sum NP segue che
       Subset Sum è NP-Completo

      Si procederà ora con la dimostrazione
       dell’appartenenza di Knapsack alla classe dei
       problemi NP-Completi




19
Dimostrazione: Knapsack                           NP
     Lemma
     Knapsack NP
     Dimostrazione
      Un sottoinsieme S      S è un certificato di lunghezza
       polinomiale per una data istanza di Knapsack,
       essendo la sua cardinalità al più pari alla cardinalità di
       S
      Dato un certificato, è possibile verificare in tempo
       polinomiale se
          j S   wj W
          j S   vj V
      Applicando la definizione di problema NP, si dimostra
20
       che Knapsack appartiene a tale classe di complessità
Dimostrazione: Subset Sum               p
     Knapsack
     Lemma
     Subset Sum    p   Knapsack
     Dimostrazione
     Data un’istanza di Subset Sum si costruirà
     un’istanza di Knapsack, tale che ammetta una
     soluzione sse l’istanza di Subset Sum ammette
     una soluzione
     Costruzione
     Dati i valori (interi positivi) xi, con i {1,…,n},
     dell’insieme I di Subset Sum, si costruiranno i valori
     (interi positivi) vj, wj, con j {1,…,m}, V, W per
     l’istanza di Knapsack nella maniera che si andrà
21   ad illustrare
Costruzione dell’istanza
      Si imposta la seguente condizione: n = m (i.e. si
       prendono tanti oggetti dell’insieme S di Knapsack
       quanti sono i numeri dell’insieme I di Subset
       Sum)
      Si scelgono i valori ed i pesi degli oggetti di
       Knapsack nel seguente modo:
        vi = xi   i = 1,…,n
        wi = xi   i = 1,…,n
      Si scelgono i valori di V e W nel seguente modo:
        V=W=X


22
Dimostrazione: Subset Sum                                                  p
     Knapsack
     Dimostrare che:
       un sottoinsieme I    I, tale che la somma dei suoi elementi sia uguale a X                    un
     sottoinsieme S    S, tale che j S wj W       j S vj  V

     Dimostrazione
     Per costruzione dell’istanza di Knapsack è possibile dimostrare facilmente la
     seguente equivalenza:
      i I   xi = X   i I   xi X   i I   xi   X   j S   wj W     j S   vj   V

     Questo perché:
      (per costruzione) i pesi ed i valori degli oggetti di Knapsack sono uguali ai valori
         numerici dell’insieme I di Subset Sum
      (per costruzione) gli insiemi I ed S sono di uguale cardinalità
      (per costruzione) X = V = W
     È possibile quindi affermare che, ad ogni sottoinsieme I             I per cui esiste una soluzione
     dell’istanza di Subset Sum corrisponde esattamente, in termini di valori numerici e di
     numero di elementi, uno ed un solo sottoinsieme S              S per cui esiste una soluzione
     dell’istanza di Knapsack e viceversa.
     Si noti, inoltre, che è possibile scegliere i valori, xi, vj, wj, V, W, X in tempo polinomiale, e
     che ogni operazione è eseguita in tempo polinomiale.

23
Conclusioni sulla dimostrazione
      Verificati entrambi i sensi dell’implicazione segue
      la tesi:
     Subset Sum      p   Knapsack

      Verificato che Knapsack    NP, si è così
      dimostrato che il problema dello zaino
      appartiene alla classe dei problemi NP-
      Completi



24

Contenu connexe

Similaire à Problema dello zaino

Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoprofman
 
Equazioni di grado superiore al secondo
Equazioni di grado superiore al secondoEquazioni di grado superiore al secondo
Equazioni di grado superiore al secondosanti caltabiano
 
Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14francoric
 
Algebra lineare
Algebra lineareAlgebra lineare
Algebra lineareVoglio 10
 
Risoluzione disequazione II grado con metodo grafico
Risoluzione disequazione II grado con metodo graficoRisoluzione disequazione II grado con metodo grafico
Risoluzione disequazione II grado con metodo graficoannamaro
 
Metodo grafico disequazioni ii grado
Metodo grafico disequazioni ii gradoMetodo grafico disequazioni ii grado
Metodo grafico disequazioni ii gradoannamaro
 
Topog4qgis tech documentation
Topog4qgis tech documentationTopog4qgis tech documentation
Topog4qgis tech documentationGiuliano Curti
 
Nonlin tutto 2009
Nonlin tutto 2009Nonlin tutto 2009
Nonlin tutto 2009marbonf
 
Ripasso dei fasci di rette propri e impropri
Ripasso dei fasci di rette propri e impropriRipasso dei fasci di rette propri e impropri
Ripasso dei fasci di rette propri e impropriRedoocSlide2
 
Distribuzioni di Probabilita e Variabili Casuali
Distribuzioni di Probabilita e Variabili CasualiDistribuzioni di Probabilita e Variabili Casuali
Distribuzioni di Probabilita e Variabili Casualimaxbt
 
La retta interpolante
La retta interpolanteLa retta interpolante
La retta interpolanteLuigi Pasini
 
Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009www.oria.info
 
Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009www.oria.info
 

Similaire à Problema dello zaino (20)

Algebra E Matematica Generale
Algebra E Matematica GeneraleAlgebra E Matematica Generale
Algebra E Matematica Generale
 
Modelli matematici
Modelli matematiciModelli matematici
Modelli matematici
 
Appunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplessoAppunti di Elaborazione automatica dei dati: il simplesso
Appunti di Elaborazione automatica dei dati: il simplesso
 
Equazioni di grado superiore al secondo
Equazioni di grado superiore al secondoEquazioni di grado superiore al secondo
Equazioni di grado superiore al secondo
 
Proc solescercaparabolastaccasegmentosuassex
Proc solescercaparabolastaccasegmentosuassexProc solescercaparabolastaccasegmentosuassex
Proc solescercaparabolastaccasegmentosuassex
 
Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14Presentazione integrali con economia, malthus e c14
Presentazione integrali con economia, malthus e c14
 
Algebra lineare
Algebra lineareAlgebra lineare
Algebra lineare
 
Risoluzione disequazione II grado con metodo grafico
Risoluzione disequazione II grado con metodo graficoRisoluzione disequazione II grado con metodo grafico
Risoluzione disequazione II grado con metodo grafico
 
Metodo grafico disequazioni ii grado
Metodo grafico disequazioni ii gradoMetodo grafico disequazioni ii grado
Metodo grafico disequazioni ii grado
 
Allineamento 3 c
Allineamento 3 cAllineamento 3 c
Allineamento 3 c
 
Topog4qgis tech documentation
Topog4qgis tech documentationTopog4qgis tech documentation
Topog4qgis tech documentation
 
Nonlin tutto 2009
Nonlin tutto 2009Nonlin tutto 2009
Nonlin tutto 2009
 
Ripasso dei fasci di rette propri e impropri
Ripasso dei fasci di rette propri e impropriRipasso dei fasci di rette propri e impropri
Ripasso dei fasci di rette propri e impropri
 
E qe fzdi2grado
E qe fzdi2gradoE qe fzdi2grado
E qe fzdi2grado
 
Corbo relativita
Corbo relativitaCorbo relativita
Corbo relativita
 
Distribuzioni di Probabilita e Variabili Casuali
Distribuzioni di Probabilita e Variabili CasualiDistribuzioni di Probabilita e Variabili Casuali
Distribuzioni di Probabilita e Variabili Casuali
 
La retta interpolante
La retta interpolanteLa retta interpolante
La retta interpolante
 
Statistica
StatisticaStatistica
Statistica
 
Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009
 
Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009Tracce Seconda Prova Matematica Maturità Scientifica 2009
Tracce Seconda Prova Matematica Maturità Scientifica 2009
 

Dernier

Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 

Dernier (18)

Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 

Problema dello zaino

  • 1. Problema dello zaino (Knapsack problem) Dimostrazione di appartenenza alla classe NP-C Fabrizio Finucci
  • 2. Knapsack Definizione (problema generico) Data una collezione di oggetti S = {x1,…,xn}, dove ogni oggetto xi è caratterizzato da due valori:  vi , valore dell’oggetto  wi , peso dell’oggetto entrambi interi positivi, e dato uno zaino dotato di una certa capacità di peso W, restituire un sottoinsieme S di oggetti xj tali che  j S wj W  j S vj sia massima 2
  • 3. Tipi di Knapsack  Il problema precedente può essere suddiviso in tre sottocasi, basati sul numero di volte che un oggetto può essere inserito nello zaino: 1. problema dello zaino 0-1 (0-1 Knapsack problem), in cui ogni oggetto può esserci o meno senza ripetizioni 2. problema dello zaino limitato (Bounded Knapsack problem), in cui ogni oggetto non può essere inserito più di un numero fissato di volte 3. problema dello zaino illimitato (Unbounded Knapsack problem), in cui ogni oggetto può essere inserito un numero arbitrario di volte 3
  • 4. 0-1 Knapsack  D’ora in poi si farà riferimento al caso 0-1 Knapsack  Esempio: # valore peso 1 1 1 S : {3,4} ha valore 40 2 6 2 W = 11 3 18 5 4 22 6 5 28 7 4
  • 5. Knapsack (versione decisionale)  Al fine di dimostrare l’appartenenza di Knapsack alla classe dei problemi NP-Completi, se ne formulerà ora la versione decisionale  Questo è un passaggio necessario al fine di utilizzare la tecnica della Riduzione Polinomiale 5
  • 6. Knapsack (versione decisionale) Definizione (problema decisionale) Sia data una collezione di oggetti S = {x1,…,xn}, dove ogni oggetto xi è caratterizzato da due valori:  vi , valore dell’oggetto  wi , peso dell’oggetto entrambi interi positivi. Dato uno zaino dotato di una certa capacità di peso W e un valore intero V, decidere se esiste un sottoinsieme S di oggetti xj tali che  j S wj W  j S vj V 6
  • 7. Knapsack è NP-Completo Teorema Knapsack è NP-Completo Dimostrazione Si dividerà la dimostrazione in due passi: 1. dimostrazione che Knapsack NP 2. dimostrazione che Knapsack è riducibile polinomialmente da un altro problema NP- Completo, in questo caso dal problema della somma del sottoinsieme (Subset Sum problem) 7
  • 8. Subset Sum Definizione Dato un insieme di numeri naturali I = {x1,…,xn}, e dato un intero X, decidere se esiste un sottoinsieme I I di numeri naturali, tali che sommati siano uguali a X  Si ricorda che Subset Sum (come Knapsack) è un problema numerico. Gli input di tali problemi vengono codificati in binario. Pertanto la riduzione dovrà essere polinomiale rispetto alla codifica binaria di tali input 8
  • 9. Subset Sum è NP-Completo Teorema Subset Sum è NP-Completo Dimostrazione Si dividerà la dimostrazione in due passi: 1. dimostrazione che Subset Sum NP 2. dimostrazione che Subset Sum è riducibile polinomialmente da un altro problema NP- Completo, in questo caso dal problema della 3- soddisfacibilità (3-SAT) 9
  • 10. 3-SAT Definizioni • Letterale: variabile booleana, asserita o negata • Clausola: disgiunzione di letterali • Forma normale congiuntiva (CNF): formula F, tale che sia una congiunzione di clausole • |F| = numero di clausole di F Definizione (SAT) Data una formula F in CNF, esiste un’assegnazione di verità delle variabili soddisfacibile? Definizione (3-SAT) Data una formula F in CNF, con ogni clausola contenente esattamente 3 letterali, esiste un’assegnazione di verità delle variabili soddisfacibile? 10
  • 11. Dimostrazione: Subset Sum NP Lemma Subset Sum NP Dimostrazione  Un sottoinsieme I I è un certificato di lunghezza polinomiale per una data istanza di Subset Sum, essendo la sua cardinalità al più pari alla cardinalità di I  Dato un certificato è possibile verificare se  i I xi = X  Applicando la definizione di problema NP, si dimostra che Subset Sum appartiene a tale 11 classe di complessità
  • 12. Dimostrazione: 3-SAT p Subset Sum Lemma 3-SAT p Subset Sum Dimostrazione Data un’istanza F di 3-SAT, si costruirà un’istanza di Subset Sum tale che ammetta una soluzione sse F è soddisfacibile Costruzione Data un’istanza di 3-SAT con n variabili e k clausole, si crei un insieme di 2n + 2k numeri ciascuno di n + k cifre, nella maniera che si andrà ora ad illustrare 12
  • 13. Costruzione dell’istanza in forma di tabella x y z C1 C2 C3 x 1 0 0 0 1 0 10001 x 1 0 0 1 0 1 0 10010 y 0 1 0 1 0 0 1 10100 F = C1 C2 C3 T 0 1 0 0 1 1 10011 C1 = x y z yz 0 0 1 1 1 0 1110 C2 = x y z 0 0 1 0 0 1 1001 C3 = x y z 0 0 0 1 0 0 100 z 0 0 0 2 0 0 200 0 0 0 0 1 0 10 D 0 0 0 0 2 0 20 0 0 0 0 0 1 1 0 0 0 0 0 2 2 13 X 1 1 1 4 4 4 11144 4
  • 14. Costruzione della tabella T La tabella viene costruita secondo questi criteri: • si creano n + k colonne, dove:  n = # variabili dell’istanza di 3-SAT  k = # clausole dell’istanza di 3-SAT • le prime n colonne rappresentano le variabili dell’istanza di 3-SAT, mentre le restanti k colonne rappresentano le clausole della medesima istanza • per ogni variabile dell’istanza di 3-SAT si creano due righe, rappresentanti la prima la variabile asserita, la seconda la variabile negata (e.g. x e x) • ognuna delle celle delle prime n colonne è così costruita:  contiene 1 sse la variabile relativa al letterale sulla riga è quella associata alla colonna, altrimenti contiene 0 • ognuna delle celle delle restanti k colonne è così costruita:  si imposta ad 1 il valore di Ci sse la variabile corrispondente alla riga compare (asserita o negata) all’interno della clausola Ci, 14 altrimenti si imposta a 0
  • 15. Costruzione della tabella D  A questo punto si aggiungono due ulteriori righe per ogni clausola  la prima contiene il valore 1 sulla cella relativa alla clausola considerata  la seconda contiene il valore 2  Si costruisce poi, il vettore riga X di n + k celle contenente:  1 sulle prime n celle  4 sulle k celle restanti 15
  • 16. Costruzione dell’ istanza di Subset Sum  Le cifre di ogni riga delle tabelle T e D rappresentano un numero dell’insieme I di Subset Sum, in notazione posizionale decimale (la cifra più significativa è a sinistra)  Il numero associato (con la stessa tecnica usata in precedenza) al vettore X rappresenta il valore di X nell’istanza di Subset Sum 16
  • 17. Dimostrazione: 3-SAT p Subset Sum Dimostrare che: F è soddisfacibile un sottoinsieme I I, tale che la somma dei suoi elementi sia uguale a X Dimostrazione ( ) Dalla spiegazione di costruzione delle tabelle, si può facilmente dimostrare che, data un’assegnazione di verità che soddisfa F, sempre un sottoinsieme di numeri tali che la loro somma sia X. Infatti è sufficiente scegliere: • i numeri associati alle righe di T etichettate secondo l’assegnazione di verità (i.e. se la variabile x è asserita verrà scelta la riga etichettata con x, se la variabile x è negata verrà scelta la riga etichettata con x) • un sottoinsieme di righe di D in modo che le ultime k cifre della somma siano ‘4’. Si noti che tale assegnazione esiste sempre: ogni clausola ha valore ‘vero’ quindi la somma su ognuna delle ultime k colonne della matrice T è compresa tra ‘1’ e ‘3’. Per ognuno di tali valori esiste un sottoinsieme di righe con le proprietà richieste che non influenza il valore delle altre colonne Infine, dal momento che l’assegnazione non può essere contraddittoria, per ogni variabile x verrà selezionato uno ed un solo numero tra quelli relativi alle righe x e x, dunque per costruzione le prime n cifre della somma saranno 1 17
  • 18. Dimostrazione: 3-SAT p Subset Sum Dimostrazione ( ) Al contrario, supponiamo di avere un sottoinsieme di elementi I I, tali che la loro somma sia X. È facile notare che: • dal momento che le prime n cifre della somma sono ‘1’ è garantito che vengano sempre scelto un letterale per ogni variabile e che non possano esistere assegnazioni contraddittorie • dal momento che non è possibile ottenere somma ‘4’ sulle ultime k cifre di X usando solo le righe di D, per ogni clausola C deve essere stata selezionato un numero relativo ad un letterale contenuto in C • dunque l’assegnazione derivata a partire dai numeri in I è un’ assegnazione di verità valida per l’istanza di 3-SAT che soddisfa tutte le clausole e quindi la formula Si noti, inoltre, che la lunghezza dell’istanza di Subset Sum è polinomiale rispetto alla lunghezza dell’istanza di 3-SAT e che ogni operazione viene eseguita in tempo polinomiale. 18
  • 19. Conclusioni sulla dimostrazione  Verificati entrambi i sensi dell’implicazione e verificato che Subset Sum NP segue che Subset Sum è NP-Completo  Si procederà ora con la dimostrazione dell’appartenenza di Knapsack alla classe dei problemi NP-Completi 19
  • 20. Dimostrazione: Knapsack NP Lemma Knapsack NP Dimostrazione  Un sottoinsieme S S è un certificato di lunghezza polinomiale per una data istanza di Knapsack, essendo la sua cardinalità al più pari alla cardinalità di S  Dato un certificato, è possibile verificare in tempo polinomiale se  j S wj W  j S vj V  Applicando la definizione di problema NP, si dimostra 20 che Knapsack appartiene a tale classe di complessità
  • 21. Dimostrazione: Subset Sum p Knapsack Lemma Subset Sum p Knapsack Dimostrazione Data un’istanza di Subset Sum si costruirà un’istanza di Knapsack, tale che ammetta una soluzione sse l’istanza di Subset Sum ammette una soluzione Costruzione Dati i valori (interi positivi) xi, con i {1,…,n}, dell’insieme I di Subset Sum, si costruiranno i valori (interi positivi) vj, wj, con j {1,…,m}, V, W per l’istanza di Knapsack nella maniera che si andrà 21 ad illustrare
  • 22. Costruzione dell’istanza  Si imposta la seguente condizione: n = m (i.e. si prendono tanti oggetti dell’insieme S di Knapsack quanti sono i numeri dell’insieme I di Subset Sum)  Si scelgono i valori ed i pesi degli oggetti di Knapsack nel seguente modo:  vi = xi i = 1,…,n  wi = xi i = 1,…,n  Si scelgono i valori di V e W nel seguente modo:  V=W=X 22
  • 23. Dimostrazione: Subset Sum p Knapsack Dimostrare che: un sottoinsieme I I, tale che la somma dei suoi elementi sia uguale a X un sottoinsieme S S, tale che j S wj W j S vj V Dimostrazione Per costruzione dell’istanza di Knapsack è possibile dimostrare facilmente la seguente equivalenza: i I xi = X i I xi X i I xi X j S wj W j S vj V Questo perché:  (per costruzione) i pesi ed i valori degli oggetti di Knapsack sono uguali ai valori numerici dell’insieme I di Subset Sum  (per costruzione) gli insiemi I ed S sono di uguale cardinalità  (per costruzione) X = V = W È possibile quindi affermare che, ad ogni sottoinsieme I I per cui esiste una soluzione dell’istanza di Subset Sum corrisponde esattamente, in termini di valori numerici e di numero di elementi, uno ed un solo sottoinsieme S S per cui esiste una soluzione dell’istanza di Knapsack e viceversa. Si noti, inoltre, che è possibile scegliere i valori, xi, vj, wj, V, W, X in tempo polinomiale, e che ogni operazione è eseguita in tempo polinomiale. 23
  • 24. Conclusioni sulla dimostrazione  Verificati entrambi i sensi dell’implicazione segue la tesi: Subset Sum p Knapsack  Verificato che Knapsack NP, si è così dimostrato che il problema dello zaino appartiene alla classe dei problemi NP- Completi 24