LA DECONTAMINAZIONE DI UN GRAFO
considerato una pietra miliare nella storia recente dei film ambientati nello
disperatamente di raggiungere ed
SQUADRA DI k=4
ASTRONAUTI
2
Ovviamente in ogni astronave che si rispetti, il capitano possiede una mappa
di tutti i corridoi della nave. Questa mappa può essere rappresentata come un
grafo. I nodi corrisponderanno ai punti dove due o più tunnel della nave si
incrociano, mentre i tunnel stessi saranno rappresentati dagli archi del grafo.
ipotetica astronave.
Mappa
dell’astronave
quella di visitare tutti i tunnel della loro nave spaziale. Durante questa visita
3
devono stare attenti a non lasciare incustoditi tunnel già decontaminati. Colti
di sorpresa gli astronauti del film attuano una ricerca senza seguire una
scoperti nodi o in modo da non far visitare due volte gli stessi archi. Il
problema del Capitano, che si trova davanti alla mappa della nave, è allora il
impossibile il lavoro del Capitano, che deve gestire la giusta strategia con il
4
tentativo di cattura. Per questo motivo a chiunque volesse mettersi in
astronauti potrete dormire sonni tranquilli anche a migliaia di anni luce dalla
fuggitivo.
lungo gli archi del grafo con velocità non limitata, cercando di evitarli. In
5
penetrato all’interno di un sistema di tubature, scopo del team di searcher
Qual è il più piccolo numero di searcher necessari per la visita completa del
Questo problema fu suggerito per la prima volta da Parsons (Pa 76), che prese
come problema non discreto, con searcher e fuggitivo che potevano muoversi
3 (MHGJP 88):
1. Posiziona un searcher
su un vertice;
2. Rimuovi un searcher
da un vertice;
6
Non ci sono limiti sul numero di searcher che un vertice può contenere,
benchè due saranno in ogni caso sufficienti per la soluzione del problema.
Inizialmente, tutti gli archi del grafo sono considerati contaminati (ossia
Se l’endpoint controllato è tale che, tutti gli archi incidenti su esso, tranne
quello che stiamo per decontaminare, sono già puliti, allora si può fare a
searcher
Le linee tratteggiate
rappresentano archi
decontaminati
7
Nel seguito, a volte capiterà di incontrare la parola guardiano; con questo
grafo, si viene a creare un cammino tra un arco pulito e un arco non pulito
Arco
ricontaminato
Insieme di nodi
controllati da
guardiani
8
Il grafo è cosiderato decontaminato con successo, una volta che tutti i suoi
contaminato.
Vertici
puliti
es(G,S).
9
1.3 NP-COMPLETEZZA DEL PROBLEMA DELL’EDGE
SEARCHING(MHGJP 88)
riduzione.
MAXIMUM 2-SATISFIABILITY
EDGE SEARCHING
10
Il numero di archi che deve
andare da un insieme all’altro è
minore di k?
Fig. Rappresentazione del problema del min cut into equal-sized subsets.
pulito, che sottointende che tutti gli archi incidenti su esso sono
LEMMA 1.2
del grafo è dovuto alla struttura stessa del grafo, infatti, un guardiano non si
può allontanare da un nodo, proprio perché è connesso con tutti gli altri
11
solo quando ogni nodo del grafo conterrà un searcher-guardiano.
LEMMA 1.3
primo vertice diventi pulito. Allora ci devono essere almeno M-1 searcher su
completi.
LEMMA 1.4
sono fra loro disgiunti. Allora, nel processo di searching di G, ci deve essere
pulito, m-k non ne hanno nessuno, e c’è un clique con un vertice pulito che
Clique già
Clique che possiede un KM=5 pulito
solo vertice pulito, per
il lemma precedente
deve avere M-1 searcher
G
Clique
ancora
da pulire
m=3
12
LEMMA 1.5
vertici puliti (ancora con rispetto solo agli archi interni ai clique), e un
DIMOSTRAZIONE
Se u,v è un arco pulito, allora v ha sia archi puliti che contaminati incidenti
Clique già
KM=5 pulite
G
Clique
ancora
da pulire
m=3
13
TEOREMA 1.6
DIMOSTRAZIONE
G=(V,E) e k>0 costituiscono una data istanza del min-cut into equal sized
subsets.
Sia n= V ,
sia N=6(d+k),
sia M=n(n+2) N.
Es.
n=4
d=2
k=2
N=24
M=576
Più
14
Gli archi sono aggiunti in modo tale che nessun vertice di un clique possiede
Es.
nN
nN+3
nN+N
n 2
es=(M+1)+ nN+3k
2
sized subsets.
15
Primo, supponiamo che il cut desiderato esista per G, ossia, c’è una
vertici in V1 a vertici in V2. Mostriamo ora come H può essere pulito con al
più es searcher.
V1= v1,v2,…,vn/2
V2= v(n/2)+1,…,vn
C1,C2,…,Cn/2,CA,C(n/2)+1,……Cn
Per pulire il clique Ci al suo turno, poniamo un searcher su ognuno dei suoi
un (M+1)-esimo searcher per pulire tutti gli archi interni a Ci. In seguito
searcher dal suo endpoint su Ci verso il suo endpoint nel clique più vicino,
dove il searcher sarà utilizzato come un guardiano, fino a che l’ultimo clique
sarà pulito.
deve occorrere nel momento in cui uno dei clique comincia ad essere pulito e
16
ha M+1 searcher per se stesso. Se il clique che comincia ad essere pulito non
n n n n 2 n
(M+1)+ –1 +1 nN + –1 (N+3d)=(M+1) + nN – nN + N
2 2 2 2 2
n
+3 d – 6d - 6k -3d=
2
n 2 n n n
=(M+1) + nN + 3k –3k –nN + N+ 3d - 9d - 6k es-k – nN +
2 2 2 2
(N+N)<es
Nel momento in cui si pulisce l’ultima clique contenuta nel gruppo di sinistra
17
Clique con
M+1 searcher
In questo modo quando procediamo alla pulizia dell’ultimo clique del primo
searcher da clique puliti nel primo gruppo verso n/2+1 clique nel secondo
Ogni volta (n/2-1) che avviene uno spostamento a raggiera devono essere
negli spostamenti a raggiera (n/2-1) vanno considerati anche gli archi che
18
G H
A B C1 C2
C3 C4
C D
CA
Nn+3 nN nN+3 nN
Nn+N Nn+N
n° di searcher: (M+1)+3nN+N+3d
19
2Nn+3+ 2Nn+3+ M+1 3Nn+3
nN+N nN+N +N
n° di searcher: (M+1)+3Nn+3+N
M+1
n
hanno almeno un vertice pulito (con rispetto solo agli archi interni) ed no,
2
e M-1 searcher sono su di un clique con un vertice pulito. Tale step esiste per
Supponiamo che il clique con M-1 searcher non sia CA. Allora per il Lemma
1.5, il numero totale di searcher in uso in ogni istante deve essere almeno:
20
n 2 n n
(M-1) + nN + N = s + N –(3k+2)>s
2 2 2
n/2+1 n/2
CA
Una contraddizione.
Così il clique con M-1 searcher deve essere CA, e il numero totale di searcher
n
vertice pulito possiamo avere V1 = V2 = e il numero di archi in G,
2
della stessa misura con k o meno archi. Poiché H e s possono essere costruiti
21
1.4 GHOSTBUSTERS
Per introdurre il prossimo argomento, che, è poi il
infestato dai fantasmi. L’albergo, uno dei più grandi di New York, è
Grafo
modello
del piano
di un
albergo
22
Per imprigionare un fantasma, e quindi liberare
questo particolare che distingue i due esempi, nel primo caso (Alien) un
astronauta doveva percorrere un tunnel nella sua interezza per essere certo di
astronauta ghostbuster
I ghostbuster saranno pagati non appena avranno liberato tutti i corridoi del
115° piano. Per essere certi di aver compiuto correttamente il loro lavoro, i
23
rappresentato da un grafo come quello disegnato nella seguente figura,
perché ciò implicherebbe che due corridoi si incrociano senza però avere un
nodo comune.
arco è considerato pulito una volta che entrambi i suoi endpoint sono
24
Il più piccolo numero di searcher richiesto per una decontaminazione totale
G, ns(G).
:SEARCHER
1 2
1 2
2 3
3 1
3
2 1
25
1.6 EQUIVALENZA TRA EDGE SEARCHING E NODE
SEARCHING su grafi, ed era quello che fino ad ora abbiamo chiamato edge
Anche una strategia di edge searching può essere trasformata in una di node
26
Abbiamo così mostrato che:
Possiamo facilmente costruire gli esempi mostrando che tutti e tre i casi sono
1. es(G)=1 ns(G)=2
2. es(G)=5 ns(G)=4
3. es(G)=ns(G)=2
relazioni tra i due problemi riusciremo a dare una valida dimostrazione del
27
fatto che anche per il node searching sussiste l’NP-completezza del
a b a m1 m2 b
Es.
Gv
G
TEOREMA 1.8
es(G)=ns(Gv)-1
DIMOSTRAZIONE 1.8
28
Node searching di Gv
Edge searching di G
1 1 2 1
node searching ottimale di Gv nella forma descritta nel Corollario 1.20. Senza
mezzo finchè il vertice iniziale a lui adiacente non sia decontaminato, questo
1 2 3 4
Anche nelle pagine seguenti faremo un grande utilizzo di queste etichette che
29
Definiamo ora un edge searching di G simulando una strategia di node
searching da Gv, come descritto sopra. Nella simulazione, per ogni searcher
stesso nome su Gv, l’unica eccezione sarà fatta nel seguito per la pulizia.
nome del guardiano con il nome del searcher appena usato su Gv (B);
Gv
G A G B
3
1 1
30
2) Per ogni searcher cancellato da un vertice iniziale di Gv, cancella il
31
Gv
G G
di G.
essere puliti.
32
La cancellazione di un searcher da un vertice iniziale di G v non causa
allora ancora su G non mettiamo nuovi searcher. Questo è così, perché tutti
33
mezzo m1 di una tripla (a,m1,m2,b), allora a,b sono state pulite prima del
esistenti.
dimostrazione.
COROLLARIO 1.9
Completo.
di una fissata classe di grafi, non è detto che questa soluzione possa essere
ridotta ad una soluzione per il node searching. Questo perché, nella riduzione
rischio che il nuovo grafo non appartenga più alla classe di partenza. Quindi
nel seguito opereremo sempre una distinzione tra algoritmi che lavorano con
34
numero ottimale di searcher (progressive edge search number) è denotato con
pes(G).
strategia ottimale che termina dopo un numero lineare di passi. Una strategia
Per ogni grafo G c’è sempre una strategia di edge searching ottimale , che
2. Una volta che tutti gli archi incidenti su un vertice sono puliti, ogni
infatti i suoi risultati sono apparsi sin dal 1982. Addirittura, al momento della
loro pubblicazione, avvenuta nel 1993, Bienstock e Seymour (BS 91) avevano
già trovato una nuova dimostrazione del Teorema 1.10, molto più semplice e
lineare di quella proposta da LaPaugh nel suo lavoro. Lo stesso LaPaugh alla
35
Seymour. Per dimostrare il teorema 1.10 ovviamente utilizzeremo la
sequenza di coppie
(A0,Z0),(A1,Z1),…,(An,Zn)
3) A0= , An=E(G);
4) Per 1 i n, o
b) (rimuovi searcher) Zi Zi-1 e Ai è l’insieme di tutti gli archi “e” tali che
36
d) (edge searching e) Zi=(Zi-1- u ) v per qualche u Zi-1 e
Il node searching è definito in modo simile, eccetto che per la regola d). Per
importante che due searcher occupino lo stesso vertice. Con questa modifica
ms(G) ns(G),es(G).
Sia G un grafo. Se X E(G) sia (X) l’insieme di vertici che sono gli
perché ogni vertice contato sul lato sinistro è almeno contato quanto sul lato
destro.
37
di searcher se (Xi) k per 0 i n.
LEMMA 1.12
DIMOSTRAZIONE
L’inverso del lemma appena scritto è vero (con qualche eccezione) ma non
1 i n.
LEMMA 1.13
DIMOSTRAZIONE
2) 0 i n Xi è minimo;
j con 1 j n.
38
3) Xj-Xj-1 =1
4) (Xj-1 Xj (Xj)
verifica 1));
5) Xj-1 Xj.
searcher.
LEMMA 1.14
Sia G tale che ogni vertice è incidente con almeno due archi.
e per 1 i n sia Xi-Xi-1= ei . Allora c’è un mix search monotono di G che usa
ordine e1,e2,…,en.
DIMOSTRAZIONE
39
Supponiamo che 1 j n, e abbiamo gli archi puliti e1,..,ej-1 in ordine, e nessun
altro arco è stato pulito. Sia A l’insieme di tutti i vertici v V(G) tali che
incide con nessun arco in E(G)-Xj-1 eccetto ej. Così possiamo pulire ej
Deduciamo allora:
LEMMA 1.15
DIMOSTRAZIONE
monotono k
40
Per tirare le somme di quanto abbiamo appena mostrato, enunciamo il
seguente teorema:
TEOREMA 1.16
Sia G un grafo tale che ogni vertice è incidente ad almeno due archi. Per k 0,
1) ms(G) k;
con due archi in serie. Per mostrare che c’è un edge search monotona di G
LEMMA 1.17
DIMOSTRAZIONE
facilmente in un edge searching per Ge. Ge ha due archi in serie per ogni arco
41
sottoinsieme Cv di vertici di Ge contratti. Forniamo ora un edge searching di
ms(Ge) es(Ge). Per provare questo, un mix searching monotono può essere
LEMMA 1.18
Sia G un grafo tale che ogni arco ha un endpoint incidente ad un altro arco.
searcher.
DIMOSTRAZIONE
tale che più archi possibili siano puliti per scorrimento. Supponiamo, per
contraddizione, che qualche arco f non sia pulito per scorrimento. Sia f pulito
42
Se g è ancora contaminato immediatamente prima dell’i-esimo passo,
1) Rimuoviamo il searcher da v;
2) Posizioniamolo su u;
segue:
2) Rimuoviamolo da u;
3) Posizioniamolo su v.
continuare il mix search come prima. Questo contraddice la scelta del mix
search. Segue che ogni arco è pulito attraverso uno scorrimento, come
richiesto.
Dal teorema 1.16, dal lemma 1.17 e dal lemma 1.18 è provato quanto
43
Il prossimo teorema, come dimostrato per l’edge searching, afferma che la
ricontaminazione non aiuta nella strategia di node searching. L’idea alla base
DIMOSTRAZIONE
ns(G)=es(Ge)-1
44
In una direzione, vale a dire es(Ge)-1 ns(G), la dimostrazione è quasi ovvia,
poiché con un searcher extra possiamo portare a termine tutti i necessari edge
può essere alcun movimento tale che un searcher che già si trova su di un
comunque due vertici adiacenti sono uniti con più di un arco (attualmente 3).
45
2) Quando un searcher è rimosso da un vertice di Ge, probabilmente è stato
Per provare che questo limite può essere ridotto di uno, è sufficiente mostrare
deve essere uno scorrimento lungo un arco in cui entrambi gli endpoint sono
Searcher in più
Es(Ge) ns(G)
46
Consideriamo una contraddizione, il numero di searcher su Ge si è alzato a
possiamo nel migliore dei casi, pulire il primo arco contaminato di un arco
Ricordiamo che una strategia rappresenta l’insieme delle mosse che sono
grafo. Su questa base ovviamente una strategia ottima, sarà una strategia che
COROLLARIO 1.20
C’è sempre una strategia di node searching ottimale in cui nessun vertice è
immediatamente dopo che tutti gli archi incidenti su esso sono stati puliti (i
47
BIBLIOGRAFIA CAPITOLO 1:
48
(Pa 76) Parsons, T.D. : Pursuit-evasion in a graph . Lecture
Notes in Mathematics, 642 – pp.426-441 - Edited by
A.Dold and B.Eckmann. - 1976
49