Loading [MathJax]/jax/output/HTML-CSS/jax.js
Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az A. 859. feladat (2023. szeptember)

A. 859. Adott egy n csúcsú U útgráf, melynek az egyik csúcsában egy bekötött szemű játékos tartózkodik. Az út csúcsai meg vannak számozva 1-től n-ig a természetes számokkal, nem feltétlenül a szokásos sorrendben. Egy lépésben a játékvezető elárulja a bekötött szemű játékosnak, hogy 1- vagy 2-fokú csúcsban van. Ha 1-fokú csúcsban van, akkor csak az egyetlen szomszédjába léphet, 2-fokú csúcs esetén pedig a játékos eldöntheti, hogy a kisebb vagy nagyobb sorszámú szomszédba szeretne lépni. A játékos összes információja k lépés után a k darab fokszám, amit elárultak neki, és emlékszik a saját választásaira is. Van-e olyan stratégiája a játékosnak, amellyel biztosan meg tudja állapítani véges sok lépésen belül, hogy hány csúcsa van az útnak?

Javasolta: Németh Márton (Budapest)

(7 pont)

A beküldési határidő 2023. október 10-én LEJÁRT.


Van ilyen stratégia.

Azt nevezzük egy algoritmusnak, ami minden lépésben leírja, hogy kisebb vagy nagyobb szomszédba lépjünk, és minden lépésben megjósolja, hogy egy 1 fokszámú csúcsba lépünk-e azzal a lépéssel. Azt mondjuk, hogy egy algoritmus hibába ütközik, ha az előírt lépéseket követve úgy lépünk 1 fokú csúcsba, hogy az algoritmus nem jósolta arra a lépésre, vagy pedig nem lépünk 1 fokú csúcsba egy olyan lépésnél, amiről az algoritmus azt jósolta, hogy abba fogunk lépni.

Lemma: Egy n hosszú út minden sorszámozására létezik olyan véges hosszú alogritmus, ami ebben az útban követhető, de minden n-nél hosszabb úton futtatva hibába ütközik.

Ha a lemma igaz, könnyű belátni a feladat állítását. Minden k-ra véges sok sorszámozása létezik egy k hosszú útnak, ezek mindegyikének az algoritmusát lefuttatjuk, először k=1-re, aztán k=2-re, és így tovább. Ha valójában az út n hosszú, akkor a k<n hosszú utakhoz tartozó algoritmusok mind hibába ütköznek, így tudni fogjuk, hogy az út legalább n hosszú. Ezután az n hosszú út összes sorszámozásához is sorban futtatjuk a hozzájuk tartozó algoritmust. Mivel az út valójában n hosszú, a valódi sorszámozásához tartozó algoritmus nem ütközik hibába. Abból, hogy valamelyik algortimus nem ütközött hibába, tudhatjuk, hogy az út nem lehet n-nél hosszabb. Tehát ebből kiderül, hogy az út n hosszú. Mivel minden algortimus véges hosszú, és minden n-re véges sok algoritmust kell lefuttatni, amíg idáig eljutunk, ezért ez a stratégia véges sok lépésben megállapítja, hány csúcsa van az útnak.

Lemma bizonyítása:

Adott egy n-hosszú út sorszámozással együtt, ezt U-nak nevezzük. Ehhez készítünk algoritmust. Először feltesszük, hogy kezdetben az 1-es számú csúcsában állunk. Elvégezzük azt a lépéssorozatot, ami az U útban az 1-es csúcsból elvinne az egyik végpontba. Ha ennek a végén nem egy végpontban vagyunk, vagy már korábban egy végpontba léptünk, az azt jelenti, hogy nem az 1-es csúcsból indultunk. Ekkor feltesszük, hogy a 2-es csúcsból indultunk eredetileg. Ha az eddigi lépéssor eredménye nem konzisztens azzal, hogy a 2-esből indultunk, akkor ezt is elvetjük, és feltesszük, hogy a 3-asból indultunk. Ha konzisztens, akkor megnézzük, hova értünk volna el az U útban a 2-esből indulva az eddigi lépéssorozattal, majd elvégezzük azt a lépéssorozatot, ami onnan elvinne az egyik végpontba U-ban. Ha ez is hibába ütközik, akkor feltesszük, hogy eredetileg a 3-as csúcsból indultunk... és így tovább, amikor hiba van, feltesszük, hogy eggyel magasabb sorszámú csúcsból indultunk, egészen az n-es sorszámig. Ez egy véges hosszú algoritmus (legfeljebb n2 lépésből áll), és ha valóban az U útban vagyunk, akkor bárhonnan indultunk, ez az algoritmus idővel elvisz egy végpontba.

Az eddigi bolyongást el is felejtjük, és ezután csak az a célunk, hogy készítsünk egy véges hosszú algoritmust, ami egy végpontból indul, és U-ban futtatható, de minden n-nél hosszabb úton hibához vezet.

Az általánosság rovása nélkül mondhatjuk, hogy a bal végpontból indultunk. Az első menetben kilépünk a végpontból, ekkor biztosan balról a második csúcsban állunk.

kn+12-re a k-adik menet elején tudjuk, hogy balról a k-adik csúcsban állunk. Ezután elvégezzük azt a lépéssorozatot, ami U-ban balról a k-adik csúcsból bevinne a bal végpontba, és az algoritmus azt jósolja, hogy ekkor egy 1 fokú csúcsban vagyunk. U-ban ez működik, egy n-nél hosszabb útban pedig ez vagy hibához vezet, vagy ha nem, az csak úgy lehetséges, ha egyenesen visszamentünk a bal végpontba, ugyanis kn+12 miatt a balról a k-adik csúcsból nem juthattunk el k1 lépésben a jobb végpontba, továbbá az útnak egyenesnek kellett lennie, különben k1 lépés nem lett volna elég eljutni a bal végpontba se a k-adik csúcsból. Ekkor elvégezzük azt a lépéssorozatot, ami az előző menetben elvitt a bal végpontból a k-adik csúcsba. Ez most is biztosan odavisz. Majd megnézzük, hogy a mostani menet elején a k-adik csúcsból a kisebb vagy nagyobb szomszédba léptünk. Tudjuk, hogy ez vezet a bal végpont irányába, így most az ellenkező irányba lépünk. Így biztosan a balról k+1-edik csúcsban állunk a menet végén.

Ezt iteráljuk amíg kn+12.

Ha n páros, akkor tudjuk, hogy ezzel végül a balról n2+1-edik csúcsba érkezünk, ha n páratlan, akkor a balról n+32-ik csúcsba. Ekkor elvégezzük azt a lépéssorozatot, ami U-ban elvinne innen a jobb végpontba. Az algoritmus azt jósolja, hogy ezzel egy 1 fokszámú csúcsba érünk. Az U úton ez teljesül, egy n-nél hosszabb úton viszont ez túl kevés lépés ahhoz, hogy bármelyik végpontba elérjünk vele, így biztosan hibába ütközünk.

Összességében tehát ez egy olyan véges algoritmus, ami az U úton jól fut, de minden hosszabb úton hibába ütközik.


Statisztika:

19 dolgozat érkezett.
7 pontot kapott:Czanik Pál, Duchon Márton, Tarján Bernát, Varga Boldizsár, Wiener Anna.
6 pontot kapott:Farkas 005 Bendegúz, Holló Martin, Vigh 279 Zalán.
3 pontot kapott:3 versenyző.
2 pontot kapott:3 versenyző.
1 pontot kapott:3 versenyző.
0 pontot kapott:2 versenyző.

A KöMaL 2023. szeptemberi matematika feladatai