Optimizasyon Algoritmaları Şampiyonası. - sayfa 3

 
Andrey Dik :

*.ex üyesinin kitaplığı, algoritmasına başvurmanın esasen birleşik bir yolu olmalıdır. Algoritma bu standart kütüphaneye dikilebilir veya fonksiyonları aracılığıyla bu kütüphaneden kendi algoritmasını çağırmak serbest olabilir.

Ve katılımcıya hangi işlevi vermeli? Katılımcı ona bir şey verecek mi yoksa verecek mi? Bir kelime oyunu, seni tam olarak anlamadım.

Katılımcıya araştırılan işlevi (ff) verin. Maksimum veya minimum arayacağı kişi. Arama algoritması doğal olarak kütüphanesinde olacak.

Bir anlamda, işlevin kendisini vermek (kodu göndermek) değil, bir şekilde şampiyona sırasında katılımcının koduna aktarmak.

 

ve FF algoritmasının verilmesine gerek yoktur.

komut dosyası, içe aktarma yoluyla İncil'den optimize edilecek bir dizi parametre ister

komut dosyası bu diziyi, sonucu döndüren İncil FF'sine iletir.

senaryo sonucu katılımcının İncil'ine iletir

komut dosyası, katılımcının hizmet işlevini çağırır, gerekirse, algoritma bir şeyler yapar veya içinde yalnızca boş bir işlevdir.

mobilden yazıyorum pardon

 
Andrey Dik :

ve FF algoritmasının verilmesine gerek yoktur.

komut dosyası, içe aktarma yoluyla İncil'den optimize edilecek bir dizi parametre ister

komut dosyası bu diziyi, sonucu döndüren İncil FF'sine iletir.

senaryo sonucu katılımcının İncil'ine iletir

komut dosyası, katılımcının hizmet işlevini çağırır, gerekirse, algoritma bir şeyler yapar veya içinde yalnızca boş bir işlevdir.

mobilden yazıyorum pardon

belirsiz. Kodda bir örnek bekleyelim.
 

Her ne kadar kısmen açık olsa da, özellikle jo aracılığıyla)).

Bir üyeişlev çağrıldığında , bu işlevin işinin bir adımını yapması gerektiği ortaya çıktı. Başına konması gerekiyor. Bunu düşünmek için bir arzu yok. Bu yüzden görev zor ve hatta yapay karmaşıklıklarla karmaşıklaştırıyor.

İki seçenek:

1. Yukarıda tarafımdan açıklanan ff ile sınıf.

2. Kitaplığındaki bir üye, ff ile bir kitaplığı içe aktarır. Müfettiş onu kendikiyle değiştirecek.

Başka seçenek yok. Mümkünse, bir işleve bir işaretçi iletmedikçe (ancak şimdiye kadar kimse yardımda nereye bakılacağını önermedi). Katılımcı, ff fonksiyonunu çağırmak için tam bir fırsata sahip olmalıdır.

 

genel olarak böyle bir şey ve tabii ki bir zaman sayacı olacak. kroki:

 #import "oa.ex5" // алгоритм оптимизации участника
void    ServiceFunc1 (); 
int     GetReplaysCount (); // запрос количества запусков ФФ (у участника может быть свой размер колонии или нечто подобное если это не ГА 
void    GetOptParam ( double &param []); 
void    ServiceFunc2 (); 
bool    StopAlgo ();         // этой функцией участник по желанию может остановить оптимизацию
int     GetEpochCount ();   // если участник желает использовать своё фиксированное значение "эпох"
void    SendFFvolue ( double &volue); 
double GetMaxFF (); 
#import

#import "ff.ex5" // тестовая фитнес функция чемпионата, не известна участникам 
double GetFFvolue ( double &param []); // передаём в ФФ оптимизируемые параметры, получаем результат ФФ 
#import

void OnStart () 
{ 
   bool    stopAlgo = false ; 
   int     epoch = GetEpochCount (); 
   int     maxEpochPossible = 1000 ; 
   double param []; 
   double volue; 
   int     epochCNT = 0 ; 
   int     ffCNT = 0 ; 
  
   double FFvolue = - DBL_MAX ; 
  
  ServiceFunc1 (); 
   while (!stopAlgo) 
  {
     for ( int i = 0 ; i < GetReplaysCount (); i++) 
    {
      GetOptParam (param); 
      volue = GetFFvolue (param); 
      ffCNT++; 
      SendFFvolue (volue);
    }
    ServiceFunc2 (); 
    
    epochCNT++; 
    
     if (epochCNT >= epoch) 
      stopAlgo = true ; 
    
     if (epochCNT >= maxEpochPossible) 
      stopAlgo = true ;
  }
  
   Print ( "Epoch: " + ( string )epochCNT + " ; FF starts: " + ( string )ffCNT + " ; MaxFF: " + ( string )GetMaxFF ());
} 
 
Dmitry Fedoseev :

Katılımcı, ff fonksiyonunu çağırmak için tam bir fırsata sahip olmalıdır.

Hayır, olmamalı. Ama olmamalı çünkü olmazsa, standart test cihazındaki uzman danışmanlarda dahili optimizasyon kullanmak mümkün olacak ve eğer öyleyse, tüccarlar için çok az pratik uygulama olacaktır.

Makalem sadece FF'nin bir algoritmadan çağrıldığı bir örneği gösteriyor. Bu, kapsamı daraltır. Birisi algoritmayı makaleden alırsa (kurallar tarafından yasaklanmamış), o zaman böyle bir dahili FF çağrısından kurtulmak için marifet kullanması gerekecektir.

 
Andrey Dik :

genel olarak, bunun gibi bir şey ve elbette bir zaman sayacı olacak. kroki:

Hayır, yönlendirmez)) böyle bir yaklaşım. Katılımcı, döngüleri döndürebilmelidir, yani. tek eylemi, ff'ye birden fazla çağrı yapılmasını gerektirir.
 
Andrey Dik :
Hayır, olmamalı. Ama olmamalı çünkü olmazsa, standart test cihazındaki uzman danışmanlarda dahili optimizasyon kullanmak mümkün olacak ve eğer öyleyse, tüccarlar için çok az pratik uygulama olacaktır.
Bakın, yukarıda evrensel yöntemi ortaya koydum. Ve eğer bir aracı aracılığıyla bir kerelik bir arama yapılırsa, bu, arama fonksiyonunun çok ciddi bir şekilde uyarlanmasını gerektirecektir, bu kesinlikle kimsenin yapmayacağı bir şeydir, çünkü beyinleri çekip çıkarmak ve sn ile yerlerine yerleştirmek gerekecektir.
 
Dmitry Fedoseev :
Hayır, yönlendirmez)) böyle bir yaklaşım. Katılımcı döngüleri döndürebilmelidir, yani. tek eylemi, ff'ye birden fazla çağrı yapılmasını gerektirir.
Üzgünüz, döngüleri dışarıdan kontrol edeceğiz. Hepsi sarımsak. :)
 
Andrey Dik :
Üzgünüz, döngüleri dışarıdan kontrol edeceğiz. Hepsi sarımsak. :)
Numara. ff işlevi aramaları saymalıdır.