Problemet med synkronisering av skyttar är ett problem från området för datavetenskap och teorin om cellulära automater .
Föreslog först av John Myhill 1957 och publicerades (med lösning) 1962 av Edward Moore [2] . Namnet är förknippat med soldaternas beteende under avrättning eller gevärsalut - alla soldater skjuter samtidigt på en signal.
Den är formulerad enligt följande: är det möjligt att programmera en endimensionell cellulär automat med ändlig längd på ett sådant sätt att från starttillståndet G●●...●●● alla celler samtidigt övergår till tillståndet FFF...FFF, oavsett längden på kedjan, om övergångsregeln ●●●→● är obligatorisk och dess motsvarigheter för kedjans ändar ⌀●●→●, ●●⌀→●? I klartext [3] :
Eftersom signalen fortplantar sig längs linjen med en hastighet av 1 position per klocka (i cellulär automatteori kallas detta "ljushastigheten"), är det uppenbart att synkroniseringstiden kommer att öka med ökande .
Finns det en lösning på problemet med synkronisering av pilar i fem tillstånd - för alla , inte nödvändigtvis optimala i tid?
Den första lösningen på detta problem hittades av John McCarthy och Marvin Minsky och publicerades i Sequential Machines av Edward Moore.
En lösning som kräver minimal tid hittades 1962 av professor Eiichi Goto vid MIT [4] . Den använder flera tusen tillstånd och kräver exakta tidsenheter för robotarna. Det är lätt att bevisa (se nedan) att det inte finns några mer tidseffektiva lösningar.
Den optimala lösningen, med endast sex tillstånd (inklusive det sista "skottet"), hittades av Jacques Mazoyer 1987 [5] . Tidigare har Robert Balzer bevisat genom datoruppräkning att det inte finns några lösningar med fyra celltillstånd [6] . Peter Sanders fick senare reda på att Balzers sökförfarande var ofullständigt, men efter att ha rättat till proceduren fick han samma resultat. På 2010 -talet erhölls hundratals olika lösningar med sex tillstånd genom evolutionär uppräkning [7] . Det är fortfarande okänt om det finns en lösning med fem celltillstånd.
De försöker också slå rekordet för antalet inblandade övergångsregler (inklusive den obligatoriska men inte använda regeln för befälhavaren ⌀●●→● [7] . Det finns 119 regler i Mazoyers lösning. Det finns en icke-tidsoptimal lösning med sex tillstånd och 78 regler, och den optimala är från den 80:e.
Hitta ofullständiga lösningar med fyra tillstånd - till exempel synkronisering av en rad robotar [1] .
Den enklaste lösningen på problemet beskriver två vågor av tillstånd som fortplantar sig längs en rad av robotar, varav den ena rör sig tre gånger snabbare än den andra. Den snabba vågen reflekteras från den bortre kanten av raden och möter den långsamma vågen i mitten. Därefter delas två vågor i fyra, som rör sig i olika riktningar från centrum. Processen fortsätter, varje gång dubblerar antalet vågor, tills längden på segmenten i raden blir lika med 1. I detta ögonblick skjuter alla robotar. Detta beslut kräver tidsenheter för soldaterna.
En ganska enkel 16-statslösning som beskrevs av Abraham Waksman 1966 [8] beskrivs här . Befälhavaren skickar signaler med frekvenser till den intilliggande roboten . Signalen studsar från den högra änden av raden och möter signalen (för ) i cellen . När den studsar skapar den också en ny befälhavare i den högra änden.
Signaler genereras med hjälp av hjälpsignaler som sprider sig till vänster. Vartannat ögonblick genererar den normala signalen en hjälpsignal som fortplantar sig åt vänster. rör sig oberoende med hastighet 1, medan långsammare signaler rör sig endast när de tar emot hjälpsignaler.
Om mellan befälhavaren (initierande av skjutningen) och den närmaste änden av robotarna, kräver synkroniseringen åtminstone steg [9] . Ett specialfall: om befälhavaren är på kanten, steg då. |
Bevis. Låt oss säga att det finns tre program som löser synkroniseringsproblemet, och för vissa , och kommer att kunna skjuta för . Vi tror att befälhavaren är närmare den vänstra änden.
Varje signal går från robot till robot inte snabbare än den så kallade "ljushastigheten" - 1 position per tidssteg. Den första robotens agerande för tillfället beror på de två första robotarna för tillfället , på de tre första för tillfället , ... på alla robotar för tillfället . I detta ögonblick är den sista roboten fortfarande i sitt initiala tillstånd (signalen kommer i ögonblicket ).
Det betyder att om vi lägger till fler robotar i den högra änden , för tillfället kommer tillståndet för de första robotarna att vara detsamma, ingenting kommer att förändras för den första roboten, och den kommer att skjuta i samma steg . Den sista th på steget kommer att förbli i sitt ursprungliga tillstånd - signalen kommer inte att ha tid att nå den. Så denna trio av program är ingen lösning. Motsägelse.
Den andra nedre gränsen, steg, bevisas på samma sätt , men antalet är inte mindre.
Notera. Ytterligare krav på och , om de inte begränsas från ovan, kan ge en vinst i antalet stater, men inte i tid, och det finns faktiskt en generalisering av Waksmans 17-statslösning som fungerar för alla och för steg [10] .
Flera mer allmänna formuleringar av problemet har föreslagits och studerats, inklusive godtyckligt ordnade serier, slutna ringar, rutor, kuber, Cayley-grafer och allmänna grafer.
Om vetskapen om att befälhavaren är på kanten av den linjära formationen misslyckas med att vinna i synkroniseringstid, kommer det att finnas en vinst i den tvådimensionella formationen från vetskapen om att han är kvadratisk [11] .
Det var möjligt att hitta existensen av en lösning för ett linjärt system, om varje robot måste ge en signal klockor innan skottet, roboten vet max och sin egen , och programmeras därefter [12] . Den enklaste lösningen är att ge robotarna ytterligare tillstånd och samma antal cykler att synkronisera, men du klarar dig utan denna fördröjning om formationen är tillräckligt lång. Komplexiteten för varje enskilt program (det kommer faktiskt ihåg robotens tillstånd från den klassiska uppgiften).
Den exakta minsta synkroniseringstiden på olika skalorHandlingsform | Minsta tid |
---|---|
Linje, mellan befälhavaren och robotarnas närmaste kant | [9] |
Ringa | [9] |
Ring med enkelriktad spridning av information | [9] |
Kare med befälhavaren på hörnet | [elva] |
Fyrkant med befälhavaren på hörnet | [elva] |
Kub med en befälhavare överst | [elva] |
Conways Game of Life och andra cellulära automater | |||||
---|---|---|---|---|---|
Konfigurationsklasser | |||||
Konfigurationer |
| ||||
Villkor | |||||
Andra rymdskepp på ett tvådimensionellt gitter |
| ||||
Endimensionell rymdfarkost | |||||
Programvara och algoritmer |
| ||||
KA-forskare |