004
30.04.2004, 13:09 Uhr
~chefmech
Gast
|
Nein Sorry, das war die Falsche Methode :-)
Hier wäre die richtige:
C++: |
void optimizer::optim6(){ BestFitTemp=-10000; int q=0,j=0,k=0,a=0,b=0; srand(time(NULL)); for(b=0;b<AnzDurchl;b++){ do{ for (int z=0;z<VerwendeteElemente;z++){ //Altes Objekt zurückkopieren Laengen[z]=Laengen2[z]; } j=rand()%VerwendeteElemente; k=rand()%VerwendeteElemente; a=rand()%50; b=rand()%50; //cout<<q++<<" "<<j<<" "<<k<<" "<<a<<" "<<b<<" "<<VerwendeteElemente<<endl; Laengen[k]+=a; Laengen[j]-=b;
}while(!GesamtLaenge());
//Auswerten Fitness=0; if (ErgebnisPruefenTolU(&Laengen[0],&ReferenceU[0],&RefFreqU[0],Toleranz,VerwendeteElemente,&Fitness,BeginnGross,UnterePruefpunkte)){ //Untergrenze Prüfen if (ErgebnisPruefenTolO(&Laengen[0],&ReferenceO[0],&RefFreqO[0],Toleranz,VerwendeteElemente,&Fitness,BeginnGross,OberePruefpunkte)){ //Obergrenze Prüfen cout<<Fitness<<endl<<BestFitTemp<<endl; if (Fitness>BestFitTemp||Fitness==0){ cout<<Fitness<<endl; if (Fitness>BestFitness||Fitness==0){ BestFitness=Fitness; BestFitTemp=Fitness; cout<<"Neues Topobjekt gefunden. Fitness: "<<Fitness<<endl; if (Fitness>-30){ AppendFile(Dateiname,&Laengen[0],VerwendeteElemente,Fitness); } for (int z=0;z<VerwendeteElemente;z++){ Laengen2[z]=Laengen[z]; } } else{ BestFitTemp=Fitness; cout<<"Neues Objekt gefunden. Fitness: "<<Fitness<<endl; for (int z=0;z<VerwendeteElemente;z++){ Laengen2[z]=Laengen[z]; } } } } }
} }
|
Bearbeitung von Pablo: |
Bitte, cpp tags selber benutzen
|
Dieser Post wurde am 30.04.2004 um 21:19 Uhr von Pablo editiert. |