Shuningdek, u quyidagilarni tasdiqlaydi: delta parametri 0,5 dan kam yoki teng bo‘lmasligi kerak, chunki bu noto‘g‘ri natijalarga olib keladi.
DES uchun genetik algoritmni amalga oshirishni sinovdan o‘tkazish Dastlabki populyatsiyalarning shakllanishi.
Dastlabki populyatsiya tasodifiy ravishda yaratilgan kalitlar bilan to‘ldiriladi.
Population: 0
1011101x0011010x1011001x1111001x0110010x1010000x1110111x1100000x
Population:1
0101101x1010010x0011000x0000100x0110111x1001110x1111111x0101101x
Population:2
0101010x0111110x0111001x0010000x1101110x0011000x0000011x0100100x
Population:3
1000100x1101111x1010001x0111110x0100101x0011001x0000100x1111010x
Dastlabki populyatsiyaning fitnes funktsiyasining qiymatlarini (1) formula bo‘yicha aniqlash mumkin (6-jadvalda ko‘rsatilgan).
6-jadval
Populyatsiya
Sinovdagi mos bitlar soni va asl shifrlangan matnlar (umumiy bitlardan)
Fitness funktsiyasi
Population: 0
50(64)
0.781250
Population: 1
55(64)
0.859375
Population: 2
49(64)
0.765625
Population: 3
42(64)
0.656250
Dastlabki aholi uchun eng yaxshi kalitni aniqlash.
Dastlabki populyatsiyalarni shakllantirish natijalariga ko‘ra Populyatsiya: 1 eng yaxshi fitness funktsiyasining 0,859375 qiymatiga ega. Population: 1-da yaratilgan kalit eng yaxshi kalit sifatida qayd etiladi. Aholini fitness funktsiyasi qiymati bo‘yicha saralash 7-jadvalda berilgan.
7-jadval
0101101x1010010x0011000x0000100x0110111x1001110x1111111x0101101x
Population: 1
1011101x0011010x1011001x1111001x0110010x1010000x1110111x1100000x
Population: 2
0101010x0111110x0111001x0010000x1101110x0011000x0000011x0100100x
Population: 3
1000100x1101111x1010001x0111110x0100101x0011001x0000100x1111010x
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.781250 fitness funktsiyasi qiymati bo‘lgan shaxs 1 ota-ona sifatida tanlandi. Xuddi shu tarzda keyingi ota-ona tanlandi. Fitness qiymati 0.765625 ga teng bo‘lgan ham tanlanadi.
Parents: 0, 2
Population: 0
1011101x0011010x1011001x1111001x0110010x1010000x1110111x1100000x
Population: 2
0101010x0111110x0111001x0010000x1101110x0011000x0000011x0100100x
"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 46 bit bilan ko‘rsatilgan. 0 dan 42 bitgacha bo‘lgan ma'lumotlar Population: 1 ota-onadan olinadi:
Ota-onalarning avlodlari: 1, 2:
1011101x0011010x1011001x1111001x0110010x1010000x1000011x0100100x
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
1011101x0011010x1011001x1111001x0110010x1010000x1000011x0100100x
Mutatsiyadan keyin
1011101x0011011x1011001x1111001x0110010x1010000x1000011x0100100x
Olingan avlodlarning fitnes funktsiyasi qiymatlarini aniqlash.
Birinchi avlod natijalariga ko‘ra 0,812500 ta boshlang‘ich populyatsiyaning fitness funktsiyasi qiymati eng yaxshi bo‘lib qoldi (8-jadval). Eng yaxshi kalit - bu ota-onalarning avlodlari: 0, 1
0101101x1010010x0011000x0000100x0110111x1001110x0111111x0100000x
8-jadval
Keyingi avlod uchun fitnes funktsiyasi
Aholi
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: