Soru sorif fonksiyonunu else olmadan yazmak
veli batmaz tarafından 3 yıl önce soruldu

merhaba if komutuyla gerçekleşmesini istemediğim bir durum var bir minimizasyon problemi çözüyorum genetik algoritma kodları ile. yukarıdaki koddan da anlaşılacağı üzere basıncın min ve max değerleri arasında kalmasını istiyorum ancak algoritmayı çalıştırınca basınç değeri sürekli sadece bir i değerinde Pmin den daha küçük oluyor sebebini bir türlü bulamadım. yazdığım kodda sıkıntı var mı başka nasıl yapabilirim.

7 Cevap
En iyi cevap
sayginer Yönetici tarafından 3 yıl önce cevaplandı

Sanırım istediğiniz aralığın dışındaysa çok büyük bir sayıyla toplayarak bir nevi ceza uygulamış oluyorsunuz. Eklediğiniz bu cevaları yakınsama grafiğinde gözlemliyor musunuz?
 

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Görünürde çalışıyor gibi gözüküyor ancak değişkenlerinizin değerlerini bilemediğimiz için bir şey söylemek çok güç. Size tavsiyem, eğer tek şüpheniz yukarıdaki fonksiyon ile ilgiliyse GA ile çalıştırmadan önce ayrı değerlendirin.
Ek olarak çalıştırdığınız optimizasyon algoritmasının da çalışıp çalışmadığına göre yakınsama grafiğinden kontrol etmenizi tavsiye ederim.

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Ek olarak,
Sanırım istediğiniz aralığın dışındaysa çok büyük bir sayıyla toplayarak bir nevi ceza uygulamış oluyorsunuz. Eklediğiniz bu cevaları yakınsama grafiğinde gözlemliyor musunuz?

veli batmaz tarafından 3 yıl önce cevaplandı

Aynen maliyete yüksek bir ceza maliyeti ekleyip o pozisyonun seçilmesini engellemek istiyorum fakat bu ceza maliyetine rağmen istediğim aralığın altına iniyor.

veli batmaz tarafından 3 yıl önce cevaplandı

Bu yapmak istediğimi if komutundan başka bir komutla yada formatla yapabilirmiyiz

veli batmaz tarafından 3 yıl önce cevaplandı

Evet maliyetin belli bir noktaya kadar minimize olduğunu grafikten gözlemliyorum. Fakat bu kısıtı aşmasını istemiyorum kısıtı aşıyor olması gerekenden daha minimum bir değer aliyor

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Bu kisitinizi amac fonksiyonu icerisinde ifade etmeyi deneyebilirsiniz belki ama bunu matematiksel olarak dusunmek gerek. Literature bakmak faydali olabilir. Buna ek olarak GA icerisinde kisitlari tanimlamayi deneyebilirsiniz. Detaylar icin:
https://it.mathworks.com/help/gads/constrained-minimization-using-ga.html