"Genetik Algoritmalar - Çok Kolay!" makalesi için tartışma - sayfa 14

 
İyi günler!
Genetik algoritmaları kullanma hakkındaki makaleyi okudum. Çok etkilendim !!!

ZigZag göstergesinin kullanımı hakkında birkaç sorum var, ancak en önemlisi eğitim için göstergeden nasıl sinyal veriyorsunuz?

göstergenin değişken bir adımı vardır.
Şimdiden teşekkürler.
 
Debugger:
1) Genetik algoritmaların kullanımı ile ilgili makaleyi okudum. Çok etkilendim!!!

2) Eğitim için göstergeden sinyalleri nasıl besliyorsunuz?

3) Göstergenin değişken bir adımı var.

Mesajınızdaki küçük düzeltmem için özür dilerim. Umarım anlayışınız için. Şimdiden teşekkür ederim. :)

Yani:

1) Teşekkür ederim.

2) Bunu hiçbir şekilde sunmuyorum. Makale, Alternatif ZZ'nin ekstremumunu arar ve pip cinsinden toplam karı ZZ göstergesinin karı ile karşılaştırır (bu, spread dikkate alınarak maksimum kar için özel bir komut dosyası tarafından önceden ayarlanmıştır).

3) Ve UGA yeteneklerinin gösterilmesi için önemli değil. :)


ZЫ. Sorularınızı yeterince tam olarak ele almadıysam, daha fazlasını sorun - elimden geldiğince size yardımcı olmaya çalışacağım (veya UGA algoritmasının çalışmasını zaten anlamış olanlar cevap verecektir).

 

Harika bir makale, sadece benzer bir şey arıyordum.

Bir açıklama:

3.10 GenoMerging. Заимствование генов

Bu GA operatörünün doğal bir karşılığı yoktur

Bu tam olarak doğru değil.

Doğadaki bu sürece yatay gen transferi denir.

Genel olarak - yazara saygı ve hürmet, sadece kullanım hareketliliğini sağlamak için bu kütüphaneyi bir sınıfa sarmak gerekir.

Bool'un double'a dönüştürülmesiyle ilgili açıklamalardan - hesaplama miktarını artırıyor mu?

Anladığım kadarıyla, tüm genler için aynı değişim aralığı ve aynı doğruluk ayarlanıyor. Aralık - özel bir rol oynamaz, istenen herhangi bir aralık gerekli olana "sıkıştırılabilir". Ancak doğruluk daha zordur, maksimuma çıkarılması gerekir. Ve bir değişken için 1000 farklı değer aramanız gerekiyorsa, aynı arama aralığı otomatik olarak diğer tüm değişkenlere, hatta bool değişkenlere atanacaktır. Algoritma böyle bir değişkenin değerlerini hesaplamak için hesaplama kaynaklarının oldukça büyük bir kısmını harcamaz mı? Diyelim ki, bir bool değişkenimiz, -10 ile 10 arasında bir aralığımız ve 0.1 hassasiyetimiz varsa - bu değişken üzerindeki algoritma için, uygunluk fonksiyonunun aynı iki değerini veren yüz FARKLI "doğru" değer ve 100 FARKLI "yanlış" değer olacağı ortaya çıkar. Buna ek olarak, popülasyonun kendisi, algoritmanın kendisine göre bu değişken üzerinde farklılık gösteren, ancak double'ın gerçek değeri bir bool olduğu için aynı olan birçok farklı birey içerebilir.

En azından her gen için hassasiyeti ayarlayan bir dizi daha eklememiz gerekmez mi?

 
Laryx:

1- Harika bir makale, tam da böyle bir şey arıyordum.

2. Anladığım kadarıyla, tüm genler için aynı varyasyon aralığı ve aynı doğruluk belirleniyor. Aralık - özel bir rol oynamıyor, istenen herhangi bir aralık gerekli olana "sıkıştırılabilir". Ancak doğruluk daha zordur, maksimuma çıkarılması gerekir. Ve bir değişken için 1000 farklı değer aramanız gerekiyorsa, aynı arama aralığı otomatik olarak diğer tüm değişkenlere, hatta bool değişkenlere atanacaktır. Algoritma böyle bir değişkenin değerlerini hesaplamak için hesaplama kaynaklarının oldukça büyük bir kısmını harcamaz mı? Diyelim ki, bir bool değişkenimiz, -10 ile 10 arasında bir aralığımız ve 0.1 hassasiyetimiz varsa - bu değişken üzerindeki algoritma için, uygunluk fonksiyonunun aynı iki değerini veren yüz FARKLI "doğru" değer ve 100 FARKLI "yanlış" değer olacağı ortaya çıkar. Buna ek olarak, popülasyonun kendisi, algoritmanın kendisine göre bu değişken üzerinde farklılık gösteren, ancak double'ın gerçek değeri bir bool olduğu için aynı olan birçok farklı birey içerebilir.

3. En azından her gen için hassasiyeti belirten başka bir dizi eklememiz gerekmez mi?

1. Teşekkürler.

2. Makale, okuyucunun anlama kolaylığı için algoritmayı olabildiğince basit (açık kaynak projesi) tutmaktadır. İstenildiği gibi iyileştirmeler ve süslemeler için bir başlangıç noktasıdır.

3. Elbette ben de her gen için özelleştirilebilir bir adım (hassasiyet) kullanıyorum (kapalı proje).

 

Bu GA gelişimi kesinlikle onurlu bir ilgiyi hak ediyor).

Ve daha da fazlası, MT5'teki MT4'ün aksine, optimizasyon yalnızca sondan bir önceki güne kadar mümkündür. Bu nüans dikkate alındığında, bu konu nöro-danışmanların kullanıcıları ve geliştiricileri için giderek daha alakalı hale gelecektir. Ve elbette, genetik algoritmaların sinir ağlarının matematiksel modellerinden sağ ayakkabının solu kadar ayrılmaz olduğuna şüphe yok).

Bu yüzden bir soru sormak istiyorum. Andrei, bu testlere ve deneylere dayanarak (ve bunlardan yeterince yaptığınızdan şüphem yok), sizce ve sizin GA'nızla (ve belki de sadece sizinkiyle değil) ilgili olarak, optimizasyonda en iyi sonuçları veren nedir? Sizin GA'nız mı yoksa terminalin dahili GA'sı mı?

Cevabınız için şimdiden teşekkür ederim.

 
wiantin:

...sizce ve EA'nızla ilgili olarak (ve belki de sadece sizinkiyle değil) optimizasyonda hangisi daha iyi sonuçlar verir? Sizin GA'nız mı yoksa terminalin dahili GA'sı mı?

Benim GA'm daha iyi sonuçlar veriyor. Daha özelleştirilebilir.

Ve en son sürümler elit seçim unsurları ile çok kriterli arama uyguluyor.

Ancak kurum içi optimize edici de çok iyi, daha fazla ayara ve çok kriterli aramaya sahip olsaydı, hiçbir değeri olmazdı.

 
joo:

Ve en son sürümler, seçkin seçim unsurları ile çok kriterli arama uygular.

Onları tanımak için herhangi bir imkan var mı?
 

'UGAlib.mqh' içindedizi aralık dışı (264,24)

1000 gene ulaştığında. izin verilen gen sayısını nasıl artıracağımı anlamıyorum, kütüphanelerde daha iyi bilen ipucu.

upd hata sadece gen sayısını artırırken görünmeye başladı ...

upd 2 anladım, sorun kütüphanede değil, mql5 belirlediğim boyutlardaki dizileri kabul etmiyor.

 
wiantin:
Onları tanımanın herhangi bir yolu var mı?
Hayır. Sadece bir devam makalesi yazmayı düşünürsem.
 
ozer-man:

'UGAlib.mqh' içinde dizi aralık dışı (264,24)

1000 gene ulaştığında. izin verilen gen sayısını nasıl artıracağımı anlamıyorum, kütüphanelerde daha iyi bilen ipucu.

upd hata sadece gen sayısını artırırken görünmeye başladı ...

upd 2 anladım, sorun kütüphanede değil, mql5 belirlediğim boyutlardaki dizileri kabul etmiyor.

Hata, ikinci boyutun boyutunun sabit array[][const] olmasından kaynaklanıyor.

Bu sınırlamadan kurtulmak için yapılar (veya sınıflar) kullanmanız gerekir, bunun gibi bir şey:

struct Сhromosome //kromozom
  {
    float Gene[]; //genes.
  };
Сhromosome Population[]; // Nüfus


ps. ve nasıl oldu da iki koca yazıyı kaçırdım. :)