Algojáték 1. gyakorlat megoldókulcs

Javaslat

A megoldásokat ne nézd meg rögtön, előbb szánj egy kis időt az önálló gondolkodásra és az ötletelésre! A problémamegoldás képessége olyan mint egy izom: mindenkiben fejleszthető. Ezek a feladatok pontosan ebben segítenek. Ha teljesen elakadnál, ott a hint.

1. feladat

Határozzuk meg a tanult algoritmussal minden állás típusát az alábbi kombinatorikus játékokban. (A második esetben általánosítsuk az algoritmust az $N_T$-beli csúcsok kezelésére.)

Hint

A kombinatorikus játékok gráfja DAG, ebben tanultunk egy dinamikus programozáson alapuló algoritmust, amely egy topologikus sorrend szerint visszafele címkézi a csúcsokat.

Megoldás

A bal oldali játékban a tanult algoritmus szerint keresünk egy topologikus sorrendet a játék gráfjában (ebben a tárgyban megelégszünk a ránézéses módszerrel) például: $$v_0, a,e,b,f,c,d,g.$$ Eszerint visszafele haladva címkézzük a csúcsokat.

Ezt végrehajtva a $\{v_0,a,e,b,f,g\}$ típusa $\I$-es, a $\{c,d\}$ típusa $\II$-es.

A jobb oldali játékban a megoldás hasonló. Egy jó topologikus sorrend például a $$v_0, a,d,g, b,e,h, c,f,i.$$ A döntetlenes eseteket a következőképpen kezeljük:

Az algoritmust végrehajtva a $\{d,g,b,i\}$ típusa $\I$-es, a $\{v_0,a,e,f\}$ típusa $*$, a $\{h,c\}$ típusa $\II$-es.

Szemfüles hallgatók megfigyelhetik, hogy míg az éles játékok esetében a $\II$-es típusú csúcsok alkotják a magot, a döntetlen nyelők jelenléte elrontja ezt a tulajdonságot. Ha valaki szeretne olyan címkézési szabályt, ahol a mag a címkék alapján ránézésre látszik, érdemes a $*$ típusú címkét két altípusra bontani aszerint, hogy melyik játékos fog a döntetlen nyelőbe ténylegesen belépni. Izgalmas feladat annak a bizonyítása, hogy ilyen címkézés mellett kik alkotják a magot.

2. feladat

a) Határozzuk meg az 1. feladatban szereplő gráfok által leírt éles játékok Grundy-számozását (tehát most az 1. feladattól eltérően minden nyelő $N_W$-beli).

Hint

A Grundy-számozásra szintén egy dinamikus programozáson alapuló algoritmust tanultunk, ami egy topologikus sorrend szerint visszafele címkézi a csúcsokat.

Megoldás

A választott topologikus sorrend szerint visszafelé haladva határozzuk meg a csúcsok Grundy-számozását. Minden csúcs az általa látott értékek $mex$-ét kapja, vagyis a legkisebb olyan nemnegatív egész számot, amit ő nem lát. Nyelők esetében ez az érték $0$.

A bal oldali gráfra ez: $$\begin{array}{c|c|c|c|c|c|c|c} v_0 & a & e & b & f & c & d & g \\ \hline 2 & 1 & 1 & 2 & 2 & 0 & 1 & 0 \end{array}$$

A jobb oldalira pedig: $$ \begin{array}{c|c|c|c|c|c|c|c} v_0 & a & e & b & f & c & d & g \\ \hline 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \end{array} $$

b) Határozzuk meg az alábbi két gráf által leírt (tetszőleges kezdőállású) éles játékok összegének a Grundy-számozását.

Hint

Rajzoljuk fel az összegjáték gráfját és futtassuk a DAG-ok Grundy-számozására tanult algoritmusunkat!

Megoldás

Felrajzoljuk az összegjáték gráfját: ennek a csúcshalmaza $V(G_1) \times V(G_2)$, és egy $(u_1, u_2)$ csúcsból pontosan akkor vezet irányított él egy $(v_1, v_2)$ csúcsba, ha vagy $u_1 v_1 \in E(G_1)$ és $u_2 = v_2$ vagy $u_2 v_2 \in E(G_2)$ és $u_1 = v_1$.

A felrajzolást áttekinthetőbbé tehetjük, ha táblázatot készítünk: az egyik gráf csúcsait az első sorba, a másikét az első oszlopba írjuk. Így minden cella az adott sor- és oszlopcsúcs párjához tartozik.

Célszerű a két kiinduló gráfot topologikus sorrendben elhelyezni, mert ekkor az összegjáték gráfjának topologikus sorrendje egyszerűen megkapható például a táblázat sorfolytonos, azaz fentről lefelé, azon belül balról jobbra történő kiolvasásával. Egy ilyen ábrázolást látunk lent. Ezután az órán tanult algoritmussal meghatározzuk a gráf Grundy-számozását (az ábrán ezt piros számokkal tüntettük fel).

Megjegyzés: Következő előadáson fog elhangzani a Sprague-Grundy tétel. Ez alapján az összegjáték gráfjának Grundy-számozása a kis gráfok Grundy-számainak nim-összegéből kapható. Figyeljük meg, hogy ez itt is teljesül, ehhez a kis gráfok Grundy-számait is feltüntettük.

c) Mely kezdőállásokra lesz az alábbi két gráf által leírt éles játékok összege $\II$-es típusú?

Hint

A Grundy-számozásból egyszerűen következik.

Megoldás

1. megoldás. Ha már megvan az összegjáték Grundy-számozása, akkor az összegjáték pontosan akkor lesz $\II$-es típusú, ha a kezdőállás Grundy-száma 0, azaz az $(a,z)$, $(b,y)$, $(c,y)$, $(d,z)$ kezdőállások esetén.

2. megoldás. Elég külön-külön a két játék Grundy-számozását ismerni, ugyanis az összegjáték pontosan akkor lesz $\II$-es típusú, ha a kezdőállás Grundy-száma 0, ami pontosan az azonos Grundy-számú állásokból képzett párok esetén fordul elő, vagyis az $(a,z)$, $(b,y)$, $(c,y)$, $(d,z)$ kezdőállások esetén.

3. feladat

Adott két kupac zseton, ahol a kupacok mérete $n, m \in \mathbb{N}_+$. A soron következő játékos valamelyik kupacot kidobja, és a másik kupacot két nemüres kisebb kupacra osztja fel. Az veszít, aki nem tud lépni. Határozzuk meg, hogy mikor van a kezdőjátékosnak nyerő stratégiája.

Hint

Érdemes kis kupacokra eldönteni, hogy a konkrét állás $\I$-es vagy $\II$-es típusú-e. Az $(1,1)$-es állás nyilván a nyerő nyelő. Mi a helyzet a $(2,1)$-el, a $(3,1)$-el, vagy a $(3,2)$-vel? Mit érdemes csinálni, ha az egyik kupac $4$-es méretű? Sejtésünket bizonyítsuk tetszőleges kupacméretekre.

Megoldás

Belátjuk, hogy a magban épp azok a kupacpárok lesznek, amelyekben legalább az egyik kupac páros méretű. Ekkor a soron következő játékos tud úgy lépni, hogy egy páros kupacot két páratlanra oszt fel, a másik kupacot pedig eldobja. Két páratlan kupacból pedig csak úgy tud lépni a soron következő, hogy egy páros kupac is fog keletkezni. Mivel az $(1,1)$ állásba lépő játékos nyer, ezért a kezdőjátékosnak valóban pontosan akkor van nyerő stratégiája, ha $n$ és $m$ közül legalább az egyik páros.

4. feladat

a) Határozzuk meg a kupacos játékban az állások típusát $S = \{ 2, 4, 7 \}$ esetén.

Hint

Kezdjük el felrajzolni a játék gráfját csak kis kupacméretekre és adjuk meg ebben az állások típusát. Vegyük észre, hogy egy idő után periodikusan ismétlődik. Ezt maradékosztályonként igazolhatjuk.

Megoldás

Némi számolgatás útján megsejtjük, hogy a magban a $0$, az $1$, és a $4$-nél nagyobb, 3-mal osztható számok vannak. Ezt kézzel igazoljuk $n=10$-ig:

$11 \leq n$ már elég nagy, hiszen belőle az $n'=4$-ig látunk vissza, ahol már szabályosan viselkedik a sorozat. Elég nagy $n$-re pedig indukcióval a következőképpen lehet érvelni. Tegyük fel, hogy $n$-nél kisebb (és $4$, vagy annál nagyobb) kupacméretekre már igaz az állítás.

b) Bizonyítsuk be, hogy tetszőleges véges $S$ esetén a $\II$-es típusú állások halmaza egy idő után periodikus.

Hint

Akármilyen $S$ esetén a $k$-méretű kupacnak megfelelő csúcs típusa csak az őt megelőző $\max S$ darab csúcs típusától függ, legyen ez a csúcs mintája. Mi történik, ha valamilyen $k_1 \lt k_2$ esetén ugyanaz a mintája a két csúcsnak?

Megoldás

Tetszőleges $S$ esetén egy $k$-méretű kupac típusára tekinthetünk úgy, mint az őt közvetlenül megelőző $\max S$ darab csúcs típusának a függvényére. Nevezzük ezt a $\max S$ hosszúságú típussorozatot a csúcs mintájának. A ($\max S$)-hosszú intervallumok véges sok (konkrétan $2^{\max S}$) félék lehetnek, és amint találunk két azonos, ($\max S$)-hosszú intervallumot a sorozatban, akkor onnantól kezdve a rákövetkező csúcsok típusa is azonos kell hogy legyen és így tovább.

5. feladat

A mérgezett csoki (chomp) játék a következő: adott egy ($n \times m$)-es tábla csoki (ahol $n,m \in \mathbb{N}_+$), melynek a bal alsó kockája mérgezett. A soron következő játékos kiválaszthatja a maradék csokidarab egy kockáját, és leharapja azt, valamint az összes tőle jobbra és felfele levő kockát. Az veszít, aki megeszi a mérgezett kocka csokit. Mutassuk meg, hogy tetszőleges $n \in \mathbb{N}_+$ esetén a szimmetrikus, ($n \times n$)-méretű chomp játékban a kezdőjátékosnak van nyerő stratégiája.

Hint

A másolási stratégia működhetne, ha nem lehetne az átlóra lépni. Érjük el kezdőjátékosként, hogy ez teljesüljön.

Megoldás

Az első lépésben válassza ki a kezdőjátékos a 2. sor 2. kiskockáját (azaz a mérgezett kockától átlósan jobbra felfelé lévő kockát). Utána akár a függőleges oszlopból, akár a vízszintes sorból harap a második játékos, a kezdőjátékos tegye ugyanezt a másik sávban, és így nyerni fog.

6. feladat

Adjunk optimális stratégiát (mindkét játékosra) a kupacos játéknak arra a változatára, melyben $S = \{ 1, 2, \ldots, 10 \}$ és a győztes játékos annyi pénzt nyer el a másik játékostól, ahány kavicsot a győztes összesen elvett a játék során.

Hint

Figyeljük meg, hogy az eredeti játékban a nyerő stratégia olyan, hogy a győztesnek nincs többféle opciója a lépéseire, ezért a módosítottban is ez alapján fog játszani. A vesztes játékosnak erre válaszul $10$ lehetséges lépése van, ezek közül válassza azt, ami neki a legkisebb anyagi kárral jár.

Megoldás

A nyerő stratégia követése során a győztesnek sosincs választása, ugyanis ha bárhol eltérünk a nyerő stratégiától, akkor az ellenfél tud nyerni. Ezért a győztes játékos nyerő stratégiája a módosított játékra megegyezik az eredetivel. A vesztes játékos ezzel szemben tud úgy lépni, hogy a győztesnek minden lépésben pontosan 1 kavicsot kelljen elvennie (konkrétan a vesztes mindig 10 kavicsot vesz el).

7. feladat

Keressünk az alábbi gráfokban magot, vagy ha nincs bennük, akkor bizonyítsuk ezt be.

Hint

A $G_1$ gráf DAG, a tanult algoritmussal keresünk benne magot. A $G_2$ gráfban nincs mag, ehhez nézzük meg ha lenne, mekkora méretű lehetne. A $G_3$-ban van mag, ennek megtalálásához vegyük észre hogy egy páratlan kört javítottunk meg egy éllel. A $G_4$-ben nincs mag, ezt esetszétválasztással lehet igazolni, melyet célszerű lehet egy $1$ kifokú csúcsból indítva elvégezni.

Megoldás

A $G_1$ gráf DAG, tehát van benne mag. A topologikus sorrend szerint visszafelé haladva mohón építünk egy független ponthalmazt, ez lesz a(z egyértelmű) mag: $d, f$.

A $G_2$ gráfban nyilván nincs mag, hiszen a függetlenség miatt ez csak egy csúcsból állhatna (ugyanis az üreshalmaz semmilyen legalább egycsúcsú gráfban nem mag), aminek akkor egy olyan csúcsnak kellene lennie, amibe minden más csúcsból fut él, de ilyen csúcs nincsen.

A $G_3$ gráfban az $a,d$ csúcsok egy magot alkotnak.

A $G_4$ gráfban nincs mag. Indirekt tegyük fel, hogy van. Akkor abban a $d$ csúcs nem lehet benne, ellenkező esetben a függetlenség miatt nem lehetne a magban az $a, b, f$ csúcsok egyike sem, és így $a$ nem látná a magot. Ekkor ahhoz, hogy a $d$ csúcs láthassa a magot, az $a$ csúcsnak muszáj a magban lennie. A függetlenség miatt ekkor a $b$ és az $f$ csúcs sem lehet a magban. Ahhoz, hogy az $f$ csúcs láthassa a magot, az $e$ csúcsnak a magban kell lennie. De ekkor a függetlenség miatt nem lehetne a magban az $b, c, h$ csúcsok egyike sem, és így $c$ nem látná a magot.

8. feladat

Bizonyítsuk be, hogy ha $G$ egy páratlan hosszú irányított kör, akkor nincs magja.

Hint

Vegyük észre, hogy ha egy csúcsnak egy a kifoka, akkor a hozzá tartozó él pontosan egyik végpontja benne van a magban.

Megoldás

Indirekt tegyük fel, hogy mégis van neki. Mivel minden mag egy független ponthalmazt alkot, ezért lesz olyan csúcs hogy sem ő, sem pedig az ő egyetlen ki-szomszédja nem szerepel ebben a független ponthalmaznak, ami ellentmond a mag definíciójának.

9. feladat

Legyen $G$ egy olyan irányított gráf, melyet egy irányítatlan egyszerű gráfból kaptunk úgy, hogy annak minden élét helyettesítettük egy oda-vissza irányított élpárral. Van-e bizonyosan $G$-ben mag? Ha van, akkor tudunk-e polinomidőben találni egyet?

Hint

Egy mohó stratégia működhet.

Megoldás

Egy tetszőleges tovább már nem bővíthető független halmazrendszer mag, és ilyet mohó kiválasztással tudunk találni.

10. feladat

Adjunk algoritmust az optimális stratégia meghatározására olyan általánosított kombinatorikus játékokra, melyekben győzelem, döntetlen és vereség helyett minden nyelő csúcsban egy $-k$ és $k$ közötti egész szám van megadva (ami lehet $\pm k$ is), mely azt írja le, hogy az odalépő játékos mennyi pénzt nyer el a másik játékostól.

Hint

Címkézzük fel a csúcsokat aszerint, hogy az oda lépő játékos végeredménye mennyi lesz, ha a másik optimálisan játszik. Mi legyen a címkézés szabálya? A címkék alapján mi a nyerő stratégia?

Megoldás

A címkézés topologikus sorrendben visszafele történik. A nyelőknek a megadott érték lesz a címkéje. A többiek pedig az általuk látott csúcsok maximumának $-1$-szeresét írják a címkére, hiszen az onnan kilépő játékos a maximális szomszédba akar majd lépni, ha optimálisan játszik, a mi kifizetésünk pedig az ellenfél kifizetésének a $-1$-szerese lesz.

11. feladat

Bizonyítsuk be, hogy ha egy $G$ irányított gráfban nincs páros hosszú irányított kör, akkor $G$-nek legfeljebb egy magja van.

(Pöttyös feladat.)

12. feladat

(a) Legyen $G$ egy olyan irányított gráf, mely irányítatlan értelemben egy páros gráf. Mutassuk meg, hogy $G$-nek van magja.

(b) Mutassuk meg, hogy ha az erősen összefüggő $G$ gráfban nincs páratlan hosszú irányított kör, akkor $G$ irányítatlan értelemben egy páros gráf.

(c) Bizonyítsuk be Richardson tételét: ha egy $G$ irányított gráfban nincs páratlan hosszú irányított kör, akkor $G$-nek van magja.

(Pöttyös feladat.)