Кіріспе

Реттілік реттілігін өзгертудің математикалық түрі

Математикада жиынның пермутациясы екі түрлі нәрсені білдіре алады:
оның мүшелерінің тізбек немесе сызықтық ретте орналасуы, немесе реттелген жиынның сызықтық реттілігін өзгерту әрекеті немесе процесі. Бірінші мағынаның мысалы – {1, 2, 3} жиынының алты пермутациясы (реттелуі): олар (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2) және (3, 2, 1) түрінде жазылады. Әрбір әрпі әртүрлі сөздің анаграммалары да пермутация болып табылады: әріптер бастапқы сөзде реттелген, ал анаграмма оларды қайта реттейді. Шектеулі жиындардың пермутациясын зерттеу комбинаторика және топтар теориясының маңызды тақырыбы болып табылады. Пермутация математиканың барлық салаларында және ғылымның көптеген басқа салаларында қолданылады. Компьютер ғылымында олар сұрыптау алгоритмдерін талдау үшін; кванттық физикада бөлшектердің күйін сипаттау үшін; ал биологияда РНК тізбектерін сипаттау үшін қолданылады. n түрлі нысанның пермутацияларының саны n факториал, әдетте n! деп жазылады, яғни n-ден кем немесе тең барлық оң бүтін сандардың көбейтіндісі.

Екінші мағынаға сәйкес, S жиынының пермутациясы S-тен өзіне биекция ретінде анықталады. Яғни, бұл S-тен S-ке дейінгі функция, онда әрбір элемент кескін мәні ретінде дәл бір рет кездеседі. Мұндай функция S элементтерінің қайта орналасуымен тең, онда әрбір элемент i сәйкес элементпен алмастырылады. Мысалы, (3, 1, 2) пермутациясы келесі функциямен сипатталады:

Жиынның барлық пермутацияларының жиынтығы жиынның симметриялық тобы деп аталатын топты құрайды. Топтық операция – функциялардың композициясы (біріншісінен кейін екіншісін орындау), нәтижесінде басқа функция (қайта орналасу) пайда болады. Пермутациялардың қасиеттері пермутацияланатын элементтердің табиғатына емес, олардың санына байланысты, сондықтан көбінесе стандартты жиын қарастырылады.

Элементарлық комбинаторикада k пермутация, немесе ішінара пермутация – жиыннан таңдалған k ерекше элементтердің реттелген орналасуы. k жиынның мөлшеріне тең болса, бұл алдыңғы мағынадағы пермутациялар болады.

Тарих

Гексаграмма деп аталатын пермутациялар Қытайда I Цзин (Пиньин: И Цзин) кітабында б.з.д. 1000 жылға дейін қолданылған. Грекияда Плутарх Халкедондық Ксенократтың (б.з.д. 396–314) грек тіліндегі мүмкін дыбыстардың санын тапқанын жазған. Бұл пермутациялар мен комбинациялар саласындағы қиын мәселені шешуге жасалған алғашқы әрекет болған деуге болады. Әл-Халил (717–786), араб математигі және шифрлеуші, «Шифрланған хабарлар кітабын» жазған. Онда пермутациялар мен комбинациялардың алғашқы қолданылуы бар, олар араб сөздерін дауыстылармен және дауыссыз сөздерін тізімдеуге мүмкіндік берген. n нысанның пермутация санын анықтау ережесі шамамен 1150 жылы Үндістан мәдениетінде белгілі болды. Үнді математигі Бхаскара II-нің «Лилавати» кітабында былай делінген: «Бірлікке арналған арифметикалық тізбектің көбейтіндісінің өнімі – нақты сандармен санның өзгеруі». 1677 жылы Фабиан Стетман қоңыраулардың алмасуындағы пермутациялар санын түсіндіргенде факторлықтарды сипаттаған. Екі қоңыраудан бастап: «Біріншіден, екеуін екі түрлі жолмен өзгертуге болады», деп көрсетіп, 1 2 және 2 1 мысалдарын келтірген. Содан кейін үш қоңырау үшін «үштен екі фигураны шығару үшін үш есе екі фигура қажет» екенін түсіндірген, оны да көрсеткен. Оның түсіндірмесінде «3-ті алып тастаса, 1.2 қалады; 2-ні алып тастаса, 1.3 қалады; 1-ді алып тастаса, 2.3 қалады» делінген. Одан кейін төрт қоңырауға көшіп, үштің төрт түрлі жиынтығы болатынын көрсететін алып тастау аргументін қайталайды. Бұл процеске рекурсивті сипаттама беріледі. Ол бес қоңыраумен «алып тастау» әдісін қолданады және нәтижесінде 120 комбинацияны кестелейді. Осы сәтте ол тоқталып, былай деп мәлімдейді: «Бұл әдістердің мәні мынада: бір санның өзгерістері кішірек сандардың барлық өзгерістерін қамтиды, сондықтан бір санның толық өзгерісі кішірек сандардың толық өзгерісінің бірігуінен тұрады». Стетман пермутацияларды қарастыруды кеңейтеді; ол алфавит әріптерінің және 20 жылқыдан тұратын тұрақтан пермутациялар санын қарастырады. Математикалық сұрақтардың көріне бермейтін бірінші жағдайы 1770 жыл шамасында болды, Джозеф Луи Лагранж полиномдық теңдеулерді зерттеу кезінде теңдеу түбірлерінің пермутацияларының қасиеттері оны шешу мүмкіндіктерімен байланысты екенін байқады. Бұл жұмыс Эварист Галуаның жұмысы арқылы Галуа теориясына әкелді, ол полиномдық теңдеулерді (бір белгісізі бар) радикалдармен шешуде мүмкін және мүмкін емес нәрселерді толық сипаттайды. Қазіргі заманғы математикада проблеманы түсіну үшін оған байланысты белгілі бір пермутацияларды зерттеуді қажет ететін көптеген ұқсас жағдайлар бар. Пермутациялар Екінші дүниежүзілік соғыс кезінде нацистік Германия қолданған шифрлеу құрылғысы – Энигма машинасының криптоанализінде маңызды рөл атқарды. Атап айтқанда, пермутациялардың маңызды қасиеті – екі пермутацияның дәл бір циклдік түрі болғанда ғана конъюгацияланатыны, криптолог Мариан Реевски 1932–1933 жылдары неміс Энигма шифрын бұзу үшін қолданды.

Анықтама

Математикалық мәтіндерде пермутацияларды грек әріптерінің кіші әріптерімен белгілеу қалыпты жағдай. Көбінесе, немесе қолданылады. Пермутация S жиынының өзіне биекция (кері өтетін бейнелеу, біріншілік және толық функция) ретінде анықталады: сәйкестік пермутациясы барлық элементтер үшін , және сандармен , , немесе бір 1 циклмен (x) белгіленеді. n элементі бар жиынның барлық пермутациялары жиыны симметриялық топты құрайды, мұндағы топ операциясы функциялардың қосылуы болып табылады. Осылайша, екі пермутация және топта олардың көбейтіндісі: Қосылу әдетте нүкте немесе басқа белгісіз жазылмайды. Жалпы, екі пермутацияның қосылуы коммутативті емес: жиынның өзіне биекция ретінде пермутация – жиынның қайта реттелуін орындайтын функция, ол белсенді пермутация немесе алмастыру деп аталады. Ескі көзқарас бойынша пермутация S жиынының барлық элементтерінің реттелген орналасуы немесе тізімі ретінде қарастырылады, ол пассивтік пермутация деп аталады (төменде қараңыз). Пермутация бір немесе бірнеше бірікпес циклдерге жіктеледі, олар жиын S-ке әсер ететін циклдік топтың орбиталары болып табылады. Цикл пермутацияны элементке қайта-қайта қолдану арқылы табылады: , мұнда k элементтен тұратын цикл k цикл деп аталады. (Төмендегі абзацтарды қараңыз.) Пермутацияның тұрақты нүктесі – өзіне өтетін x элементі, яғни , 1 цикл құрайды. Тұрақты нүктесі жоқ пермутация бұзылу деп аталады. Екі элементті ауыстыратын (бір 2 цикл) және қалғандарын өзгеріссіз қалдыратын пермутация транспозиция деп аталады.

Жазбалар

Пермутацияларды ыңғайлы түрде көрсету үшін бірнеше белгілер жиі қолданылады. Циклдік жазу танымал таңдау, себебі ол ықшам және пермутацияның құрылымын нақты көрсетеді. Егер басқаша көрсетілмесе, осы мақалада циклдік жазу қолданылады.

Пермутациялардың құрамы

Екі пермутацияның құрамын көрсетудің екі тәсілі бар. Көбінесе қолданылатын жазуда, функция кез келген элементті x-ке бейімдейді. Оң жақтанғы пермутация аргументке бірінші қолданылады, себебі аргумент функцияның оң жағына жазылады. Пермутацияларды көбейтудің тағы бір ережесі – аргументті функцияның сол жағына жазу, сонда сол жақтанғы пермутация бірінші әрекет етеді. Бұл жазуда пермутация көбінесе дәреже ретінде жазылады, сондықтан σ пермутациясы x-ке әсер еткенде xσ деп жазылады; содан кейін көбейтінді былай анықталады. Осы мақалада бірінші анықтама қолданылады, онда оң жақтанғы пермутация бірінші қолданылады. Функция құрамының амалы топ аксиомаларын қанағаттандырады. Ол ассоциативті, яғни , және екіден астам пермутациялардың көбейтінділері көбінесе жақшасыз жазылады. Композиция амалының да сәйкес элементі (сәйкес пермутация) және әрбір пермутацияның кері элементі (оның кері функциясы) бар, мұндағы .

Пермутация терминінің басқа қолданыстары

Пермутация ұғымы, әсіресе ескі әдебиеттерде, пермутация деп аталатын бірнеше кеңейтімдерді қамтиды.

Қайталаулы пермутация

S жиынтығының k элементтерінің реттелген орналасуы, қайталануға рұқсат етілген жағдайда, k-тупл деп аталады. Олар кейде қайталануы бар өрнектер деп те аталады, бірақ олар дәстүрлі мағынада өрнектер емес. Оларды S әрпіне қатысты сөздер деп те атайды. Егер S жиынында n элемент болса, S жиыны бойынша k-туплдардың саны:
Формальді тіл – белгілі бір ережелерге бағынатын сөздер жиыны.

Қасиеттері

n түрлі нысанның пермутация саны n! болады. k байланыссыз циклдары бар n пермутацияның саны – бірінші түрдегі белгісіз Стирлинг саны деп аталады, және немесе деп белгіленеді.

Циклдің түрі

n элементі бар жиынның пермутациясының циклдары (тұрақты нүктелерін қоса алғанда) сол жиынды бөледі; сондықтан осы циклдардың ұзындықтары n-нің бүтін санды бөлінісін құрайды, ол цикл түрі (немесе кейде цикл құрылымы немесе цикл пішіні) деп аталады. Цикл түрінде әр тұрақты нүкте үшін "1", әр алмастыру үшін "2" және т.б. болады. -ның цикл түрін [1^(1)2^(2)3^(1)] түрінде де жазуға болады. Нақтырақ айтқанда, жалпы түрі – , мұнда – тиісті ұзындықтағы циклдардың саны. Белгілі бір цикл түрінің пермутацияларының саны n элементі бар жиынның цикл түрлерінің санына тең, ол бөліс функциясының мәнімен анықталады. Пойа циклдық индекс полиномы – цикл түрі бойынша пермутацияларды санайтын генерациялық функция.

Конъюгациялық пермутация

Жалпы, циклдік жазуда жазылған пермутацияларды құрастырудың оңай сипатталатын ережесі жоқ – композицияның циклдары құрастырылып жатқан циклдардан өзгеше болуы мүмкін. Дегенмен, цикл түрі пермутацияны басқа пермутациямен конъюгациялаудың ерекше жағдайында сақталады, яғни көбейтіндіні құру арқылы. Мұнда, - бұл пермутациясының пермутациясымен конъюгаты, ал оның циклдік жазуын пермутациясының циклдік жазуын алып, оның әрбір элементіне пермутациясын қолдану арқылы алуға болады. Осыдан екі пермутацияның циклдік түрі бірдей болған жағдайда ғана олар конъюгат болатыны шығады.

Пермутация реті

Пермутацияның реті – бұл ең кіші оң бүтін сан m, осыған сәйкес ол циклдер ұзындықтарының ең кіші ортақ еселігі болады. Мысалы, пермутациясының реті 6-ға тең.

Матрицалық бейнелеу

Пермутациялық матрица – әр бағаны мен әр қатарында дәл бір 1 саны бар n × n матрица, ал қалған барлық элементтері 0-ге тең. {1, 2, …, n} жиынының пермутациясына пермутациялық матрицаны тағайындаудың бірнеше тәсілі бар. Бір табиғи тәсіл – стандартты базисті σ арқылы ауыстыратын сызықтық түрлендіруді анықтау және оның матрицасын табу. Яғни, матрицаның j-шы бағаны n × 1 өлшемді баған векторларына тең: оның (i, j) элементі i = σ(j) болса 1-ге, ал басқа жағдайда 0-ге тең болады. Сызықтық түрлендірулердің композициясы матрица көбейту арқылы сипатталғандықтан, бұл құрылым пермутациялардың композициясына сәйкес келеді: мысалы, бір қатарлы пермутациялардың көбейтіндісі болады, ал сәйкес матрицалар:

Әдебиетте кері конвенцияны кездестіру де жиі кездеседі, онда пермутация σ матрицамен байланыстырылады, оның (i, j) элементі j = σ(i) болса 1-ге, ал басқа жағдайда 0-ге тең болады. Бұл конвенцияда пермутациялық матрицалар пермутациялардан кері бағытта көбейтіледі, яғни . Осы сәйкестікте пермутациялық матрицалар стандартты қатар векторларының оң жағынан әрекет етеді: оң жақтағы Кейли кестесі 3 элементтің пермутациялары үшін осы матрицаларды көрсетеді.

Толық реттелген жиынтықтардың пермутациялары

Кейбір қолданбаларда, пермутацияланатын жиынның элементтері бір-бірімен салыстырылады. Бұл S жиынының толық реттелуін қажет етеді, яғни кез келген екі элементті салыстыру мүмкін болуы керек. Әдеттегі ≤ қатынасымен берілген {1, 2, ..., n} жиыны осы қолданбаларда ең көп қолданылатын жиын болып табылады. Пермутацияның бірқатар қасиеттері S жиынының толық ретіне тікелей байланысты, пермутация біржолды нотацияда тізбек ретінде жазылғанда ескеріледі.

Көтерілу, түсу, жүгіру, асып өту, рекордтар

Пермутация σ(n)-ның көтерілісі – келесі мәні ағымдағы мәннен үлкен болатын i < n кез келген позиция. Яғни, егер i көтеріліс болса, онда . Мысалы, 3452167 пермутациясының көтерілістері (позициялар бойынша) 1, 2, 5 және 6 болады. Сол сияқты, төмендеу – i < n , яғни әр i – бұл көтеріліс немесе төмендеу. Пермутацияның өсу кезегі – екі жағынан да кеңейтілмейтін, бос емес, өсуге қарай тізбектелген кезең; ол бір-бірінен кейін келетін көтерілістердің ең үлкен тізбегіне сәйкес келеді (соңғысы бос болуы мүмкін: екі бір-бірінен кейін келетін төмендеудің арасында әлі де ұзындығы 1-ге тең өсу кезегі болады). Керісінше, пермутацияның өсу тізбегі міндетті түрде тізбектелген болуы керек емес: ол бір жолды жазудың кейбір мәндерін жою арқылы алынған өсу тізбегі. Мысалы, 2453167 пермутациясының өсу кезегі 245, 3 және 167, ал оның өсу тізбегі 2367. Егер пермутацияда k - 1 төмендеу болса, онда ол k өсу кезегінің бірі болуы керек. n санының k көтерілісі бар пермутацияларының саны (анықтама бойынша) Эйлер саны болып табылады; бұл сонымен қатар n санының k төмендеуі бар пермутацияларының саны. Кейбір авторлар Эйлер санын k өсу кезегі бар пермутациялардың саны ретінде анықтайды, бұл k - 1 төмендеуге сәйкес келеді. σ1σ2 σn пермутациясының асып кетуі – σj > j шартын қанағаттандыратын j индексі. Егер теңсіздік қатаң болмаса (яғни σj ≥ j), онда j әлсіз асып кету деп аталады. k асып кетуі бар n пермутациясының саны k төмендеуі бар n пермутациясының санымен сәйкес келеді. Пермутация σ-ның рекордтық немесе солдан оңға қарайғы максималды элементі – барлық j < i үшін σ(j) < σ(i) шартын қанағаттандыратын i элементі.

Пермутацияларды құру алгоритмдері

Есептеуде берілген мәндер тізбегінің пермутацияларын жасау қажет болуы мүмкін. Мұны істеуге ең қолайлы әдістер, қолданушы кездейсоқ таңдалған пермутацияларды немесе барлық пермутацияларды қалап, соңғы жағдайда нақты реттелуді қажет ететініне байланысты болады. Тағы бір мәселе – берілген тізбектегі элементтердің тең болу мүмкіндігі ескеріле ме? Егер солай болса, тек тізбектің әртүрлі көп жиынтық пермутацияларын ғана жасау керек. n санының пермутацияларын жасаудың қарапайым жолы – Лемер кодының мәндерін жасау (мысалы, n! дейінгі бүтін сандарды факториалдық сандық жүйеде көрсету арқылы) және оларды сәйкес пермутацияларға түрлендіру. Алайда, соңғы қадам, қарапайым болғанымен, тиімді жүзеге асыру қиын, себебі ол кездейсоқ орында тізбектен элемент таңдау және жою операцияларын n рет қажет етеді. Тізбекті массив немесе байланысты тізім түрінде көрсеткеннің екеуі де (әр түрлі себептермен) түрлендіруді орындау үшін шамамен n²/4 операция қажет етеді. n саны салыстырмалы түрде кішкентай болса (әсіресе барлық пермутацияларды жасау қажет болғанда), бұл үлкен мәселе емес, бірақ кездейсоқ және жүйелі түрде жасау үшін одан жақсы нәтиже беретін қарапайым баламалар бар екені анықталды. Осы себепті, Лемер кодынан пермутацияға O(n log n) уақытында түрлендіруді жүзеге асыруға мүмкіндік беретін арнайы дерек құрылымын қолдану пайдалы көрінбейді, бірақ мұндай мүмкіндік бар.

Қолданбалар

Пермутациялар қателерді анықтау және түзету алгоритмдерінің аралықтап қосу компонентінде қолданылады, мысалы, турбо кодтарда. 3GPP Long Term Evolution ұялы телекоммуникация стандарты да осы идеяларды пайдаланады (3GPP техникалық ерекшелігі 36.212-ге қараңыз). Мұндай қолданыстар белгілі бір қажетті қасиеттерге ие пермутацияларды жылдам жасау мәселесін тудырады. Бір әдіс пермутациялық полиномдарға негізделген. Сондай-ақ, бірегей пермутациялық хэштеудегі оңтайлы хэштеудің негізі ретінде де қолданылады.