| Rev | Line |   | 
|---|
| [1956] | 1 | /* -*- C++ -*- | 
|---|
 | 2 |  * | 
|---|
 | 3 |  * This file is a part of LEMON, a generic C++ optimization library | 
|---|
 | 4 |  * | 
|---|
 | 5 |  * Copyright (C) 2003-2006 | 
|---|
 | 6 |  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport | 
|---|
 | 7 |  * (Egervary Research Group on Combinatorial Optimization, EGRES). | 
|---|
 | 8 |  * | 
|---|
 | 9 |  * Permission to use, modify and distribute this software is granted | 
|---|
 | 10 |  * provided that this copyright notice appears in all copies. For | 
|---|
 | 11 |  * precise terms see the accompanying LICENSE file. | 
|---|
 | 12 |  * | 
|---|
 | 13 |  * This software is provided "AS IS" with no warranty of any kind, | 
|---|
 | 14 |  * express or implied, and with no claim as to its suitability for any | 
|---|
 | 15 |  * purpose. | 
|---|
 | 16 |  * | 
|---|
 | 17 |  */ | 
|---|
 | 18 |  | 
|---|
| [1921] | 19 | #include <lemon/simann.h> | 
|---|
 | 20 |  | 
|---|
 | 21 | using namespace lemon; | 
|---|
 | 22 |  | 
|---|
 | 23 | class MyEntity : public EntityBase { | 
|---|
 | 24 | public: | 
|---|
 | 25 |   double d, prev_d; | 
|---|
 | 26 |   MyEntity() : d(100000.0) { srand48(time(0)); } | 
|---|
 | 27 |   double mutate() { | 
|---|
 | 28 |     prev_d = d; | 
|---|
 | 29 |     if (drand48() < 0.8) { d += 1.0; } | 
|---|
 | 30 |     else { d -= 1.0; } | 
|---|
 | 31 |     return d; | 
|---|
 | 32 |   } | 
|---|
 | 33 |   void revert() { d = prev_d; } | 
|---|
 | 34 |   MyEntity* clone() { return new MyEntity (*this); } | 
|---|
 | 35 |   void randomize() {} | 
|---|
 | 36 | }; | 
|---|
 | 37 |  | 
|---|
 | 38 | int main() { | 
|---|
 | 39 |   SimAnn simann; | 
|---|
 | 40 |   SimpleController ctrl; | 
|---|
 | 41 |   simann.setController(ctrl); | 
|---|
 | 42 |   MyEntity ent; | 
|---|
 | 43 |   simann.setEntity(ent); | 
|---|
 | 44 |   simann.run(); | 
|---|
 | 45 |  | 
|---|
 | 46 |   //MyEntity *best_ent = (MyEntity *) simann.getBestEntity(); | 
|---|
 | 47 |   //std::cout << best_ent->d << std::endl; | 
|---|
 | 48 |  | 
|---|
 | 49 |   SimAnn simann2; | 
|---|
 | 50 |   AdvancedController ctrl2(2.0); | 
|---|
 | 51 |   simann2.setController(ctrl2); | 
|---|
 | 52 |   MyEntity ent2; | 
|---|
 | 53 |   simann2.setEntity(ent2); | 
|---|
 | 54 |   simann2.run(); | 
|---|
 | 55 |  | 
|---|
 | 56 |   //MyEntity *best_ent2 = (MyEntity *) simann2.getBestEntity(); | 
|---|
 | 57 |   //std::cout << best_ent2->d << std::endl; | 
|---|
 | 58 |  | 
|---|
 | 59 |   return 0; | 
|---|
 | 60 | } | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.