Genetik algoritm nima?
probs = np.exp(-beta*xarajatlar)
Download 0.76 Mb.
|
Genetik algoritm nima (1)
- Bu sahifa navigatsiya:
- Yagona krossover
probs = np.exp(-beta*xarajatlar)
3. Krossover Endi biz ikkita ota-onamizni naslchilik uchun oldik, keyingi qadam krossover/juftlash/ko'paytirishni amalga oshirishdir. Krossover deganda ota-ona xromosomalarining ma'lum genlari bir-birining ustiga qo'yilgan yoki aralashgan yoki yangi nasl berish uchun almashtirilgan jarayonni anglatadi. Nasl ota-ona xromosomalarining kesishishi natijasi bo'lganligi sababli, u ikkala ota-onaning xususiyatlarini ham meros qilib oladi. Krossoverni amalga oshirishning uchta usuli mavjud. Yagona nuqtali krossover : Ushbu usulda ikkala ota-ona xromosomalari bir xil tasodifiy nuqtada kesiladi va qolgan qismlar ikkita yangi nasl xromosomalarini hosil qilish uchun almashtiriladi. Sariq rangli genlar xromosomaning kesilgan qismini ifodalaydi. 5-rasm: Bir nuqtali krossover. Ikki nuqtali krossover : Bir nuqtali krossoverga o'xshash usul, ammo yagona farq shundaki, ota-ona xromosomalari ikkita tasodifiy nuqtada kesiladi. Shunga qaramay, xromosomaning sariq rangli kesilgan qismi almashtiriladi. 6-rasm: Ikki nuqtali krossover. Yagona krossover : Biz birinchi navbatda ota-ona xromosomalaridan qaysi genlar meros bo'lishi kerakligini tasodifiy tanlaymiz va meros bo'lmagan genlar sariq rangda belgilangan. Keyin, biz ularni yashil rangda yozilgan 0 va 1 lar sifatida modellashtiramiz. Meros olinadigan gen 1, meros bo'lmasligi kerak bo'lgan gen esa 0 sifatida kodlangan. Bu 0 va 1 qatori bundan buyon alfa deb ataladi. Gen qiymatini ikkala ota-ona uchun mos keladigan alfa qiymati bilan ko'paytiring va keyin nasl xromosomasining bitta genini yaratish uchun natijalarni qo'shing. Keling, har bir ota-ona xromosomasining birinchi genini ko'rib chiqaylik. Ota-1 uchun gen qiymati 1, mos keladigan alfa qiymati ham 1; demak, 1x1=1 . Ota-2 uchun gen qiymati 0 ga teng va mos keladigan alfa qiymati ham 0 ga teng,0x0=0 . Nasl xromosomasining birinchi geni 1+0=1 va shunga o'xshash - shu tarzda biz nasl-1ni olamiz, nasl-2ni ko'paytirish uchun biz alfa ning kompliment qiymatlarini olamiz va xuddi shu jarayonni amalga oshiramiz. 7-rasm: Yagona krossover. Dasturiy ravishda biz ikkala ota-onani bola o'zgaruvchisiga ko'chiramiz: c1, c2. Tasodifiy ravishda 0 va 1 oralig'ida bir xil taqsimlangan alfa qiymatlarini yarating, bu ota-ona xromosomasining shakli ( pozitsiyasi ). Jarayonning qolgan qismi bir xil bo'lib qoladi, faqat nazariy jihatdan biz nasl-2 hosil qilish uchun alfa qiymatlarining to'ldiruvchisini olamiz, dasturda esa alfa bilan ko'paytirganda ota-onalarni almashtiramiz, bu to'ldiruvchini olish bilan bir xil. alfa qiymatlari. def crossover(p1, p2): c1 = copy.deepcopy(p1) c2 = copy.deepcopy(p2) alfa = np.random.uniform(0, 1, *(c1['pozitsiya'].shakl)) c1['pozitsiya'] = alfa* p1 ['pozitsiya'] + (1-alfa)* p2 ['pozitsiya '] c2['pozitsiya'] = alfa* p2 ['pozitsiya'] + (1-alfa)* p1 ['pozitsiya'] c1, c2ni qaytaring Download 0.76 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling