computabilità, complessità e logica

100
Computabilità, Complessità e Logica Lezione 14

Upload: others

Post on 28-Jan-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computabilità, Complessità e Logica

Computabilità, Complessità

e Logica

Lezione 14

Page 2: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤P

Dato un grafo con vertici

Un ciclo hamiltoniano è una sequenza di vertici tale per cui

1. Tutti i vertici sono nel ciclo e, escluso il primo, appaiono tutti una e una sola volta

2. per ogni i.e., due vertici consecutivi sono collegati da un arco

G = (V, E) |V | = n

n + 1v0, v1, …, vn−1, vn = v0

(vi, vi+1) ∈ E 0 ≤ i < n

Il linguaggio è dato da tutti i grafi per i quali esiste un ciclo hamiltonianoHAM

Page 3: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤P

xi,1 xi,2 xi,3

Data la seguente formula in 3-CNF:

Per ogni variabile costruiamo un grafo con nodi (dove è il numero di clausole

della formula) etichettati

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ ¬x3) ∧ (x1 ∨ ¬x2 ∨ x3)

xi 2m mxi,1, xi,2, …, xi,2m

xi,4 xi,5 xi,6

In questo caso abbiamo sei vertici dato che la formula ha tre clausole.

Gli archi in questo grafo saranno: per

e per

(xi, j, xi, j+1) ∈ E 1 ≤ j ≤ m − 1(xi, j, xi, j−1) ∈ E 2 ≤ j ≤ m

Page 4: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤P

xi,1 xi,2 xi,3 xi,4 xi,5 xi,6

Questa direzione di visita indica che l’assegnamento di questa variabile è a true

Questa direzione di visita indica che l’assegnamento di questa variabile è a false

Sfruttiamo la direzione di visita per codificare gli assegnamenti

Notate che per ottenere un ciclo hamiltoniano non è possibile “cambiare direzione” durante una visita dei nodi (si passerebbe due volte per lo stesso nodo)

Page 5: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤PColleghiamo i grafi delle diverse variabili in modo che arrivati “alla fine” sia possibile scegliere se visitare la variabile successiva da sinistra a destra o da destra a sinistra. Questo ci indica che valore assumerà la variabile

Page 6: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤P

xi,1 xi,2

Data la seguente formula in 3-CNF:

Aggiungiamo un nodo per ogni clausola. Nell’esempio

Se l’ -esima variabile appare non negata nella clausola colleghiamo in questo modo:

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ ¬x3) ∧ (x1 ∨ ¬x2 ∨ x3)

C1, C2, C3

i

C1

xi,1 xi,2

Altrimenti se l’ -esima variabile appare negata colleghiamo in direzione opposta:i

C1

Page 7: Computabilità, Complessità e Logica

3-SAT Ciclo hamiltoniano≤P

x1,1 x1,2 x1,3

Ne segue che la formula è codificata dal seguente grafo:

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ ¬x3) ∧ (x1 ∨ ¬x2 ∨ x3)

x1,4 x1,5 x1,6

x2,1 x2,2 x2,3 x2,4 x2,5 x2,6

x3,1 x3,2 x3,3 x3,4 x3,5 x3,6

A

B

C1

C2

C3

Page 8: Computabilità, Complessità e Logica

• Mostriamo che un problema legato a “Super Mario” è -hard

• Per questo mostriamo come codificare una formula in 3-CNF all’interno di un livello del gioco

• Le slide seguenti sono adattate da quelle preparate da Antonio E. Porreca, McF all’Università Aix-Marseille (Francia)

• https://aeporreca.org

NP

Super Mario e riduzioni

Page 9: Computabilità, Complessità e Logica

Il gioco di Super Mario è -hard!NP

Page 10: Computabilità, Complessità e Logica

Riferimenti

• Greg Aloupisa, Erik D. Demaine, Alan Guob, Giovanni VigliettaClassic Nintendo games are (computationally) hard, Theoretical Computer Sciencedoi.org/10.1016/j.tcs.2015.02.037 (scaricabile da arxiv.org/abs/1203.1895)

• Cory Chang (aka Undefined Behavior)What Makes Mario NP-Hard? (Polynomial Reductions) youtu.be/oS8m9fSk-Wk

Page 11: Computabilità, Complessità e Logica

Definizione del problema

• Input: un livello di Super Mario

• Problema di decisione:è possibile arrivare alla fine del livello?

Page 12: Computabilità, Complessità e Logica

3-SAT ≤P

Page 13: Computabilità, Complessità e Logica

Gadget per la partenza

Page 14: Computabilità, Complessità e Logica

Gadget per la partenza

Page 15: Computabilità, Complessità e Logica

Gadget per la partenza

Page 16: Computabilità, Complessità e Logica

Gadget per la partenza

Page 17: Computabilità, Complessità e Logica

Gadget per la partenza

Page 18: Computabilità, Complessità e Logica

Gadget per l’arrivo

Page 19: Computabilità, Complessità e Logica

Gadget d’arrivée

Page 20: Computabilità, Complessità e Logica

Gadget d’arrivée

Page 21: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 22: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 23: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 24: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 25: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 26: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 27: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 28: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 29: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 30: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 31: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 32: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 33: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 34: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 35: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 36: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 37: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 38: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 39: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 40: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 41: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 42: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 43: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 44: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 45: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 46: Computabilità, Complessità e Logica

Percorso di Mario

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 47: Computabilità, Complessità e Logica

Gadget per le variabili

Page 48: Computabilità, Complessità e Logica

Gadget per le variabili

xi

Page 49: Computabilità, Complessità e Logica

Gadget per le variabili

xi

0 1

Page 50: Computabilità, Complessità e Logica

Gadget per le variabili

xi

0 1

Page 51: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Page 52: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x1 = 1x1

Page 53: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x1 = 1x1

Verso l'entrata del gadget perla successiva variabile (ovvero )x2

Page 54: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x3 = 0x3

Page 55: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x3 = 0x3

Verso l'entrata del gadget perla successiva variabile (ovvero )x4

Page 56: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x6 = 1x6

Page 57: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x6 = 1x6

Verso l'entrata del gadget perla successiva variabile (ovvero )x7

Page 58: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Arrivo dall’uscita del gadget della variabile

x1 = 1x1

Page 59: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Page 60: Computabilità, Complessità e Logica

Gadget per le clausolex1 ∨ ¬x3 ∨ x6

Verso l'entrata del gadgetper la successiva variabile (ovvero )x2

Page 61: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 0

Page 62: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 0

Page 63: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 0

Page 64: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 0

Page 65: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 0

Page 66: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 67: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 68: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 69: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 70: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 71: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 72: Computabilità, Complessità e Logica

Valutazione delle clausole

x1 ∨ ¬x3 ∨ x6 = 1

Page 73: Computabilità, Complessità e Logica

E gli incroci?

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 74: Computabilità, Complessità e Logica

E gli incroci?

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01👆

👆

👆

Page 75: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 76: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 77: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 78: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 79: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 80: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 81: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 82: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 83: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 84: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 85: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 86: Computabilità, Complessità e Logica

Gadget per gli incroci

✗✗

Page 87: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 88: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 89: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 90: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 91: Computabilità, Complessità e Logica

Gadget per gli incroci

✗ ✗

Page 92: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 93: Computabilità, Complessità e Logica

Gadget per gli incroci

Page 94: Computabilità, Complessità e Logica

Gadget per gli incroci

Troppo altoper saltarci

dentro

Page 95: Computabilità, Complessità e Logica

Nota Importante

Page 96: Computabilità, Complessità e Logica

Nota Importante

Page 97: Computabilità, Complessità e Logica

Nota ImportanteQuesto non è un problema,si può forzare Mario a passare prima in orizzontalee solo dopo in verticale

Page 98: Computabilità, Complessità e Logica

Parte rimanente degli archi = corridoi

Partenza

Arrivo

x2 x3x1

x1 ∨ ¬x2 ∨ x3 x1 ∨ x2 ∨ ¬x2 ¬x1 ∨ ¬x2 ∨ ¬x3 ¬x1 ∨ ¬x2 ∨ ¬x3

01 01 01

Page 99: Computabilità, Complessità e Logica

Conclusioni• Mario arriva alla fine se e solo se può attraversare i

gadget di tutte le clausole

• Questo richiede di avere almeno una stella per ogni clausola

• Che corrisponde a un letterale vero per ogni clausola

• Ovvero che la clausola sia soddisfatta

• Quindi il problema di Super Mario è -completo?NP

Page 100: Computabilità, Complessità e Logica

Note

• Abbiamo mostrato che Super Mario è -diffcile

• Ma in realtà è (assumendo ) che Super Mario è fuori da

• Infatti, Super Mario è completo per

NP

NP ≠ PSPACENP

PSPACE