alpar@1956: /* -*- C++ -*-
alpar@1956:  *
alpar@1956:  * This file is a part of LEMON, a generic C++ optimization library
alpar@1956:  *
alpar@1956:  * Copyright (C) 2003-2006
alpar@1956:  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
alpar@1956:  * (Egervary Research Group on Combinatorial Optimization, EGRES).
alpar@1956:  *
alpar@1956:  * Permission to use, modify and distribute this software is granted
alpar@1956:  * provided that this copyright notice appears in all copies. For
alpar@1956:  * precise terms see the accompanying LICENSE file.
alpar@1956:  *
alpar@1956:  * This software is provided "AS IS" with no warranty of any kind,
alpar@1956:  * express or implied, and with no claim as to its suitability for any
alpar@1956:  * purpose.
alpar@1956:  *
alpar@1956:  */
alpar@1956: 
ladanyi@1921: #include <lemon/simann.h>
ladanyi@1921: 
ladanyi@1921: using namespace lemon;
ladanyi@1921: 
ladanyi@1921: class MyEntity : public EntityBase {
ladanyi@1921: public:
ladanyi@1921:   double d, prev_d;
ladanyi@1921:   MyEntity() : d(100000.0) { srand48(time(0)); }
ladanyi@1921:   double mutate() {
ladanyi@1921:     prev_d = d;
ladanyi@1921:     if (drand48() < 0.8) { d += 1.0; }
ladanyi@1921:     else { d -= 1.0; }
ladanyi@1921:     return d;
ladanyi@1921:   }
ladanyi@1921:   void revert() { d = prev_d; }
ladanyi@1921:   MyEntity* clone() { return new MyEntity (*this); }
ladanyi@1921:   void randomize() {}
ladanyi@1921: };
ladanyi@1921: 
ladanyi@1921: int main() {
ladanyi@1921:   SimAnn simann;
ladanyi@1921:   SimpleController ctrl;
ladanyi@1921:   simann.setController(ctrl);
ladanyi@1921:   MyEntity ent;
ladanyi@1921:   simann.setEntity(ent);
ladanyi@1921:   simann.run();
ladanyi@1921: 
ladanyi@1921:   //MyEntity *best_ent = (MyEntity *) simann.getBestEntity();
ladanyi@1921:   //std::cout << best_ent->d << std::endl;
ladanyi@1921: 
ladanyi@1921:   SimAnn simann2;
ladanyi@1921:   AdvancedController ctrl2(2.0);
ladanyi@1921:   simann2.setController(ctrl2);
ladanyi@1921:   MyEntity ent2;
ladanyi@1921:   simann2.setEntity(ent2);
ladanyi@1921:   simann2.run();
ladanyi@1921: 
ladanyi@1921:   //MyEntity *best_ent2 = (MyEntity *) simann2.getBestEntity();
ladanyi@1921:   //std::cout << best_ent2->d << std::endl;
ladanyi@1921: 
ladanyi@1921:   return 0;
ladanyi@1921: }