MT geliştiricileri için değil! INIT_PARAMETERS_INCORRECT nasıl değiştirilir? - sayfa 7

 
Сергей Таболин :

Her şeyden, konunun özünü hiç anlamadığınız açıktır. Bu nedenle, kendinize aşırı güvenen "tavsiyeniz" - fırında!

Fırında çalışmaz))

Amatörce sorunuz kulağa hoş geldi, benim de özgüvenli tavsiyem.

Moderatör veya yönetici değilsiniz, bu yüzden fırında kimin olduğuna karar vermek size bağlı değil.

 
TheXpert :

Bir kişinin optimizasyon düğmesine basabilmesi için genetik algoritmaların temellerini anlamaması bile gerekir. sadece düğmeye basın.

Hayır, kedileri mikrodalgada kurutmaya başlayacağız.

Bu tüketici tutumunu teşvik etmeye gerek yok, "Düğmeye bastım, neden çalışmıyor??!".

ps: yazımın genetik kullanımı ile ilgisi yok.

 
Сергей Таболин :

Temelde yanılıyorsunuz.

Bir kullanıcı olarak bir kez daha görüyorum: Optimizasyon Yavaş / Hızlı.

Her neyse, artık ilgilenmiyorum. Ne derin bilgi olarak, ne de temel şeylerin ışığında.

Hayattaki pozisyonun bu mu? Korkarım ki olaylara bu kadar amatörce yaklaşmak size çok fazla sorun getirecek. Özellikle finans konularında. Anlamak istemezsen anlayana rızık olursun.

Eğer "hızlı" ve "yavaş" yazıyorsa, aklı başında bir insanın düşünmesi gereken ilk şey şudur: aynı sonuçlar hızlı bir şekilde elde edilebiliyorsa burada neden "yavaş"? ...ya da aynı olanlar değil mi?..anlamamız lazım...

Ama her birine kendi.

 
Сергей Таболин :

Her şey doğru.

Sadece ben, kısıtlamaların geliştiriciler tarafından mümkün olduğunca ortadan kaldırılması gerektiğine inanmaya meyilliyim. Aynı şey zayıflıklar için de geçerli.

Genetik optimizasyonu hiç kullanmamaya çalışıyorum. Ama gerçekten zorundaysanız, bu algoritmaların ormanına hiç girmek istemezsiniz. Eh, bu kullanıcı için değil.

Örnek olarak, burada bir bilgisayarın başında oturuyorum, tuşlara tıklıyorum ve bastığım andan ekranda sembolü görünene kadar ne olduğu umurumda değil. İşlemcinin, ekran kartının, vidaların, soğutucuların nasıl çalıştığı, nasıl etkileşime girdiği hiç de ilginç değil. Bu aynı zamanda ortalama bir kullanıcı için değildir.

İşte tam da bu yüzden - sembol düğmesine tıklamanın bir sembol elde etmek için olduğunu anlamalısınız. Ayrıca, diyelim ki presleme hızında kısıtlamalar var. Ve saniyede 50 kez düğmeye basmaya çalışıyorsunuz ve 50 karakterin görüntülenmemesine kızıyorsunuz.

Soru, saniyede 50 karakter algılama yeteneğidir - bu sınırlamayı ortadan kaldırmak gerekli midir? Çoğu kullanıcı için tam tersi, temasların sıçraması sembol olarak algılandığında bir bozulma olmayacak mı?

 
TheXpert :

Bir kişinin optimizasyon düğmesine basabilmesi için genetik algoritmaların temellerini anlamaması bile gerekir. sadece düğmeye basın.

Nedenmiş ?

Anlaması gerekmiyorsa - o zaman "neden çöp aldım" diye sormamalıdır. Bir kez ortaya çıktı - "sadece oldu" anlamına gelir. Böyle amaçlanıyordu.

Herhangi bir araç belirli bir anlayış seviyesi gerektirir. Bu, "kara kutuların" kullanımını engellemez, ancak "kara kutular" kullanılırken bile, bu "kara kutu"nun işlev gördüğü temel kalıpları açıkça anlamak gerekir.

 

Lord yoldaşlar!

Kimin neyi anladığı/anlamadığı ve bunun gerekli/gerekli olup olmadığı tartışmasına giriyoruz. Ve soru esasen arka planda kayboldu.

Genetiğin mekaniğini bilmiyorum, bu yüzden ne demek istediğimi anlamak için biraz çaba gösterin.

117649 seçenek (geçer) vardır. Bunlardan sadece 1953'ü kabul edilebilir.İlke olarak 1 (000000) gerçekten kabul edilemez !!! Ve 115695 tekrarlardır. 1953 "izin verilen" olanlardan farklı varyasyonlar. Zamandan ve kaynaklardan tasarruf etmek için onları INIT_PARAMETERS_INCORRECT ile hariç tutuyorum.

Daha ileri. Genetik, 512 kişiden oluşan ilk popülasyonu toplar. Böyle?

Ve 502 "geçersiz" birey hemen bu popülasyona girer. 10 işçi yetmez. Kabul ediyorum.

Ancak 512, 1953'ün yalnızca 1/4'üdür (yaklaşık olarak).

Genetiği daha fazla araştırmadan, ilk popülasyonu yalnızca "izin verilen" parametrelerden toplamanın neden imkansız olduğunu anlamıyorum?

Ve genel olarak, sonraki popülasyonların yalnızca geçerli parametrelerden toplamasını engelleyen nedir???
 
Andrey Khatimlianskii :

Hayır, kedileri mikrodalgada kurutmaya başlayacağız.

Bu tüketici tutumunu teşvik etmeye gerek yok, "Düğmeye bastım, neden çalışmıyor??!".

Sadece bu düğmeden bahsediyorum. pozisyonunu yukarıda açıkladı. Daha fazlasını söyleyeceğim, genetik algoritmaları anlıyorum, optimize etmeme yardımcı olmuyor
 

Diğer şeylerin yanı sıra, kişisel olarak, INIT_PARAMETERS_INCORRECT sadece optimizasyon modunda , özellikle kelimenin tam anlamıyla geçersiz olmayan, ancak sadece gereksiz geçişleri olan parametreleri filtrelemek için kullanıyorum.

Örnek olarak:

 input    bool    использовать_параметр   = true ;
input    int     парам_1                 = 5 ;
input    int     парам_2                 = 12 ;
input    int     парам_3                 = 100 ;
input    int     парам_4                 = 1 ;

........

Bu nedenle, test sırasında ve danışmanın çalışması sırasında_parameter = false kullanıldığında , parametreleri hiç önemli değilse, o zaman optimizasyon sırasında, bu parametrelerin numaralandırılması basitçe gereksizdir, bu nedenle, bir çıkış dışında INIT_PARAMETERS_INCORRECT tarafından bir çıkış yapılır. başlangıç değerleri ile tek geçiş. Bu çok zaman kazandırır. Sonuçta, geçerli bir geçiş için bir sürü işe yaramaz geçiş var. Ve genetik, gereksiz pasajları ayıklamayı büyük bir hata olarak algılar.

Geliştirilmiş, bir şekilde bu sorunu çözmek yerine, aynı genetiği incelemeye gönderiyorlar, üstelik bir yasakla. Anladığım kadarıyla ders çalışmak için zamana sahip olmak.

Ve bir kez daha tekrarlıyorum: Kullanıcının genetiğin nasıl çalıştığını bilmesine gerek yok! Ancak bu soruna bir çözüm bulmak geliştiricilerin görevidir.

 
Сергей Таболин :

Diğer şeylerin yanı sıra, kişisel olarak, INIT_PARAMETERS_INCORRECT'i yalnızca optimizasyon modunda kullanıyorum, özellikle kelimenin tam anlamıyla geçersiz olmayan, ancak gereksiz geçişleri olan parametreleri filtrelemek için.

Örnek olarak:

Bu nedenle, test sırasında ve danışmanın çalışması sırasında_parameter = false kullanıldığında , parametreleri hiç önemli değilse, o zaman optimizasyon sırasında, bu parametrelerin numaralandırılması basitçe gereksizdir, bu nedenle, bir çıkış dışında INIT_PARAMETERS_INCORRECT tarafından bir çıkış yapılır. başlangıç değerleriyle tek geçiş. Bu çok zaman kazandırır. Sonuçta, geçerli bir geçiş için bir sürü işe yaramaz geçiş var. Ve genetik, gereksiz pasajları ayıklamayı büyük bir hata olarak algılar.

Geliştirilmiş, bir şekilde bu sorunu çözmek yerine, aynı genetiği araştırmaya, üstelik bir yasakla gönderiyorlar. Anladığım kadarıyla ders çalışmak için zamana sahip olmak.

Ve bir kez daha tekrarlıyorum: kullanıcının genetiğin nasıl çalıştığını bilmesine gerek yok! Ancak bu soruna bir çözüm bulmak geliştiricilerin görevidir.

4 parametreniz var, bu yüzden bu 4 parametrenin çalışmasını bir şekilde sadece doğru değerlerle düzenlemeniz gerekiyor, o zaman genetik işe yarayabilir.

 
Сергей Таболин :


117649 seçenek (geçer) vardır. Bunlardan sadece 1953'ü kabul edilebilir.İlke olarak 1 (000000) gerçekten kabul edilemez !!! Ve 115695 tekrarlardır. 1953 "izin verilen" olanlardan farklı varyasyonlar. Zamandan ve kaynaklardan tasarruf etmek için onları INIT_PARAMETERS_INCORRECT ile hariç tutuyorum.

Şahsen, INIT_PARAMETERS_INCORRECT kelimesini kelimenin tam anlamıyla geçersiz olmayan, ancak sadece gereksiz geçişleri olan parametreleri filtrelemek için yalnızca optimizasyon modunda kullanıyorum.

Hatanız burada yatıyor. Genetikte "ekstra" pasajlar yoktur. Her şeyi raflara kendisi koyar, fazlalığı eler, çünkü sonunda zamandan ve kaynaklardan tasarruf sağlanır. Ve sen onun yoluna çıkıyorsun.

Aslında kendinle çelişiyorsun. İlk olarak, sihirli düğmeye bastığınızda, herhangi bir ek çaba harcamadan her şeyin kendi kendine çalışması gerektiğini söyleyin. Ancak aynı zamanda, optimizasyon algoritmasına yardımcı olduğu iddia edilen kodda şamanizmi kendiniz düzenlersiniz.

Kısacası, şimdi her şey açık:

Sergey Tabin :

Ve öyle olsa bile:

121

sonuçta sonuç 21 gibi olacak ve 21 zinciri de bu sonucu tekrar edecek. Çoğaltma, prensipte gereksiz işlemler için fazladan zaman ...

INIT_PARAMETERS_INCORRECT ile hiçbir şeyi filtrelemenize gerek yok, program mantığınıza göre 121 hesaplayın ve genetik işini görecek ve sonuç 1953'ten daha kısa sürede elde edilecektir (umarım).

Bununla birlikte, optimizasyon kapsamlı arama ile gerçekleştirilirse, elbette ekstra geçişlere gerek yoktur. Optimizasyon türünü belirten Uzman Danışmanınıza ek bir parametre girebilirsiniz. Tam bir numaralandırma varsa, fazladan geçişler elenir ve genetik ise, hayır. MQL'nin optimizasyon türünü bulmak için yerel bir yeteneğe sahip olmaması üzücü. Geliştiricilerden böyle bir özellik eklemelerini istememiz gerekiyor.