AES uchun genetik algoritmni amalga oshirishni sinovdan o‘tkazish Dastlabki populyatsiyalarning shakllanishi.
Dastlab shakllangan populyatsiya tasodifiy usulda kalitlar bilan to‘ldiriladi.
Population: 0
01111101001101001100000010011000001101001010001001100011110101001111001101011011011100110111110010011110010011110001101000100011
Population: 1
11101101011111111011111000110010101100111101110101111110011001011001101010001011011001101100010001001000111010100101111000001011
Population: 2
11000001101111100101011100001101010000110000110111011011100010010101000101010101000010110010000000111001000101000001001111001010
Population: 3
01100100101000100000010111001111000000000111100010011001010110101111011100000000101111101000000011101010111011110100101101011011 Dastlabki populyatsiyaning fitnes funktsiyasining qiymatlarini (1) formula bo‘yicha aniqlash mumkin (2-jadvalda ko‘rsatilgan)
Fitness = SumEqual / BlockLength (1)
Dastlabki aholi uchun fitness qiymati
2-jadval
Populyatsiya
Sinovdagi mos bitlar soni va asl shifrlangan matnlar (umumiy bitlardan)
Fitness funktsiyasi
Population: 0
56(128)
0.437500
Population: 1
64(128)
0.500000
Population: 2
60(128)
0.468750
Population: 3
65(128)
0.507812
Dastlabki aholi uchun eng yaxshi kalitni aniqlash
Dastlabki populyatsiyalarni shakllantirish natijalariga ko‘ra Population: 3 eng yaxshi fitness funktsiyasining 0,507812 qiymatiga ega. Population: 3 da yaratilgan kalit eng yaxshi kalit (Best key) sifatida qayd etiladi.
Keyin populyatsiya fitness funktsiyasi qiymati bo‘yicha saralanadi
3-jadval
Population: 0 01100100101000100000010111001111000000000111100010011001010110101111011100000000101111101000000011101010111011110100101101011011 Population: 1 11101101011111111011111000110010101100111101110101111110011001011001101010001011011001101100010001001000111010100101111000001011 Population: 2 11000001101111100101011100001101010000110000110111011011100010010101000101010101000010110010000000111001000101000001001111001010 Population: 3 01111101001101001100000010011000001101001010001001100011110101001111001101011011011100110111110010011110010011110001101000100011 Avlodni shakllantirish uchun "ota-onalar" ni tanlash.
Ikki kishi tasodifiy tanlanadi. Ularning fitness funktsiyalari qiymatlari taqqoslanadi va tanlangan ikkitadan birinchi ota-ona sifatida eng yaxshi fitness funktsiyasi qiymatiga ega bo‘lgan shaxs tanlanadi.
Keyin ikkinchi ota-ona xuddi shu tarzda tanlanadi.
0.507812 fitness funktsiyasi qiymati bo‘lgan shaxs 1 ota-ona sifatida tanlandi. Xuddi shu tarzda keyingi ota-ona tanlandi. Fitness qiymati 0.468750.
Parents: 0, 2 Population: 0 01100100101000100000010111001111000000000111100010011001010110101111011100000000101111101000000011101010111011110100101101011011 Population: 2 11000001101111100101011100001101010000110000110111011011100010010101000101010101000010110010000000111001000101000001001111001010 "Avlod" ning shakllanishi.
Keyin u kalitni tasodifiy bir nuqtaga bo‘lish orqali hosil bo‘ladi.
Bunday holda, yuqorida aytib o‘tilganidek, avlodlardan qaysi biri olinishini tanlash uchun qaysi ota-ona asosiy bo‘lishini tanlashingiz kerak. Qaysidir biri tasodifiy ravishda aniqlanadi.
Sinov holatida bo‘linish nuqtasi 18 bit bilan ko‘rsatilgan. 0 dan 18 bitgacha bo‘lgan ma'lumotlar Populyatsiyaning ota-onasidan olingan:
Ota-onalarning avlodlari: 0, 2:
01100100101000100001011100001101010000110000110111011011100010010101000101010101000010110010000000111001000101000001001111001010 Tasodifiy genlarning mutatsiyasi.
Mutatsiya jarayonida bitlarning tasodifiy tanlovi ham amalga oshiriladi, bu algoritm parametri sifatida ko‘rsatilgan mutatsiya_rat ehtimolini hisobga olgan holda teskari bo‘ladi va tasodifiy son hosil qiladi:
Tasodifiylik yoki ma'lum bir yo‘lni bosib o‘tish uchun chumolini tanlash huquqi 0 dan RAND MAX (2147483647) gacha bo‘lgan tasodifiy sonni hosil qilish va (int) (mutation_rate RAND_MAX) bilan taqqoslash orqali ta'minlanadi. Agar tasodifiy son bu qiymatdan kamroq olinsa, u holda bit teskari bo‘ladi. Mutatsiya _rati 0,02 bo‘lsa, o‘rtacha ikki bit o‘zgarishini bildiradi.
Ota-onalarning avlodlari: 0, 2:
Mutatsiyadan oldin
01100100101000100001011100001101010000110000110111011011100010010101000101010101000010110010000000111001000101000001001111001010 Mutatsiyadan so‘ng
01100100100000100001011100001101010000110000110111011011100010010101000101011101000010110010000000111001000101000001001111001010 Olingan avlodlarning fitnes funktsiyasi qiymatlarini aniqlash.
Birinchi avlod natijalariga ko‘ra, 0,539062 kishining boshlang‘ich populyatsiyasining fitness funktsiyasi qiymati eng yaxshi bo‘lib qoldi (4-jadval). Eng yaxshi kalit - bu ota-onalarning avlodlari: 0, 1
11101101011111111010010111001111010000000111100010011001010110101111011100000100111111101100001011101010111011110100101101011011
Sinov va asl nusxada mos keladigan bitlar soni
Shifrlanganmatnlar (barcha bitlardan)
Fitness-funktsiyasi
parents: 0, 2
67(128)
0.523438
parents: 0, 1
69(128)
0.539062
Keyingi avlod populyatsiyasining shakllanishi.
Berilgan parametrlar bilan avlodlar, shuningdek, eng yaxshi fitness funktsiyasi ko‘rsatkichlariga ega bo‘lgan hozirgi avlodning ikki vakili keyingi avlodga o‘tishlari kerak.
Kutilgan natijalar sinov paytida olingan natijalar bilan mos keladi.
7. Delta parametriga erishish sharti bilan bitlarni tuzish.
Sinov maqsadi: delta parametriga erishilganda kalitdagi bitlar topilganidek aniqlanganligiga ishonch hosil qilish.
Bit belgilanadigan, kirish sifatida berilgan va sinov uchun yopilganligini aniqlash uchun delta parametri 0,6 ga teng. Bitlar oxirgi populyatsiyadagi barcha shaxslarning natijalariga qarab belgilanadi.
Algoritmning ishlashi natijasida 4 ta kalit qo‘lga kiritildi: