Genetik algoritmlar



Yüklə 0,75 Mb.
səhifə3/6
tarix17.10.2023
ölçüsü0,75 Mb.
#130547
1   2   3   4   5   6
GENETIK ALGORITMLAR.

1. Initializatsiya
Algoritm odatda tasodifiy yaratilgan populyatsiyadan boshlanadi. Aholi soni muammoning tabiatiga bog'liq. Biz 0 va 1 kodlashdan foydalanishimiz mumkin. Biroq, ushbu qo'llanmada biz har bir genni ifodalash uchun bir xil taqsimlangan raqamlardan foydalanamiz.

# Har bir alohida


populyatsiya uchun to'ldiruvchi = {}# populyatsiya hajmi
npop = 20
# pastki chegara
varmin = -10
# yuqori chegara
varmax = 10
# xarajat funktsiyasi
costfunc = shar# har bir inidivdualning pozitsiyasi (xromosomalari) va
diapazondagi i uchun narxi (npop):
populyatsiya[i] = {'joylashuv': Yo'q, 'xarajat': Yo'q}diapazondagi i uchun(npop):
populyatsiya[i]['position'] = np.random.uniform(varmin, varmax, num_var)
populyatsiya[i]['cost'] = costfunc(population[i]['position' ])

Biz populyatsiyani saqlash uchun lug'at yaratamiz va har bir shaxs xromosomalar ( pozitsiya ) va narx bilan bog'liq . Pozitsiya pastki chegarasi -10 va yuqori chegarasi +10 bo'lgan tasodifiy yaratilgan bir xil taqsimlangan raqamlar (genlar) bilan to'ldiriladi. Xarajat - bu biz optimallashtirishga harakat qilayotgan xarajat funktsiyasi. Ushbu qo'llanmada biz x kvadratlarining yig'indisini optimallashtiramiz , bu erda x har bir xromosomaning individual genidir.


2. Ota-onalar tanlovi
Har bir keyingi avlod davomida yangi avlodni ko'paytirish uchun mavjud populyatsiyaning bir qismi tanlanadi. Individual yechimlar fitnesga asoslangan jarayon orqali tanlanadi [ 2 ]. Biz 0-avlodda bo'lganimiz sababli, bizda nasl yo'q. Biz ota-onalarni tasodifiy yaratilgan populyatsiyamizdan tanlaymiz. Eng mos shaxslarni aniqlash va naslchilik uchun tanlashning uchta asosiy usuli mavjud.
Tasodifiy tanlov : Bu ota-onalarni tanlashning eng oddiy va samarasiz usuli. Ushbu usulda biz populyatsiyani almashtirish orqali aralashtiramiz va naslchilik uchun ota-ona sifatida birinchi ikkita shaxsni tanlaymiz. Bu usul tavsiya etilmaydi, chunki u "Darvinning tabiiy tanlanish yo'li bilan evolyutsiya nazariyasiga" amal qilmaydi, bunda odamlar tasodifiy emas, balki jismoniy holatiga qarab tanlanadi.
q = np.random.permutation(npop)
p1 = populyatsiya[q[0]]
p2 = aholi[q[1]]

Yüklə 0,75 Mb.

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




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin