namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


anwenden:knapsack

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenden:knapsack [2016-12-28 12:35]
127.0.0.1 Externe Bearbeitung
anwenden:knapsack [2020-07-26 17:48] (aktuell)
rrichter
Zeile 65: Zeile 65:
 void mutieren (Population& p); void mutieren (Population& p);
 void auslesen (Population& p); void auslesen (Population& p);
-void bewerten (const Population& p); +void bewerten (Population const& p); 
-bool beenden  (const Population& p);+bool beenden  (Population const& p);
  
 void evolution(Population& p) void evolution(Population& p)
Zeile 91: Zeile 91:
 <code cpp> <code cpp>
 struct Genom; struct Genom;
-double fitness (const Genom& g); // Zielfunktion+double fitness (Genom const& g); // Zielfunktion
 void   mutieren(Genom& g); void   mutieren(Genom& g);
-void   kreuzen (const Genom& elter1, const Genom& elter2, +void   kreuzen (Genom const& elter1, Genom const& elter2, 
                       Genom& kind1,        Genom& kind2);                       Genom& kind1,        Genom& kind2);
  
Zeile 105: Zeile 105:
 // ===[ Real-World-Problem ]=============================== // ===[ Real-World-Problem ]===============================
  
-const int MAX_GEGENSTAENDE = 9; +int const MAX_GEGENSTAENDE = 9; 
-const double MAX_GEWICHT = 10;  // Kinderrucksack :-)+double const MAX_GEWICHT = 10;  // Kinderrucksack :-)
  
 </code> </code>
Zeile 125: Zeile 125:
  
 <code cpp> <code cpp>
-const double gewichte[MAX_GEGENSTAENDE] =+double const gewichte[MAX_GEGENSTAENDE] =
 { {
   0.3, 1.5, 3.0, 0.3, 0.3, 2, 2.5, 1.5 , 1.0   0.3, 1.5, 3.0, 0.3, 0.3, 2, 2.5, 1.5 , 1.0
 }; };
  
-const int gebrauchswerte[MAX_GEGENSTAENDE] =+int const gebrauchswerte[MAX_GEGENSTAENDE] =
 { {
   6, 5, 1, 7, 3, 5, 2, 4, 1   6, 5, 1, 7, 3, 5, 2, 4, 1
Zeile 143: Zeile 143:
  
 <code cpp> <code cpp>
-const int GENOM_LENGTH = MAX_GEGENSTAENDE;+int const GENOM_LENGTH = MAX_GEGENSTAENDE;
  
 struct Genom struct Genom
Zeile 159: Zeile 159:
  
 <code cpp> <code cpp>
-double fitness(const Genom& g) // Zielfunktion+double fitness(Genom const& g) // Zielfunktion
 { {
   double wert=0, gewicht=2.0; // wiegt auch leer was    double wert=0, gewicht=2.0; // wiegt auch leer was 
Zeile 193: Zeile 193:
 // 11010:010 => 11010:101 // 11010:010 => 11010:101
  
-void kreuzen(const Genom& elter1, const Genom& elter2, +void kreuzen(Genom const& elter1, Genom const& elter2, 
                    Genom& kind1,        Genom& kind2)                    Genom& kind1,        Genom& kind2)
 { {
Zeile 212: Zeile 212:
 ==== Die Beschreibung der Population ==== ==== Die Beschreibung der Population ====
 <code cpp> <code cpp>
-const int MAX_INDIVIDUEN = 35; // vier reichen auch ... +int const MAX_INDIVIDUEN = 35; // vier reichen auch ... 
-const int MAX_NACHKOMMEN = 2;+int const MAX_NACHKOMMEN = 2;
  
 struct Population struct Population
Zeile 281: Zeile 281:
  
 <code cpp> <code cpp>
-bool vorteil(const Genom& g1, const Genom& g2)+bool vorteil(Genom const& g1, Genom const& g2)
 { {
   return fitness(g1) > fitness(g2);   return fitness(g1) > fitness(g2);
Zeile 304: Zeile 304:
 double wertung=0, alte_wertung=0; double wertung=0, alte_wertung=0;
  
-void bewerten(const Population& p)+void bewerten(Population const& p)
  
 #ifdef unix         #ifdef unix        
Zeile 343: Zeile 343:
  
 <code cpp> <code cpp>
-bool beenden(const Population& p)+bool beenden(Population const& p)
 { {
   // maximale Rundenzahl   // maximale Rundenzahl
anwenden/knapsack.txt · Zuletzt geändert: 2020-07-26 17:48 von rrichter