A lövészek szinkronizálásának problémája a számítástechnika és a sejtautomaták elmélete területéről származik .
Először John Myhill javasolta 1957-ben, és 1962-ben adta ki (megoldással együtt) Edward Moore [2] . A név a katonák kivégzés közbeni viselkedéséhez vagy puskatisztelgéshez kapcsolódik – minden katona egyszerre lő egy jelre.
A következőképpen fogalmazódik meg: lehetséges-e úgy programozni egy véges hosszúságú egydimenziós sejtautomatát, hogy a G●●…●●● kiindulási állapotból minden cella egyidejűleg átmegy az FFF…FFF állapotba, függetlenül a a lánc hossza, ha kötelező az átmeneti szabály ●●●→● és megfelelői a láncvégekre ⌀●●→●, ●●⌀→●? Közérthető nyelven [3] :
Mivel a jel órajelenként 1 pozíció sebességgel terjed a vonal mentén (a cellaautomaták elméletében ezt "fénysebességnek" nevezik), nyilvánvaló, hogy a szinkronizálási idő a növekedéssel növekszik .
Van megoldás a nyilak öt állapotú szinkronizálásának problémájára - bármely , időben nem feltétlenül optimális?
Az első megoldást erre a problémára John McCarthy és Marvin Minsky találta meg, és Edward Moore a Sequential Machines-ben publikálta.
Minimális időigényű megoldást talált 1962-ben Eiichi Goto, az MIT professzora [4] . Több ezer állapotot használ, és pontosan időegységeket igényel a robotok számára. Könnyen bebizonyítható (lásd alább), hogy nincsenek időtakarékosabb megoldások.
Az optimális megoldást, mindössze hat állapotot használva (beleértve a végső "lövést" is), Jacques Mazoyer találta meg 1987-ben [5] . Korábban Robert Balzer számítógépes felsorolással bizonyította, hogy nincsenek négy cellaállapotú megoldások [6] . Peter Sanders később rájött, hogy Balzer keresési eljárása hiányos volt, de miután kijavította az eljárást, ugyanazt az eredményt kapta. A 2010 -es években több száz különböző, hat állapotú megoldás született evolúciós felsorolással [7] . Még mindig nem ismert, hogy létezik-e öt sejtállapotú megoldás.
Megpróbálják megdönteni a rekordot az átmeneti szabályok számában is (beleértve a parancsnok kötelező, de nem használt szabályát ⌀●●→● [7] . Mazoyer megoldásában 119 szabály van. Van egy nem időben optimális szabály megoldás hat állapottal és 78 szabállyal, az optimális pedig a 80.-tól.
Keressen hiányos megoldásokat négy állapottal - például egy robotsor szinkronizálása [1] .
A probléma legegyszerűbb megoldása két állapothullámot ír le, amelyek egy robotsor mentén terjednek, amelyek közül az egyik háromszor gyorsabban mozog, mint a másik. A gyors hullám a sor túlsó széléről verődik vissza, és középen találkozik a lassú hullámmal. Ezt követően két hullámot négy részre osztanak, amelyek a központtól különböző irányokba mozognak. A folyamat folytatódik, minden alkalommal megduplázva a hullámok számát, amíg a sor szakaszainak hossza 1 lesz. Ebben a pillanatban minden robot lő. Ez a döntés egységnyi időt igényel a katonáktól.
Abraham Waksman által 1966-ban [8] leírt meglehetősen egyszerű, 16 állapotból álló megoldást ismertetünk itt . A parancsnok frekvenciájú jeleket küld a szomszédos robotnak . A jel a sor jobb végéről visszaverődik, és a cellában találkozik a (for ) jellel. Amikor az visszapattan, egy új parancsnokot is létrehoz a jobb oldalon.
A jelek előállítása balra terjedő segédjelek segítségével történik. Minden második pillanatban a normál jel egy segédjelet generál, amely balra terjed. önállóan mozog 1-es sebességgel, míg a lassabb jelek csak akkor mozognak, ha segédjeleket kapnak.
Ha a parancsnok (a lövészet kezdeményezője) és a robotok legközelebbi vége között van, a szinkronizáláshoz legalább [9] lépés szükséges . Speciális eset: ha a parancsnok a szélen van, akkor lép. |
Bizonyíték. Tegyük fel, hogy három program oldja meg a szinkronizálási problémát, és egyeseknél a , és képes lesz lőni a -ra . Úgy gondoljuk, hogy a parancsnok közelebb van a bal szélhez.
Bármilyen jel nem terjed robotról robotra gyorsabban, mint az úgynevezett "fénysebesség" - 1 pozíció időlépésenként. Az első robot pillanatnyi tevékenysége a pillanatnyi első két robottól, a pillanatnyilag az első háromtól , …, az összes pillanatnyi robottól függ . Ebben a pillanatban az utolsó robot még a kezdeti állapotában van (a jel pillanatnyilag érkezik ).
Ez azt jelenti, hogy ha több robotot adunk a jobb oldali véghez , pillanatnyilag az első robotok állapota ugyanaz lesz, az első robotnál semmi sem változik, és ugyanabban a lépésben fog lőni . A lépés utolsó része az eredeti állapotában marad - a jelnek nem lesz ideje elérni. Tehát ez a programhármas nem megoldás. Ellentmondás.
A másik alsó korlátot, a lépéseket ugyanígy bizonyítjuk , de a szám nem kisebb.
Jegyzet. További követelmények a és -on , ha nem korlátozzák felülről, növelhetik az állapotok számát, de nem időben, és valóban létezik a Waksman-féle 17 állapotú megoldás általánosítása, amely bármely lépésre és lépésre is működik [10] .
A probléma számos általánosabb megfogalmazását javasolták és tanulmányozták, beleértve az önkényesen rendezett sorozatokat, zárt gyűrűket, négyzeteket, kockákat, Cayley-gráfokat és általános gráfokat.
Ha az a tudás, hogy a parancsnok a lineáris formáció szélén van, nem nyeri el a szinkronizálási időt, akkor a kétdimenziós formációban abból a tudásból, hogy ő négyzet, nyereség lesz [11] .
Meg lehetett találni a megoldást egy lineáris rendszerre, ha minden robotnak jelet kell adnia a lövés előtt, akkor a robot tudja a maximumot és a sajátját , és ennek megfelelően van programozva [12] . A legegyszerűbb megoldás, ha a robotoknak további állapotokat és ugyanannyi ciklust adunk a szinkronizáláshoz, de ezt a késleltetést is megtehetjük, ha elég hosszú a formáció. Az egyes programok összetettsége (sőt, a klasszikus feladatból emlékszik a robot állapotára ).
A cselekvés formája | Minimális idő |
---|---|
Vonal, a parancsnok és a robotok közeli széle között | [9] |
Gyűrű | [9] |
Gyűrű az információ egyirányú terjedésével | [9] |
Kare a parancsnokkal a sarkon | [tizenegy] |
Négyzet a parancsnokkal a sarkon | [tizenegy] |
Kocka parancsnokkal a tetején | [tizenegy] |
Conway Game of Life és más sejtautomaták | |||||
---|---|---|---|---|---|
Konfigurációs osztályok | |||||
Konfigurációk |
| ||||
Feltételek | |||||
Más űrhajók kétdimenziós rácson |
| ||||
Egydimenziós űrhajó | |||||
Szoftverek és algoritmusok |
| ||||
KA kutatók |