Genetik algoritm nima?


probs = np.exp(-beta*xarajatlar)



Yüklə 0,76 Mb.
səhifə4/6
tarix03.04.2023
ölçüsü0,76 Mb.
#104159
1   2   3   4   5   6
Genetik algoritm nima

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


Yüklə 0,76 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə