Ханойдың магниттік мұнарасы - Magnetic Tower of Hanoi

Ханойдың магниттік мұнарасы (MToH) жұмбақ

The Ханойдың магниттік мұнарасы (MToH) жұмбақ - классиканың вариациясы Ханой мұнарасы басқатырғыш (ToH), мұнда әр дисктің екі жағы болады, мысалы, «қызыл» және «көк» түрлі-түсті. MToH басқатырғышының ережелері түпнұсқа басқатырғышының ережелерімен бірдей, оған қоса әр диск қозғалған кезде аударылады және егер олардың жанасатын жақтары бірдей түсті болса, екі дискіні бір-біріне қоюға болмайды. . Әр дискінің солтүстік және оңтүстік полюстері бар, ұқсас полюстер бір-бірін репеляциялайды және қарама-қарсы полюстер бір-бірін қызықтырады.Әр дискінің ішіндегі магниттер физикалық тұрғыдан заңсыз әрекеттерді болдырмайды.[1]

Магниттіліктің иллюстрациясы: Дискілер магниттік әсер етеді, егер олардың жанасатын жақтары бірдей түсті болса

ToH классикалық басқатырғышының таңқаларлық ерекшеліктерінің бірі оның 2-негізге қатынасы: басқатырғышты шешуге қажетті жалпы жүрістердің минималды саны - 2n - 1 (қайда n - бұл дискілердің саны), ал дискінің ең аз қозғалу саны к 2.к − 1 (дискілер төменнен жоғарыға қарай нөмірленген к = 1 ең үлкен диск, және к = n ең кішкентай болу). Төменде түпнұсқа ToH басқатырғышының 2-негізге қатысты болатындығы сияқты, MToH-дің 3-негізге де қатысты екендігі, бірақ одан да күрделі болады.[2]

Шығу тегі

MToH белгілі бір вариацияларына математикалық эквивалентті жұмбақтар біраз уақыттан бері белгілі. Мысалы, біреуіне балама басқатырғыш түрлі-түсті вариациялар MToH пайда болады Бетонды математика.[3] Бұл басқатырғышта жылжуға тек белгілі бір посттар арасында ғана рұқсат етіледі, бұл посттарға тұрақты түстерді тағайындауға тең (мысалы, егер екі постта оларға бекітілген бірдей түсті болса, онда екі пост арасында тікелей қозғалуға жол берілмейді).

Ақысыз (түсті емес) MToH алғаш рет интернетте пайда болды[4] шамамен 2000 жылы («Домино Ханой» деген атпен) математик Фред Луннонның Ханой мұнарасының түпнұсқа басқатырғыштарының әр түрлі вариацияларын егжей-тегжейлі шолу шеңберінде.

MToH-ді физик Ури Леви 1984 жылдың жазында өздігінен ойлап тапты, ол сонымен бірге магнетизмге ұқсастық пен атауды ұсынды.[түсіндіру қажет ][5] Кейінірек доктор Леви бірқатар мақалаларын жариялады [1][6][7] MToH математикалық аспектілерімен айналысады.

Сөзжұмбақтың сипаттамасы

Жұмбақтың бастапқы орны

MToH басқатырғышы дерек көзі (S), тағайындалатын жер (D) және аралық (I) деп белгіленген үш посттан және стекадан тұрады. n Қызыл немесе Көк түстерінің әр түрлі түсі бар дискінің әр жағымен әр түрлі өлшемді дискілер. Сөзжұмбақтың басында дискілер көлемінің кішіреюіне қарай S тіреуіне қойылады (яғни ең үлкен диск төменгі жағында), және барлық дискілерде қызыл жағы жоғары қаратылған болады. Сөзжұмбақтың мақсаты (оның «негізгі» нұсқасында) бүкіл стекті, бір-бірден дискіні D постына жылжыту, тәртіпті ең үлкенінен ең кішісіне, бірақ көк жақтарын жоғары қаратып ұстау.

Жұмбақтың соңғы орны

Дискілердің қозғалысын реттейтін ережелер:

  • Үлкенірек дискіні кіші дисктің үстіне қою мүмкін емес (бастапқы ToH-дағыдай)
  • Дискіні жылжытқанда, оны аударады, яғни жоғары қараған түс төмен қарайды
  • Түсі бірдей әр түрлі дискілердің екі жағы бір-біріне тиіп кетпеуі мүмкін (мысалы, Көк жағы төмен қараған дискіні Көк жағы жоғары қараған дисктің үстіне қоюға болмайды).

Жұмбақ шешімі n = 2 және n = 3

MToH ережелерін иллюстрациялау және жалпы шешімге жету жолын көрсету үшін мысалдар арқылы жұмыс жасаған пайдалы n = 2 және n = 3. жағдай үшін n =, Үш қадаммен салыстырғанда, ілеспе суретте көрсетілгендей төрт қадам қажет n = ToH-нің 2 жағдайы. Қосымша қадам қажет, себебі екінші қадамнан кейін кішігірім дискіні I постынан D постына тікелей жылжыту мүмкін емес, өйткені бұл оның көк жағы төмен қаратылғанын білдіреді. Осылайша, кішкене дискінің түсін аудару үшін оны D тіреуіне Көк жағын жоғары қаратып қоюға болатын қосымша қадам қажет.

Шешімі n = 2 жұмбақ

Үшін n = 3 жағдай, шешім келесі қадамдарды қамтиды:

  • Дискілерді 1-ден 3-ке дейін ең үлкенінен кішісіне қарай нөмірлеу, алдымен 2 және 3 дискілерді S постынан I постына ауыстырады (төрт жүріс)

Бұл бірінші кезең келесіге ұқсас n = Жоғарыда сипатталған 2 жұмбақ, ол төрт жүрісті алады, мұнда D мен I посттары ауыстырылады. Алайда, бұл ұқсас емес n = S постында үлкен дисктің болуына байланысты 2 жұмбақ, оны қызыл түске бояйды. Бұл дегеніміз, дискіні осы постқа тек қызыл жағын жоғары қаратып қоюға болады.

  • 1-дискіні S-ден D-ге ауыстыру (бір қозғалыс)

Осы кезеңде біреуін қайтадан пайдалануға азғырылуы мүмкін n = 2 басқатырғышты, және 2 және 3 дискілерді I-ден D-ге 4 жүріске ауыстыруға тырысыңыз. Алайда, мұнда тағы да қамқорлық қажет. D дискісінде 1 болғандықтан, D енді «түсті» Көк түске ие, яғни басқа диск оған Көк жағы жоғары қараған жағдайда ғана орналастырылуы мүмкін. Сонымен бірге n = 2 басқатырғыштар дискілердің қызыл жағын бастапқы күйінде жоғары қаратады, ал мұнда олардың көк жақтарын жоғары қаратады. Осылайша, бұл аралық конфигурация n = 2 MToH. Оның орнына біз келесідей әрекет етеміз:

  • 3-дискіні I арқылы D-ге S арқылы жылжытыңыз (2 қозғалыс)
  • 2-дискіні I-ден S-ге ауыстыру (1 жылжыту)
  • 3-дискіні D-ден I-ге ауыстыру (1 жылжыту)
  • 2-дискіні S-ден D-ге ауыстыру (1 жылжыту)
  • 3-дискіні I-ден D-ге ауыстыру (1 жылжыту)

Осылайша, шешім 11 қадамды қажет етеді. Жаңа көрсетілгендей, қолдануға тырысу табиғи нәрсе n = Бөліктерін шешуге арналған 2 шешім n = А-да 3 жұмбақ рекурсивті классикалық ToH басқатырғыштарын шешу үшін қолданылатын тәсіл. Алайда, классикалық ToH-тен айырмашылығы, мұнда n = 2 ерітінді посттар мен дискілердің түсіне байланысты соқыр түрде қолданыла алмайды. Бұл тармақ жалпыға ортақ шешімге қол жеткізуге болатындығын көрсетеді n-disk MToH басқатырғыштары, посттар алдын ала боялған (көк немесе қызыл) басқатырғыштардың нұсқаларын қарастыру қажет. Осы нұсқаларды қарастыра отырып, MToH басқатырғышына толық рекурсивті қатынастарды дамытып, осылайша жалпы шешім табуға болады.

MToH басқатырғышының түрлі-түсті нұсқалары

MToH «апа жұмбақтарының» түрлі-түсті вариациялары

MToH басқатырғышының жоғарыдағы сипаттамасы дискілердің өзі түсті болғанымен, тіректер бейтарап деп болжайды. Бұл дегеніміз, бос пост дискіні Қызыл жағы немесе Көк жағы жоғары қаратып қабылдай алады. MToH-дің бұл негізгі нұсқасы «ақысыз» MToH деп аталады.

MToH басқатырғышының басқа нұсқалары болуы мүмкін, олардың көмегімен тірек суретте көрсетілгендей посттардың өзі боялған. Егер пост алдын ала Қызыл / Көк түске боялған болса, онда бұл алдын ала боялған постқа тек Қызыл / Көк жағы жоғары қаратылған дискілерді қоюға болады. MToH әр түрлі вариацияларын 3 әріптен тұратын «SID» белгісімен атауға болады, мұнда S, ID сәйкесінше Source, Intermediate және Destination посттарының түсін білдіреді және R (Red), B (Blue) мәндерін қабылдай алады. , немесе N (Бейтарап - түс жоқ). Сонымен, «NNN» басқатырғышы бос MToH туралы айтады, ал «RBB» басқатырғышы S посты алдын ала қызыл түске боялған вариацияны білдіреді, ал I және D посттары алдын ала көк түске боялған.

MToH вариациялары өз бетінше жұмбақтар болғанымен, олар еркін MToH шешуде де маңызды рөл атқарады. Жоғарыда көрсетілгендей, бос MToH аралық күйлерін түрлі-түсті вариациялар деп санауға болады, өйткені онда дискі бар пост дисктің тиісті түсін қабылдайды (яғни тірекке тек сол түсті жоғары қараған дискіні қоюға болады) ).

Мысалы, тегін n = Жоғарыда сипатталған 3 MToH басқатырғышы, 5 қозғалудан кейін үлкен дискі D постында орналасқан аралық күйге жетеді. Осы сәттен бастап D бағанасы Көк түске боялған болып саналады, ал басқатырғыш «NNB» басқатырғышына тең болады. Егер шешім белгілі болса n = 2 «NNB» сөзжұмбақ, оны бірден орындау үшін қолдануға болады n = 3 тегін басқатырғыш.

Симметрия қатынастары

Түрлі-түсті вариациялардың барлығы бірдей емес, басқатырғыштар симметрия басқатырғыштармен алдын ала боялған басқатырғыштардың вариациялары бірдей болатындығын білдіреді. Мысалы, егер біз RBB басқатырғышын артқа шешетін болсақ, онда бұл RRB басқатырғышын кәдімгі алға бағытта шешумен бірдей (ескерту: басқатырғыштың басында барлық дискілер бар деген ережені сақтау үшін көк және қызыл түстер ауыстырылды) олар қызыл жағын жоғары қаратып, постта болуы керек). Сонымен, RBB және RRB басқатырғыштары а уақытты өзгерту симметриясы жұп. Бұл дегеніміз, олар қажет болатын оңтайлы қозғалыстар санына қатысты бірдей сипаттамаларға ие, дегенмен әр жұмбақ оны шешу үшін нақты алгоритмді қажет етеді. Шындығында, уақыттың кері симметриялы жұбын құрайтын басқатырғыштардың бір-біріне тәуелді болатындығы төменде көрсетілген, өйткені біреуінің шешу алгоритмі екіншісінің шешу алгоритмін пайдаланады.

Шешімдер

Классикалық TOH басқатырғыштарындағы сияқты, MToH шешудің қарапайым және нұсқаулық әдістерінің бірі қолдану болып табылады рекурсивті алгоритмдер. Мұндай алгоритмдер басқатырғыштың таңдалған вариациялары үшін төменде келтірілген және шешімдердің оңтайлылығы дәлелденген. Осы алгоритмдерді пайдалану арқылы рекурсивті қатынастар және кейіннен жабық формалық өрнектер басқатырғышты шешуге қажетті жалпы қозғалыстардың саны және шешім кезінде әр дискінің қанша жүрісі болатындығы туралы білуге ​​болады.

Рекурсивті қатынастарды сонымен бірге a көмегімен ұсынуға және талдауға болады Марков типтік талдау, ол да талқыланады.

Рекурсивті шешу алгоритмдері және олардың оңтайлылығын дәлелдеу

Алдымен RBB және RRB басқатырғыштарының уақытты өзгерту симметриясының жұбын қарастырған жөн. Көрсетілгендей, бұл екі жұмбақтың шешімі қарапайым, өйткені олардың рекурсивті алгоритмдері басқатырғыштың басқа вариацияларына емес, біреуіне ғана тәуелді.

Керісінше, жартылай түсті вариацияларға арналған шешімдер (бір немесе бірнеше пост бейтарап жерде) және толық еркін вариация күрделі рекурсиялық қатынастармен шешіледі. RBB (n) және RRB (n) жұмбақтарын келесі жұптың көмегімен шешуге болады. оңтайлы алгоритмдер:

RBB (n) үшін:

  • Жылжыту n - RBB көмегімен S-ден I-ге дейінгі ең кішкентай 1 диск (n - 1) алгоритм
  • 1-дискіні S-ден D-ге ауыстырыңыз
  • Жылжыту n - RRB көмегімен I-ден S-ге дейінгі 1 диск (n - 1) алгоритм
  • Жылжыту n - RBB көмегімен S-ден D-ге дейінгі 1 диск (n - 1) алгоритм

RRB (n) үшін:

  • Жылжыту n - RRB көмегімен S-ден D-ге дейінгі ең кішкентай 1 диск (n - 1) алгоритм
  • Жылжыту n - RBB көмегімен D-ден I-ге дейінгі дискілер (n - 1) алгоритм
  • 1-дискіні S-ден D-ге ауыстырыңыз
  • Жылжыту n - RRB көмегімен I-ден D-ге дейін 1 диск (n - 1) алгоритм

Осы алгоритмдердің оңтайлылығы арқылы дәлелденеді индукция, келесідей (бұл дәлел алгоритмдердің толық түсіндірмесін құрайды):

Үшін n = 1 алгоритмдердің оңтайлы екендігі анық, өйткені бір ғана қозғалыс бар. Әрі қарай, алгоритмдер оңтайлы болып саналады n - 1, және осы болжамды қолдана отырып, олардың оңтайлы екендігі көрсетілгенn.

RBB бастап (n) алгоритмі, 1-дискіні D постына орналастырмас бұрын, алдымен S постында болуы керек (бұл жалғыз қызыл түске боялған пост), ал қалған дискілер I постында болуы керек. Сонымен, шешім осы аралық күйден өтуі керек, ал болжам бойынша, осы аралық күйге жетудің оңтайлы әдісі RBB (n - 1) D және I жазбаларымен алгоритм ауыстырылды.

Әрі қарай, 1 дискіні S-ден D-ге ауыстыру керек, өйткені оны кем дегенде бір рет жылжыту керек.

Әрі қарай, осы күйден соңғы шешімге тек барлық жерде болатын аралық күй арқылы қол жеткізуге болатындығы көрсетілген n - S дискісінде 1 диск бар. 2-дискіні D постына орналастыру үшін ол алдымен S постында (жалғыз Қызыл постта), ал екіншісі болуы керек n - Мен постта 2 диск болуы керек. Дегенмен, 3-дискіні I постына орналастырмас бұрын, ол алдымен дискінің 2-індегі S постында болуы керек. Бұл пайымдау барлық дискілерде жүруі мүмкін, олардың әрқайсысы алдымен S постында болуы керек. Мен хабарлама жіберемін, осылайша шешім барлық жерде болатын аралық күйден өтуі керек n - S дискісінде 1 диск бар.

Осы аралық күйге жету үшін трансферт беретін оңтайлы алгоритмді қолдану қажет n - Blue I постынан Red S постына Blue D посты арқылы 1 диск, яғни оңтайлы BBR (n - 1) RRB-ге балама алгоритм (n - 1) алгоритм (түстер жай ауыстырылған).

Соңында, аудару қажет n - I посты арқылы S-ден D постына дейін ең кішкентай 1 диск. Бұл, әрине, тек RBB (n - 1) алгоритм.

Жоғарыда келтірілген RRB (n) алгоритмінің оңтайлы екендігін көрсету үшін осыған ұқсас пайымдауларды қолдануға болады. Шешімді алгоритмдерді жазуға және олардың оңтайлылығын дәлелдеуге болады, басқаша жұмбақтардың уақытты кері айналдыру жұптары үшін, атап айтқанда:

  • RBN және NRB жұбы
  • RNB және BNR жұбы
  • RNN және NNB жұбы

Бұл алгоритмдер, әдетте, күрделі және жоғарыда сипатталған толық RBB және RRB алгоритмдерін қолданады. Осы алгоритмдердің толық мәліметтерін және олардың оңтайлылығының дәлелдерін табуға болады.[7]

Осы бөлімді аяқтау үшін NNN толықтай басқатырғышты шешу алгоритмі келтірілген. Оңтайлылықтың дәлелі де табуға болады.[7]

  • Ең кішісін жылжытыңыз n - SN-ден D-ге дейін 1 диск, RNN қолдана отырып (n - 1) алгоритм
  • 1-дискіні S-ден D-ге ауыстырыңыз.
  • Ең кішісін жылжытыңыз n - RRB көмегімен I-ден S-ге дейін 2 диск (n - 2) алгоритм (бұл BBR (n-2) алгоритміне балама)
  • Ең кішісін жылжытыңыз n - RBB көмегімен S-ден I-ге дейінгі 2 диск (n - 2) алгоритм
  • 2-дискіні I-ден S-ге ауыстырыңыз
  • Ең кішісін жылжытыңыз n - D-ден I-ге дейін SB арқылы 2 диск, RBN (n - 2) алгоритм (бұл BRN-ге баламалы (n - 2) алгоритм)
  • 2-дискіні S-ден D-ге ауыстырыңыз
  • Ең кішісін жылжытыңыз n - NNB алгоритмін қолдана отырып S-ден I-ге дейін 2 диск

Қайталану қатынастары және оларды шешу жолдары

Шешім алгоритмдері табылғаннан кейін оларды шығару үшін қолдануға болады қайталанатын қатынастар алгоритмді орындау кезінде жүргізілген қозғалыстардың жалпы саны үшін, сондай-ақ әр диск жасаған қозғалыстар саны үшін.

RBB және RRB басқатырғыштарының оңтайлы алгоритмдері бойынша жалпы жүрістер санын белгілеу және , содан кейін жоғарыда келтірілген шешу алгоритміне сілтеме жасай отырып, келесі қайталану қатынастарының болатындығын көрсету оңай:

мұнда RBB және RRB басқатырғыштары уақыттың кері симметрия жұбын құрайтындығы және осылайша қолданылған .

Сондай-ақ, k дискісі арқылы жасалынған қозғалыстардың жалпы санына арналған рекурсиялық қатынасты тізімдеуге болады және сәйкесінше RBB және RRB алгоритмдері үшін (ескеріңіз дискілердің жалпы санынан тәуелсіз n басқатырғышта). Тағы да алгоритмдер арқылы жұмыс жасау және теңдікті қолдану , мұны көрсету қарапайым

Осы рекурсивті қатынастардан тұйық формалы өрнектерді алу өте қарапайым және арқылы беріледі

Көріп отырғанымыздай, бұл шамалар 3-ке теңn, 2-ге тең келетін классикалық ToH басқатырғышынан айырмашылығыn. Шын мәнінде, көрсетілгендей,[7] MToH басқатырғышының барлық нұсқалары асимптотикалық қатынастарды қанағаттандырады

факторлармен с, б келесі кесте арқылы берілген:

Сөзжұмбақтың өзгерістерісб
RRB / RBB1/21
RBN / NRB5/1110/11
RNB4/118/11
RNN / NNB7/2214/22
NNN10/3320/33

Ақырында, ал бүтін тізбектер үшін өрнек тудырады және Интернеттегі бүтін тізбектер энциклопедиясында (OEIS) белгілі және[8] басқатырғыштардың вариациялары тудырған бүтін тізбектер онша маңызды емес және MToH талдауға дейін OEIS-те табылған жоқ. Олардың саны 15-тен тұратын бұл жаңа тізбектер қазір тізімге енгізілді.

Марков типіндегі шешім

Фред Луннон ұсынған және мұнара жұмбақтарының вариацияларын шолуда ұсынылған MToH басқатырғыштарын (және басқа да басқатырғыштарды) талдаудың күшті әдісі,[4] матрицалық әдіс.

Бұл әдісте әртүрлі жұмбақтарды шешудің алгоритмдері бір-біріне тәуелді болатын тәуелсіз топтарға бөлуге күш салынбайды. Оның орнына шешу алгоритмдері барлық басқатырғыштар алгоритмдері өзара тәуелді болатындай етіп, тура жолмен жазылады. Мұны жасағаннан кейін, жүрістердің жалпы саны (S, I, D R, B, N-ге тең) әр басқатырғыштың вариациясы үшін келесідей жазуға болады:

Басқа вариациялардан және жалпы ережеден айырмашылығы, MToH вариациялары NNR және NBR дискілердің қызыл жақтарын жоғары қаратып аяқтайды. Бұл тағайындалған посттың қызыл түске боялуының табиғи салдары.

Егер қазір векторды анықтайтын болсақ

Содан кейін

және рекурсиялық қатынастарды келесі матрица түрінде жазуға болады

онда Марков матрицасы арқылы анықталады

MToH басқатырғышының әр түрлі вариациясының оңтайлы шешімдері үшін қажет болатын қозғалыс саны

Үшін теңдеу енді ретінде жазуға болады

The тән көпмүшелік туралы арқылы беріледі

келесі сегіз тамырға ие

және сегіз жеке вектор осындай

Біз енді білдіре аламыз сегіз жеке векторды қолдана отырып

сондай-ақ

Енді, содан бері барлығына , бұл анық

Осылайша, біз басқадай басқатырғыштар үшін келесі асимптотикалық қатынасты алдық

фактормен с келесі кесте арқылы берілген:

Сөзжұмбақтың түрленуіс
NNN20/66
RNN21/66
NNR39/66
NBR42/66
RNB24/66
RBN30/66
RRB33/66

Әдебиеттер тізімі

  1. ^ а б Леви, Ури (2010). «Ханойдың магниттік мұнарасы». arXiv:1003.0225 [математика ].
  2. ^ «Ханой мұнарасы, қиын жол». Бұл ToH-дің 3-негізге қатысты тағы бір өзгерісі.
  3. ^ Р.Л.Грахам; Д.Е. Кнут және О. Паташник (1989). Бетонды математика. Аддиссон Уэсли. б. 17.
  4. ^ а б Луннон, Фред. «Ханой мұнарасы және вариациялар». Архивтелген түпнұсқа 2013-09-05. Алынған 2013-01-25.
  5. ^ Кутрофелло, Том (2010). «Ханой мұнарасы және басқа рекурсивті басқатырғыштар». Ойындар (Қараша 2010).
  6. ^ Леви, Ури (2010). «Ханойдың магниттік мұнарасы». Рекреациялық математика журналы. 35 (3): 173.
  7. ^ а б в г. Леви, Ури (2010). «Ханойдың магниттік мұнаралары және олардың оңтайлы шешімдері». arXiv:1011.3843 [математика ].
  8. ^ «Он-лайн тізбегінің энциклопедиясы (OEIS)».