Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
1) Hikaye anlatıcısı mı? Hmm, ne yazık ki mizahı anlayamadım. Veritabanı kontrolü, GetFitness(historyHromosomes)'dan çağrılan CheckHistoryChromosomes(chromos,historyHromosomes ) işlevinde gerçekleşir. Bu yüzden doğru söyledim - FF'nin tekrarlanan çalıştırmaları yok.
2) Veritabanı ile mutabakat genlere göre kontrol ile gerçekleşir. Ve yeni bir kromozom ortaya çıktığında her gen SelectInDiscreteSpace(temp,RangeMinimum,RangeMaximum,Precision,3) ile normalize edilir. Yani burada da "peri masalı" yok.
3) Bkz. 2)
1,2,3) Anladım. Neredeyse. Normalleştirme gerçekten var. Ancak yine de eşitlik için gerçek sayıları "boşluksuz" karşılaştırmak için bir neden yok. :)
SelectInDiscreteSpace() biraz yeniden çalışıldı. Step'i dahili olarak düzeltiyor olmanız hoşuma gitmedi. Bir kullanıcıyı düzeltmek kraliyet meselesi değildir. En azından bu sefer değil.
Kullanıcı, Step'i gen değişiklikleri aralığına göre "mantıksız" hale getirmek için makul düşüncelere sahip olabilir.
Şöyle oldu:
SelectInDiscreteSpace() biraz değiştirildi. İçerideki Step'i düzeltmeniz hoşuma gitmedi. Bir kullanıcıyı düzeltmek kralın işi değildir. En azından bu sefer değil.
Kullanıcı, Step'i gen değişiklikleri aralığına göre "mantıksız" hale getirmek için makul düşüncelere sahip olabilir.
Şunu anlayın:
Mesele şu ki, adım, alanı tam sayı olmayan sayıda bölüme ayıracak şekilde olabilir ve bu iyi değildir, çünkü hemen sayısal satırdaki değeri giriş sayısının hangi tarafından "yakalayacağı" sorusu ortaya çıkar (neyin "sağ", sağ veya sol olduğu bilinmemektedir) - benim algoritmam yeterli bir cevap verir, ancak sizinki ne yazık ki. Bu yüzden bu şekilde yapmanız gerekiyor:
step = (InMax - InMin) / MathCeil ( (InMax - InMin) / step );İşte sizin kodunuzun ve benim kodumun sonuçlarına ilişkin bazı karşılaştırmalı örnekler:
Bu tür normalleştirmenin anlamı NormalizeDouble ()'dan farklıdır, ancak bundan hoşlanmayan, SelectInDiscreteSpace()'de olduğu gibi belirli bir adımla değil, gerekli işarete normalleştirmeyi kullanabilir.
Her şey açık, tıpkı önceki gönderide olduğu gibi.
Andrei, listelenen tüm varyantlar burada var olma hakkına sahiptir. Elbette sizinki de. Optimizasyon sırasında yüzen, değişen ayrıklık yakın ilgiyi hak etmektedir.
--
Genel olarak her şey hakkında :
Ayarlar, genetik operatörler kütüphanesi vb. eklemelisiniz ve uygun uzantılar ve kullanım hakkında önceden düşünmelisiniz.
Nesneler üzerinde her şeyi yeniden yazmayı, hem program hem de kullanıcı için daha güçlü bir arayüz yapmayı düşünüyorum (grafiksel, sekmelerde birçok ayar ile). Bazı şeyler eklenecek, bazı şeyler birlikte optimize edilecek.
Daha doğrusu, hala kodunuzu temel alıp almayacağımı (parçaları kullanıp kullanmayacağımı) veya her şeyi baştan yazıp yazmayacağımı düşünüyorum.
Eğer katılmak istiyorsanız, özelden yazın.
Yayınlayacağımdan emin değilim. Göreceğiz. Şimdilik bunu kendim için yapmak istiyorum.
Genel olarak her şey hakkında :
1) İyi bir şekilde - özelleştirmeler, genetik operatörler kütüphanesi vb. eklemeniz ve uygun genişletme ve kullanım hakkında önceden düşünmeniz gerekir.
2) Daha doğrusu, hala kodunuzu temel alıp almayacağımı (parçaları kullanıp kullanmayacağımı) veya baştan yazıp yazmayacağımı düşünüyorum.
3) Katılmak isterseniz özelden yazın.
1) Aksine, kontrol esnekliğini azaltmadan UGA parametrelerinin sayısını azaltmaya çalışıyorum.
2) Makaledeki kodu olduğu gibi projelerinde kullanan ve kodu 0'dan yeniden yazan birkaç kişi tanıyorum.
3) Size özel mesajla yazdım.
Bunların hepsi anlaşılabilir, tıpkı bir önceki gönderide olduğu gibi.
Andrei, burada listelenen tüm seçeneklerin var olma hakkı vardır. Elbette sizinki de. Optimizasyon süreci sırasında değişen kayan ayrıklık, yakın ilgiyi hak etmektedir.
--
Genel olarak her şey hakkında :
Ayarlar, genetik operatörler kütüphanesi vb. eklemelisiniz ve uygun uzantılar ve kullanım hakkında önceden düşünmelisiniz.
Nesneler üzerinde her şeyi yeniden yazmayı, hem program hem de kullanıcı için daha güçlü bir arayüz yapmayı düşünüyorum (grafiksel, sekmelerde birçok ayar ile). Bazı şeyler eklenecek, bazı şeyler birlikte optimize edilecek.
Daha doğrusu, hala kodunuzu temel alıp almayacağımı (parçaları kullanıp kullanmayacağımı) veya baştan yazıp yazmayacağımı düşünüyorum.
...Vladimir, binmek mi istiyorsun yoksa sürmek mi?
Güzel bir kod mu istiyorsun yoksa test cihazından daha havalı bir GA mı inşa etmek istiyorsun?
Şahsen test cihazının oldukça havalı olduğunu düşünüyorum, ancak birkaç parametre var.
.
Vladimir, binmek mi istiyorsun, sürmek mi?
Güzel bir kod mu istiyorsun yoksa test cihazından daha havalı bir GA mı inşa etmek istiyorsun?
Ben şahsen tester olanın oldukça güzel olduğunu düşünüyorum, sadece bir nüans yeterli parametre değil.
.
Ben kullanışlı bir kod istiyorum. Kullanımı, genişletmesi, değiştirmesi ve yerleştirmesi kolay.
Kullanışlı bir kod istiyorum. Kullanımı, genişletilmesi, değiştirilmesi ve yerleştirilmesi kolay.
175. satır ile değiştirildi.
Bu olmadan, iş raporu bir hata ile başarısız olur.
175. satır ile değiştirildi.
Bu olmadan, işlem raporu bir hata ile başarısız olacaktır.
Evet, gen. operatör döngüsünün ilk çalıştırılmasından bu yana belirli bir sayıda epok için herhangi bir gelişme olmadıysa 0'a bölme hatası oluşacaktır.
Başlangıçta resetCounterFF değişkenine hemen 1 atamak en basit ve mantıksal olarak daha doğrudur: