ladanyi@918: #include "SimAnn.h" ladanyi@918: #include ladanyi@918: #include ladanyi@918: #include ladanyi@918: ladanyi@918: class MyController : public SimAnnBase::Controller { ladanyi@918: public: ladanyi@918: long MaxIter, MaxNoImpr; ladanyi@918: double af; ladanyi@918: MyController() { ladanyi@918: MaxIter = 500000; ladanyi@918: MaxNoImpr = 20000; ladanyi@918: af = 0.9999; ladanyi@918: T = 1000; ladanyi@918: } ladanyi@918: bool next() { ladanyi@918: T *= af; ladanyi@918: std::cout << T << std::endl; ladanyi@918: return !((sab->getIter() > MaxIter) || (sab->getIter() - sab->getLastImpr() > MaxNoImpr)); ladanyi@918: } ladanyi@918: bool accept(double cost) { ladanyi@918: return (drand48() <= exp(cost / T)); ladanyi@918: } ladanyi@918: }; ladanyi@918: ladanyi@918: class MyEntity { ladanyi@918: public: ladanyi@918: void init() {} ladanyi@918: double mutate() { return 10.0; } ladanyi@918: }; ladanyi@918: ladanyi@918: int main() { ladanyi@918: SimAnn sa; ladanyi@918: MyController c; ladanyi@918: sa.setController(c); ladanyi@918: MyEntity ent; ladanyi@918: sa.setEnt(ent); ladanyi@918: sa.run(); ladanyi@918: }