Salta al contenuto
Note per Studenti Esercizio - Taglio grande e derandomizzazione sul grafo di Petersen

Esercizio - Taglio grande e derandomizzazione sul grafo di Petersen

Teoria: Metodo probabilistico - valore atteso, alterazioni e derandomizzazioneMetodo probabilistico: se un oggetto casuale ha una proprietà con probabilità positiva (o una variabile ha media mu, quindi qualche esito la raggiunge) allora l'oggetto esiste; taglio di almeno |E|/2, MAX-SAT con 7/8, limite inferiore di Ramsey R(k,k) > 2^(k/2), alterazioni (insiemi indipendenti, Ramsey), derandomizzazione con le aspettative condizionate, lemma locale di Lovász solo enunciato.Metodo probabilistico - valore atteso, alterazioni e derandomizzazione → (taglio grande, aspettative condizionate), Grafi - definizioni e proprietàGrafo G=(V,E) diretto e non diretto, grafo semplice e pesato; incidenza, adiacenza, grado; cammini, cicli, sottografi, grafi connessi e componenti connesse; alberi liberi, foreste, spanning tree e spanning forest; proprietà con dimostrazioni (somma dei gradi = 2m, m <= n(n-1)/2, alberi m = n-1, connessi m >= n-1, foreste m <= n-1).Grafi - definizioni e proprietà →.

Testo. Il grafo di Petersen ha 1010 vertici 0,…,90,\dots,9 e 1515 archi: il ciclo esterno i∼i+1(mod5)i\sim i+1\pmod5 per i=0,…,4i=0,\dots,4, i raggi i∼i+5i\sim i+5 e il pentagramma interno 5+i∼5+((i+2) mod 5)5+i\sim5+((i+2)\bmod5). Le liste di adiacenza sono 0:{1,4,5}0:\{1,4,5\}, 1:{0,2,6}1:\{0,2,6\}, 2:{1,3,7}2:\{1,3,7\}, 3:{2,4,8}3:\{2,4,8\}, 4:{3,0,9}4:\{3,0,9\}, 5:{0,7,8}5:\{0,7,8\}, 6:{1,8,9}6:\{1,8,9\}, 7:{2,5,9}7:\{2,5,9\}, 8:{3,6,5}8:\{3,6,5\}, 9:{4,7,6}9:\{4,7,6\}.

  1. Assegnando ogni vertice a caso a una delle due parti, calcolare il numero atteso di archi tagliati e dedurne un taglio di almeno 88 archi. Con quale probabilità un'assegnazione casuale taglia almeno 88 archi?
  2. Derandomizzare: nell'ordine 0,1,…,90,1,\dots,9 piazzare ogni vertice dalla parte che taglia più archi verso i vicini già piazzati (a parità, parte 00). Riportare le attese condizionali dopo ogni passo e il taglio finale.
  3. Il taglio massimo vale 1212. Quanti dei 2102^{10} assegnamenti lo raggiungono?
  4. Mostrare con KnK_n che il fattore 12\frac12 del teorema non si può migliorare in generale.

Soluzione

1. Valore atteso. Per ogni arco {u,v}\{u,v\} la probabilità che uu e vv cadano da parti opposte è 12\frac12. Per la linearità E[taglio]=152=7,5E[\text{taglio}]=\frac{15}2=7{,}5 e, essendo il taglio un intero, esiste un'assegnazione con taglio ≥⌈7,5⌉=8\ge\lceil7{,}5\rceil=\boxed8. La distribuzione esatta sui 10241024 assegnamenti (confronto con il metodo) è

archi tagliati 00 33 44 55 66 77 88 99 1010 1111 1212
assegnamenti 22 2020 3030 7272 200200 240240 150150 120120 120120 6060 1010

con media 7,57{,}5. La probabilità di un taglio ≥8\ge8 è 150+120+120+60+101024=4601024=0,449\frac{150+120+120+60+10}{1024}=\frac{460}{1024}=\boxed{0{,}449}.

2. Derandomizzazione. L'attesa condizionale con i primi ii vertici piazzati è E[taglio∣⋅]=(archi con entrambi gli estremi piazzati e tagliati)+12(archi non ancora decisi).E[\text{taglio}\mid\cdot]=(\text{archi con entrambi gli estremi piazzati e tagliati})+\tfrac12(\text{archi non ancora decisi}). Ogni passo sceglie la parte che massimizza gli archi tagliati verso i vicini già piazzati; con c0c_0 (archi tagliati se il vertice va in 00) e c1c_1 (se va in 11) l'attesa cresce di max⁡(c0,c1)−c0+c12≥0\max(c_0,c_1)-\frac{c_0+c_1}2\ge0.

vertice vicini già piazzati c0c_0 c1c_1 parte attesa dopo
(inizio) 7,57{,}5
00 nessuno 00 00 00 7,57{,}5
11 00 00 11 11 88
22 11 11 00 00 8,58{,}5
33 22 00 11 11 99
44 3,03,0 11 11 00 99
55 00 00 11 11 9,59{,}5
66 11 11 00 00 1010
77 2,52,5 11 11 00 1010
88 3,6,53,6,5 22 11 00 10,510{,}5
99 4,7,64,7,6 00 33 11 1212

Qui c0c_0 conta i vicini già piazzati nella parte 11 e c1c_1 quelli nella parte 00. Per esempio al vertice 88 i vicini piazzati sono 33 (parte 11), 66 (parte 00), 55 (parte 11): in parte 00 si tagliano 33 e 55, cioè c0=2c_0=2; in parte 11 solo 66, cioè c1=1c_1=1; si sceglie la parte 00 con guadagno 2−32=122-\frac32=\frac12. Parti finali: 0,2,4,6,7,8→0,2,4,6,7,8\to parte 00; 1,3,5,9→1,3,5,9\to parte 11. Taglio finale: 12\boxed{12}, cioè il massimo: l'attesa non è mai scesa e il taglio è ≥7,5\ge7{,}5 con grande margine.

3. Quanti raggiungono il massimo. Dalla tabella: 1010 assegnamenti su 10241024 (cioè 55 tagli distinti, ognuno contato con il suo complementare). Un'assegnazione casuale raggiunge 1212 con probabilità 101024=0,0098\frac{10}{1024}=0{,}0098: l'algoritmo deterministico trova in un passaggio quello che a caso richiederebbe in media circa 100100 tentativi.

4. Il fattore 12\frac12 è ottimo in generale. In KnK_n ci sono (n2)\binom n2 archi e il taglio massimo ha una parte da ⌊n/2⌋\lfloor n/2\rfloor vertici: ⌊n2/4⌋\lfloor n^2/4\rfloor archi. Rapporto taglio massimo / numero di archi: K4K_4: 46=0,667\frac46=0{,}667; K5K_5: 610=0,6\frac6{10}=0{,}6; K10K_{10}: 2545=0,556\frac{25}{45}=0{,}556; K100K_{100}: 25004950=0,505\frac{2500}{4950}=0{,}505. Il rapporto tende a 12\frac12: non esiste una costante c>12c>\frac12 tale che ogni grafo abbia un taglio di almeno c ∣E∣c\,|E| archi.

Codice di verifica

python
from collections import Counter

arc = [(i, (i + 1) % 5) for i in range(5)] + [(i, i + 5) for i in range(5)] \
    + [(5 + i, 5 + (i + 2) % 5) for i in range(5)]
taglio = lambda side: sum(side[u] != side[v] for u, v in arc)

dist = Counter(taglio([(m >> v) & 1 for v in range(10)]) for m in range(1 << 10))
print(sorted(dist.items()), sum(k * c for k, c in dist.items()) / 1024)

side = {}
for v in range(10):                                   # derandomizzazione nell'ordine 0..9
    vic = [u for a, b in arc for u in ((b,) if a == v else (a,) if b == v else ()) if u in side]
    c0 = sum(side[u] == 1 for u in vic)               # tagliati se v va in 0
    c1 = sum(side[u] == 0 for u in vic)
    side[v] = 0 if c0 >= c1 else 1
print(side, taglio(side))
for n in (4, 5, 10, 100):
    print(n, (n * n // 4) / (n * (n - 1) // 2))

Risultato: la distribuzione della tabella con media 7.5, poi {0: 0, 1: 1, 2: 0, 3: 1, 4: 0, 5: 1, 6: 0, 7: 0, 8: 0, 9: 1} 12 e i rapporti 0.667, 0.6, 0.556, 0.505.

Versione ripasso

Teoria collegata