Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Genetik Algoritma sorunum


Öne çıkan mesajlar

Mesaj tarihi:
Selam arkadaşlar, genetik algoritmayla çözmem gereken bir soru var. Algoritmayı soruya uyarlamakta sıkıntı çektim, çok üzdü beni, fikri olan var mı acaba?

Soru şu:
Elimizde erkeklerden oluşan bir collection ve kadınlardan oluşan bir collection var, bunları çift yapıcaz, evlenecekler fakat birbirine en çok benzeyenleri çiftleştiricez.

Düşündüklerim:
Şimdi her bir erkeğin ve kadının fitness fonksiyonundan gelen bir değeri olacak, ona göre benzeyip benzemediğine karar vereceğim, mutasyon, crossover fonksiyonlarım hazır fakat..

Sorunum:
Şimdi diyelim ki elimizde 5 erkek var, soru genetic algoritma ile çözülsün dendiğinden, ben yeni generasyonlar yaratacağım. crossover ve mutasyonlarla yeni bireyler yarattım diyelim, artık elimde 50 erkek var, kadınlar listesinin birinci itemi, Adriana Lima'ya en çok benzeyen erkek, yeni yarattığım nesillerden birinde. Yani initial erkek koleksiyonunda değil. Eeee, olmayan bir bireyle nasıl çift yaparım ki ben, yarattığım yeni erkek, farazi bir erkek değil mi? Soru aslında hiç te genetic algoritmaya uyacak bir şeye benzemiyor gibi geliyor.

Nasıl uyarlanır acaba, ne düşünüyorsunuz saygıdeğer patiler?
Mesaj tarihi:
bu soru genetik algoritmayla boyle cozulmez ki. genetik algoritmada cozmen gereken soru soyle birsey olabilir:

elimde bir grup erkek ve kadin var. ben bunlari ciftlestire ciftlestire en sonunda en ideal insan ciftini bulacagim.

yani sen soyle yapabilirsin,

5 erkek i aldin, 5 kadinla ciftlestirdin, crossoverlar mutasyonlar yaptin, x tane yeni jenerasyon olusturdun, x/2 erkek x/2 kadin oldu mesela. burada degisik genetik algoritmalarda degisik cozumler var. anneleri cope atabilirsin. ya da oedipus ve electra komplekslerine izin verebilirsin, cocuklar anneleriyle babalariyla rahat rahat sevisirler, karismazsin. gerci ramazan gunu.. tovbe..

p.s. senin sorun aslinda matchmaking problem. meta heuristics for matchmaking problem diye arat, fikir verir.
Mesaj tarihi:
İşte banada genetic gelmiyor hiç, ufak bir heuristic ile çözülebilir ama arkadaşımın hocası ödevde N erkek var N kadın var, birbirlerine en iyi uyan çiftler bulunmak isteniyor yazmış, genetic algoritma kullanılması gerek yazmış. Initial collectiondaki insanlardan eşleştirecek diye düşündüm ama mantıklı da gelmiyor hiç, hocaya mail attirttim ama yinede farklı bir gözün bakmasında fayda var
Mesaj tarihi:
Niye hep daha sonrakini düşünüyorsunuz ki?

senin chromosome'un nedir? toplamda 5E 5K var değil mi?
random dağıt bunları. Erkekler a,b,c,d,e olsun. Kadınlar da A,B,C,D,E olsun.

aCbDcEdAeB

De ki her erkek kendinden sonra gelen kadınla eşleşti.

Sana sorulan soru a ile ABCDE'den hangisinin eşleşmesi daha mantıklı. b ile ABCDE'den hangisinin eşleşmesi daha mantıklı.

bunun gibi 16 tane random chromosome yarat.
Sonra her çiftin fitness function çıktılarını al.
Sonra crossover yap. Yalnız burada crossover'ı nasıl belirledin bilmiyorum ama çok sakat bir durum var. Buraya biraz kafa yor. Diyelim 1-point-xover oldu. index'in 5

aCbDcEdAeB
aDbBcAdCeE
=
aCbDcAdCeE

C'yi iki defa kullanmış oldun. İşler karışır. Bu nedenle biraz daha mantıklı bir crossover yöntemi oluşturman lazım.

Mutasyonun belli az çok. aCbDcEdAeB var. D mutasyona uğradı, E oldu. Gidip E'nin olduğu yere D yazarsın biter.
Mesaj tarihi:
Aslında fitness function nasıl buna göre crossover'ı dert etmeyebilirsin bile.
Yani eğer fonksiyonda
a ile A eşleştiyse 1 yoksa 0
b ile B eşleştiyse 1 yoksa 0
vs.
şeklinde ilerliyorsa, crossover'ı rahat bırak. Aynı kadınla birden fazla erkek eşleşmiş olsun crossover'da farketmez. Sonuçta maksimumu bulduğunda 5 puan edenler kalır.
Mesaj tarihi:
çok teşekkür ettim, farklı bir açıdan bakabiliyorum şuan. crossover şartı koşmamış, mutation rate vermiş sadece aslında, crossover yapmasam da olur gibi.

anlattıklarını düşünüp geliştirmeye çalışacağım, teşekkür ettim yeniden :)
Mesaj tarihi:
Crossover yapmazsan olmaz ki... Sadece mutasyonla bu iş yürümez. Zaten mutasyon iyi bir şey değildir yani pozitif bir şey değildir. Sadece her şeyin durduğu noktada çeşitliliği tetiklemesi için var. Curse kısmı ise maksimum fitness'a ulaşabilecek bir yapıyı bozabilir. Crossover'sa bireylerin gelişmesini sağlar daima. Düşünelim biraz...

Her bir adımda rand(0,1) yaparak hangisinden alacağımızı belirliyoruz.

aEbBcCdDeA
aDbCcAdBeE
..........
aEbCcCdDeE

E ve C iki erkekle eşleşti. Diyorum ki eğer senin 5 genin olup da 32 kromozom yaratırsan, bu yeterince çeşitlilik demek. İllaki bir yerde bunlar düzene girerler. Çünkü fitness'ın buna yönlendiriyor zaten.
Bir kadına birden fazla erkek düştüğünde bunların fitness'ı illaki maksimum 4 olur. Öbür taraftan bazılarının 5 olacaktır. Fitness'ın değerini büyütmek lazım. O zaman seçilme ihtimalini fitness^2 olarak ayarla. Yetmiyorsa fitness^4 yap. Böylece sivrilirler.
Bir noktada doğrudan 4'e takılabilirsin. Burada seni mutasyonun kurtarmasına güvenme. Population'ı 64'e falan çıkar. İllaki çözülür.
Mesaj tarihi:
teşekkürler riglous.
Bitti sayılır nerdeyse. Crossover işlemini iptal ettim, olduğu kadar artık ehehe, soruda da yazılmamış. Mutasyonlarla idare ediyoruz, raporlama falan da yapıyor, tamamdır.

Bi heuristicimi geliştirmem lazım suan random benzerlik atıyor, eskiden yazdığımı değiştirdim yeni yazmam lazım eheh.

Teşekkürler.
×
×
  • Yeni Oluştur...