• Nem Talált Eredményt

Domin´ o probl´ ema

In document Nyelvek ´e sautomat ´a k (Pldal 124-127)

9. Turing-g´ epek 89

10.5. Domin´ o probl´ ema

Eddig csupa olyan nyelvet vizsg´altunk ´es mutattuk meg r´oluk, hogy nem rekurz´ıvak, melyek szorosan k¨ot˝odtek defin´ıci´ojukban is a Turing g´epekhez. A fejezet h´atralev˝o r´ e-sz´eben k´et tov´abbi nyelvet vizsg´alunk, melyek

”h´etk¨oznapibbak”, kev´esb´e elvontak. L´atni fogjuk, hogy ezek sem lesznek rekurz´ıvak, ami azt mutatja, hogy nem csak az absztrakt m´odon defini´alt nyelvek k¨oz¨ott tal´alunk algoritmikusan nem eld¨onthet˝o k´erd´eseket.

A domin´o probl´ema egy olyan s´ık lefed´esi feladat, ahol a teljes s´ıkot kell megadott n´egyzet alak´u ´ep´ıt˝oelemekkel (domin´okkal vagy ink´abb csemp´ekkel) lefedn¨unk.

10.36. Defin´ıci´o Egy domin´o egy egys´egnyi oldalhossz´us´ag´u n´egyzet.

A domin´o t´ıpusaegy(a, b, c, d)n´egyessel ´ırhat´o le, amely a domin´o oldalainak t´ıpus´at

´ırja le a fels˝o oldallal kezdve az ´oramutat´o j´ar´as´anak megfelel˝o k¨or¨ulj´ar´asi ir´anyban.

Minta d

a

b c

Egy domin´ok´eszletv´eges sok domin´ot´ıpust tartalmaz, de mindegyik t´ıpusb´ol megsz´ am-l´alhat´oan v´egtelen sok domin´ot.

Azt a probl´em´at fogjuk vizsg´alni, hogy egy adott domin´ok´eszlettel le tudjuk-e fedni az eg´esz s´ıkot ´ugy, hogy a domin´ok egym´as mell´e ker¨ul˝o oldalai azonos t´ıpus´uak legyenek (a domin´okat nem szabad elforgatni). Teh´at p´eld´aul egy (a, b, c, d) t´ıpus´u domin´o mell´e jobb oldalt csak olyat rakhatunk, melynek a bal oldala b t´ıpus´u.

10.37. P´elda N´ezz¨uk meg, az al´abbi k´eszletek alkalmasak-e a s´ık lefed´es´ere!

• {(a, a, a, a)}

• {(a, b, b, b),(a, a, b, b)}

Az els˝o k´eszlettel le tudjuk fedni a s´ıkot, hiszen b´armely k´et domin´o egym´as mell´e illeszt-het˝o b´armilyen ir´anyb´ol, m´ıg a m´asodikkal nem, mivel semelyik k´et domin´ot sem tudjuk egym´as al´a rakni (a teteje mindegyiknek a t´ıpus´u, m´ıg az alja b t´ıpus´u).

Egy adott domin´ok´eszlet le´ır´asa v´eges hossz´u karaktersorozat, ez´ert tekinthetj¨uk egy sz´onak, ´es vizsg´alhatjuk azt a nyelvet, amely a s´ık kirak´as´ara alkalmas k´eszleteknek meg-felel˝o szavakb´ol ´all. Az a k´erd´es, hogy ez a nyelv rekurz´ıv-e l´enyeg´eben azzal egyen´ert´ek˝u, hogy lehets´eges-e olyan, mindig v´eget ´er˝o algoritmust adni, ami tetsz˝oleges domin´ok´ esz-letr˝ol megmondja, hogy vele a s´ık kirakhat´o-e.

A k¨ovetkez˝okben ezt a k´erd´est j´arjuk k¨or¨ul.

10.38. Defin´ıci´o A domin´o nyelv azon domin´ok´eszletek halmaza, amelyekkel a domin´o probl´ema megoldhat´o.

D={ a s´ık kirak´as´ara alkalmas domin´ok´eszletek } A lefedhet˝os´egnek egy ´erdekes jellemz´es´et adja a k¨ovetkez˝o lemma.

10.39. Lemma Egy domin´ok´eszlettel a s´ık akkor ´es csak akkor rakhat´o ki, ha minden 2k×2k-as m´eret˝u n´egyzet kirakhat´o vele (k= 1,2, . . .).

Bizony´ıt´as. Ha a s´ık kirakhat´o, akkor nyilv´an minden n´egyzet is, ez az ir´any trivi´alis.

A m´asik ir´anyhoz azt kell megmutatni, hogy ha minden p´aros oldalhossz´u n´egyzet kirakhat´o, akkor az eg´esz s´ık is. Ennek bel´at´as´ara defini´alunk egy gy¨okeres f´at. A gy¨ok´er fiai a 2×2-es n´egyzetek kirak´asai. A felt´etel szerint a gy¨ok´ernek legal´abb egy fia van, de azt is tudjuk, hogy a fi´uk sz´ama legfeljebb t4, ha t jel¨oli a k´eszletben a t´ıpusok sz´am´at.

Egy 2×2-es n´egyzetnek megfelel˝o cs´ucs fiai legyenek az ˝o 4×4-es lehets´eges kiterjesz-t´esei, melyeket a 2×2-es kirak´asb´ol ´ugy kapunk, hogy k¨or´e rakunk egy r´eteg domin´ot.

A k¨ovetkez˝o szinten egy 4×4-es cs´ucsnak a hasonl´o m´odon kapott 6×6-os n´egyzetekre val´o kiterjeszt´esei (amikor is a sz¨ul˝onek megfelel˝o n´egyzet van k¨oz´epen, e k¨or´e rakunk egy r´eteg domin´ot, amennyiben ez lehets´eges) lesznek az ˝o fiai, ´es ´ıgy tov´abb.

Ez egy gy¨okeres szintezett fa, melyben minden szinten v´eges sok cs´ucs van (mert egy adott m´eret˝u n´egyzetnek csak v´eges sok f´ele kirak´asa lehet), de minden szinten van legal´abb egy cs´ucs, teh´at ¨osszesen v´egtelen sok (megsz´aml´alhat´oan v´egtelen sok) cs´ucsa van ennek a f´anak. Az is teljes¨ul, hogy minden nem-gy¨ok´er elemnek van apja (a k¨ozep´enek megfelel˝o n´egyzet).

A s´ık egy kirak´as´ahoz induljunk ki a gy¨ok´erb˝ol. Mivel v´eges sok fia van, biztosan van k¨oz¨ott¨uk olyan, amelynek r´eszf´aja v´egtelen sok cs´ucsot tartalmaz. V´alasszunk egy ilyet, majd tekints¨uk az ˝o fiait. Mivel bel˝ol¨uk is csak v´eges sok van ezek k¨oz¨ott is biztosan van olyan, melynek a r´eszf´aja v´egtelen sok elemet tartalmaz. Ezt az elj´ar´ast ak´armeddig foly-tathatjuk, a bej´ar´as sosem akad el, ´es v´eg¨ul egy, a gy¨ok´erb˝ol indul´o, v´egtelen hossz´u utat eredm´enyez. Ez az ´ut megadja az eg´esz s´ık egy kirak´as´at, egy megfelel˝o 2×2-es n´ egyzet-b˝ol kiindulva, mindig a v´alasztott fi´unak megfelel˝oen ´ujabb ´es ´ujabb r´eteget rakhatunk a m´ar meglev˝o n´egyzet¨unk k¨or´e. Az elj´ar´assal a s´ık minden pontj´ara megkaphatjuk, azt milyen domin´o fedi.

Most m´ar k´eszen ´allunk r´a, hogy bel´assuk a k¨ovetkez˝o t´etelt.

10.40. T´etel D∈co RE Bizony´ıt´as. A defin´ıci´ok szerint

D∈co RE ⇔D∈RE⇔ ∃M Turing-g´ep :L(M) =D

Azt kell teh´at megmutatnunk, hogy van olyan Turing-g´ep, ami pontosan azokat a sza-vakat fogadja el, melyek nem megfelel˝o k´eszleteknek (vagy nem is k´eszleteknek) felelnek meg. M˝uk¨odj¨on M a k¨ovetkez˝ok´eppen:

• Ha a bemenet nem egy domin´ok´eszlet, akkor meg´all ´es elfogad. (Ez a d¨ont´es v´eges sok l´ep´esben meghozhat´o a domin´ok´eszletek k´odol´as´anak ismeret´eben.)

• Ha a bemenet egy domin´ok´eszlet le´ır´asa, akkor M sorban az ¨osszes k = 1,2, . . . esetre kipr´ob´alja az ¨osszes lehet˝os´eget a 2k ×2k-as n´egyzet lefed´es´ere. Ha vala-mely k-ra ezeket v´egign´ezve nem tal´al megold´ast, akkor M meg´all ´es elfogadja a bemenetet.

Amennyiben az adott domin´ok´eszlettel a s´ık nem rakhat´o ki, akkor, a fenti lemma ´ er-telm´eben biztosan van olyan k amire M nem tal´al j´o kirak´ast. Mivel minden n´egyzet lefed´es´ere csak v´eges sok lehet˝os´eget kell kipr´ob´alni, M el fog jutni a legkisebb ilyen k-hoz, ´es miut´an itt ellen˝orizte az ¨osszes lehet˝os´eget, meg´all ´es elfogad.

Ezzel szemben, ha egy k´eszlettel a s´ık kirakhat´o, akkor M minden k-n´al fog tal´alni egy j´o kirak´ast, ´es ez´ert sosem ´all meg.

´Igy teh´at M val´oban a D nyelvet fogadja el.

A D nyelvr˝ol t¨obbet is lehet mondani, de az al´abbi ´all´ıt´ast itt nem bizony´ıtjuk be.

10.41. T´etel D /∈R

10.42. K¨ovetkezm´eny D /∈RE

Bizony´ıt´as. Mivel a 10.27. t´etel alapj´an R = RE∩co RE ´es az el˝oz˝oek szerint D /∈ R, viszont D∈co RE, ez´ert D nem lehet rekurz´ıvan felsorolhat´o.

A domin´o nyelv teh´at egy ´ujabb (a diagon´alis nyelvn´el kev´esb´e absztrakt) p´elda nem rekurz´ıvan felsorolhat´o nyelvre.

In document Nyelvek ´e sautomat ´a k (Pldal 124-127)