Problemi di complessità e risoluzione Flashcards

(20 cards)

1
Q

Cos’è il problema del circuito hamiltoniano?

A

Sia G = (V, E) grafo. Un cammino hamiltoniamo è un cammino semplice che visita tutti i nodi del grafo
Un circuito hamiltoniano è un cammino chiuso che visita tutti i nodi una e una sola volta.

Esiste circuito hamiltoniano

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Algoritmo di risoluzione del circuito hamiltoniano

A
  1. Codifica
    vertici: binario
    lati: v1#v2
    grafo: ###v1#v2##v2#v4###n

Approccio det:
MdT a 4 nastri
- 1. input (cioè il grafo)
- 4. Sequenza 1 nnnn…(n-1 volte) 1 (cioè ultima sequenza da generare)
- 2. genero via via tutte le sequenze di tipo 1 V1…Vn-1 1

Algoritmo
1. genero sequenza su #2
2. se è uguale a #4 -> termino e rifiuto
3. Controllo se sequenza è circuito hamiltoniano su #3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Come cambia la complessità all’aggiunta di un vertice?

A

Caso peggiore->non accettazione -> devo generare tutte le sequenze
n^{n-1} sequenze, quindi
tc_N=Omega(n^n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come si risolve il problema del cammino hamiltoniano con MdT non det.?

A

Uso mdt a 3 nastri gli stessi primi 3 di quella standard
1. Controllo quanti archi ha grafo, meno di n, non c’è circuito e termino rifiutando
2. genero non deterministicamente sequenza su #2
3. Uso #3 per controllare se è circuito hamiltoniano

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual è la complessità di questa soluzione nel caso peggiore?

A

Ogni nodo O(logn)
k archi >= n nodi (altrimenti non c’è circuito)
- controllo presenza n archi O(k*n) = O(k^2)
- generazione sequenza O(nlogn) cioè scrivere n nodi binari
- ogni iterazione
. operazioni di spostamento testine O(nlogn)
. controllare se vertice è già presente tra i precedenti O(nlogn)
. controllare se c’è arco O(klogn)
iterazione = O(k^2 logk)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Perchè cambia complessita tra MdT det e non det?

A

La MdT deterministica “costruisce” la soluzione mentre MdT non deterministica verifica la soluzione in tempo polinomiale (rendendo il problema trattabile)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa vuol dire che un linguaggio $L_1$ è polinomialmente riducibile ad un altro?

A

Esiste f funzione di riduzione e M MdT che calcola f in tempo polinomiale

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

L1 pol. rid. a L2, L1 in P => L1 in P

A

M1 che decide L1
Dato w in Sigma1*
calcolo f(w) -> O(n^r) pke pol.
controllo se f(w) in L2 O(n^s) pke pol
in totale O(n^rs)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Linguaggio NP-hard e NP-completo

A

NP-Hard quando VQ linguaggio in NP, esiste f rid. polinomiale da Q a L

NP-completo:
L in NP
L NP-hard

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Se esistesse L in NPC, L in P => P = NP

A

P sube NP ovviamente
Sia Q NP, strategia per decidere P
L NP-hard quindi esiste riduzione da Q a L

Dato w
1) calcolo f(w) riduzione da Q a L
2) decido se f(w) in L -> L in P esiste polinomiale
Q NP in P -> NP sube P

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa vuol dire che rep1 è polinomialmente trasferibile in rep2?

A

Quando esiste funzione t: Sigma1->Sigma2 t.c.
1. forall p istanza t(rep1(p)=rep2(p)
2. forall w in Sigma1*,w not in Im(rep1) => w not in Im(rep2)
3. t computabile in tempo polinomiale

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

La complessità dipende dalla rappresentazione?

A

SI. rep1 è polinomialmente trasferibile in rep2 => |rep2(p)| è al più polinomiale nella lunghezza di rep2(p)

Dato Q problema, Q in P con rep2 allora Q in P con rep1

Due rappresentazioni distinte delle istanze di un problema se abbastanza “ragionevoli” si possono trasformare polinomialmente una nell’altra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cosa sono polinomi booleani?

A

PB(x1,…,xn) è un polinomio booleano sulle indeterminate x1,…xn
- 0,1 in PB(…)
- xi in PB(…)
- p and q, p or q, not p in PB(…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Come è definito l’assegnamento?

A

t: {x1,…,xn} -> {0,1}
si può estendere al polinomio usando l’algebra di boole
dati p,q polinomi booleani p equiv q se forall t assegnamento t(p)=t(q)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Come si definisce la Forma Normale Congiuntiva (CNF)?

A
  • letterale (variabile o sua negazione)
  • clausola (disgiunzione di letterali x1 or xk or not xn…)
  • CNF: congiunzione di clausole
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cos’è il problema SAT?

A

Dato polinomio booleano in CNF trovare assegnamento tale che soddisfa ovvero t(p)=1

17
Q

Come si può codificare problema SAT in MdT?

A
  • variabili xi = codifica binaria
  • letterale c(xi)#{0,1}
  • polinomio: lista di letterali con simboli di and e or

es. 1#1or10#0and11#1 cioè
(x1 con valore 1 or x2 con valore 0) and (x3 con valore 1)

18
Q

Come è fatto algoritmo di MdT per SAT?

A

INPUT: variabili##codifica pol booleano
MdT non det a 2 nastri
#1. INPUT
#2. Assegnamento da verificare

Algoritmo
- genero in modo non det. un assegnamento
- esamino polinomio in input
- se in clausola trovo letterale soddisfatto vado avanti
- nessun letterale soddisfatto rifiuto

19
Q

Quali conseguenze ci sono se P≠NP?

A

NPC, P sube NP
NP \ (P u NPC) not empty = NP-intermedi

20
Q

Quali conseguenze si hanno se P=NP?

A

NPC = NP = P

Prop: P = NP => ogni linguaggio P è NPC (tranne vuoto e sigma*)
Dim: Dato L in P vogliamo far vedere L np difficile
Sia Q NP descriviamo riduzione da Q a L

f:w to {a se w in Q, b se w notin Q}
a, b esistono perchè L notempty e L not sigma*