Optimizasyon Algoritmaları Şampiyonası.

 

Optimizasyon algoritmaları şampiyonası, arayan, meraklı, hareketsiz durmak anlamına gelen, geriye gitmek anlamına gelen insanlar için bir yarışma olarak tasarlanmıştır.

Şampiyona, algoritmalarınızı günlük hayatta karşılaşılanlardan daha zorlu ve daha zorlu rekabet koşullarında test etmek için harika bir fırsat. Bu, algoritmanızın artık daha iyi olamayacağından emin olmak için bir şanstır; bu, yaklaşan yaşam sorunlarını çözme olasılığına olan güven anlamına gelir veya algoritmayı daha da iyileştirmenin ve iyileştirmenin gerekli veya mümkün olduğundan emin olun.

Tüzük:

1. Herhangi bir ilke ve arama teorisine dayanan optimizasyon algoritmaları, kesinlikle herhangi bir şampiyonaya izin verilir.

2. Her katılımcı kendi adına kaynak kodlarında veya *.ex5 kitaplığının derlenmiş biçiminde yalnızca bir algoritma sunabilir.

3. Şampiyonanın sonuçlarına göre, katılımcılar şu kriterlere göre sıralanacak: algoritmanın hızı, uygunluk fonksiyonunun çalışma sayısı, çözümü bulma doğruluğu.

Koşullar:

1. Organizatör, sebep göstermeksizin herhangi birinin katılımını reddetme hakkını saklı tutar.

2. Organizatör şampiyonaya katılma hakkına sahiptir.

3. Ödüllerin açıklanması sırasında potansiyel sponsorlardan bir ödül fonu varsa, organizatör katılımcılar lehine ödülleri reddeder.

Optimizasyon Algoritmaları Şampiyonası Organizatörü: Joo .

Cesur olun, katılın ve kazanın. Algoritmanız gelecekte normal MT optimize edicide kullanılacak olabilir, neden olmasın?

 

Kayıtların açıldığını ilan ediyorum.

Katılmak isteyenler lütfen buradan kayıt yaptırsın. 20 Haziran 2016'da, algoritmaları bağlamak için arayüzlere sahip yürütülebilir bir komut dosyası örneklerinin kodları sunulacak . Ve 3 hafta sonra, 11 Temmuz 2016'da şampiyonanın kendisi başlayacak.

 
Genel olarak, evet. Lütfen sadece "Optimizasyon Algoritmaları" konusunu tartışın. Sağa adım, sola adım - yürütme :)
 
Andrey Dik :

Kayıtların açıldığını ilan ediyorum.

Katılmak isteyenler lütfen buradan kayıt yaptırsın. 20 Haziran 2016'da, algoritmaları bağlamak için arayüzleri olan yürütülebilir bir komut dosyası örneklerinin kodları sunulacak. Ve 3 hafta sonra şampiyonanın kendisi başlayacak.

Genel olarak, fikirler vardır veya her şey düşünme sürecindedir. Eğer öyleyse, düşüncelerimi paylaşabilirim.
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Andrey Dik , 2016.06.10 17:24

Andrey Dik
Peter Konow
İgor Volodin
Dmitry Fedoseev
Sergey Chalyshev
Ghenadie Tumco
İgor Volodin

 
Bunu biraz erteleyebilir miyiz? Bir makale yazın . Kod tabanına bir sınıf şablonu koyun. Bana öyle geliyor ki çok başarılı bir şablonum var :)
 
Şampiyonaya ev sahipliği yapmak için yedi kişi yeterli mi? (MQ cinsinden)
 
Dmitry Fedoseev :
Genel olarak, fikirler vardır veya her şey düşünme sürecindedir. Eğer öyleyse, düşüncelerimi paylaşabilirim.

Elbette fikirler var.

Makale çok iyi. Ne yönde bir makale yazmak istiyorsunuz?

Gerçekten bir ihtiyaç varsa şampiyonluğu ertelemek mümkün. Ama başlangıca daha çok zaman var , şampiyona 11 Temmuz 2016'da başlıyor .

 
Andrey Dik :

Elbette var.

Yay. Kınayalım.

Makale çok iyi. Ama artık bekleyemezsin. İnsanlar kısa bir hafızaya sahip olma eğilimindedir ve her şeyin nasıl başladığını çabucak unuturlar ....

 class CFF{
   public :
   virtual double fun( double & x[]){ return ( 0 );}
   virtual string type(){ return ( "" );}
   virtual double value(){ return ( 0 );}
   virtual string note(){ return ( "" );}
};

class CFF1: public CFF{
   public :
   double fun( double & x[]){
       int c= ArraySize (x);
       double s= 0 ;
       for ( int i= 0 ;i<c;i++){
         s+= MathPow (x[i], 2 );
      }
       return (s);   
   }
   virtual string type(){
       return ( "min" );
   }
   virtual double value(){
       return ( 0 );
   }
   virtual string note(){
       return ( "" );
   }   
};

class CFF2: public CFF{
   public :
   double fun( double & x[]){
       int c= ArraySize (x);
       double s= 0 ;
       double p= 0 ;
       for ( int i= 0 ;i<c;i++){
         s+= MathAbs (x[i]);
         p*= MathAbs (x[i]);
      }
       return (s+p); 
   }
   virtual string type(){
       return ( "min" );
   }
   virtual double value(){
       return ( 0 );
   }
   virtual string note(){
       return ( "" );
   }   
};

Araştırılan fonksiyonun (ff) seçilmesi için yapı böyledir. Sanal yöntemlerle temel sınıf ve çeşitli işlevlere sahip alt sınıflar.

Bu şekilde beyan ederim:

CFF * ff= new CFF1();

ya da öyle, hangi işlevin gerekli olduğuna bağlı olarak:

CFF * ff= new CFF2();

Optimizasyon fonksiyonunda, seçilen ff ile sınıfa bir işaretçi geçirmek için CFF tipinde bir parametremiz var.

***

Temel sınıf yöntemleri:

   virtual double fun( double & x[]){ return ( 0 );}
   virtual string type(){ return ( "" );}   

eğlence - gerçek işlev, parametreler double türünde bir dizide iletilir.

tip - fonksiyon tipi: min veya max - minimum veya maksimum fonksiyonda ne aranır.

Geri kalanına gerek yok, kendin için mi yaptın? hafıza için: değer - ekstremumdaki değer, not - bazı açıklamalar. Şampiyonluk için gereksizler, özellikle değer.

***

Şimdi bir işlevim yok, ancak içinde ff ayarlamak için bir sınıf ve bir yöntemim var:

   
       void SetFF(CFF * aff){
         this .ff=aff;
      }  
Sonra this.ff.fun(...);
 

Şampiyona için sınıfın kütüphaneye yerleştirilmesi gerekecek. Kütüphanede dışarıdan çağrılacak bir fonksiyon yapın, her şey bu fonksiyondadır: sınıfın bir örneğini oluşturmak, fonksiyona aktarılan tüm parametreleri ayarlamak, vb.

İşlevin adı herkes için standarttır. Herkesin kendi kütüphane dosya adları vardır.

Kontrol komut dosyasında. Doğrulayıcı, içe aktarılan kitaplığın adını değiştirir, derler, yürütür.

İşte burada:

CFF * ff= new CFF1();

Doğrulayıcının komut dosyasında.

 
Dmitry Fedoseev :

Şampiyona için sınıfın kütüphaneye yerleştirilmesi gerekecek. Kütüphanede dışarıdan çağrılacak bir fonksiyon yapın, her şey bu fonksiyondadır: sınıfın bir örneğini oluşturmak, fonksiyona aktarılan tüm parametreleri ayarlamak, vb.

İşlevin adı herkes için standarttır. Herkesin kendi kütüphane dosya adları vardır.

Kontrol komut dosyasında. Doğrulayıcı, içe aktarılan kitaplığın adını değiştirir, derler, yürütür.

Sizce şampiyonada belirlenen problemin çözümünde OOP olmadan yapmak mümkün mü? Her şeyi kendi yolumda çözmeye alışığım. (Eh, OOP için bir ruhum yok). :)
Neden: