From fd4e20d54d83599fa6c732efa0e4d3dea5890d9f Mon Sep 17 00:00:00 2001 From: verel Date: Wed, 6 Feb 2013 14:30:42 +0100 Subject: [PATCH] changed the moMonOpPerturb --- mo/src/perturb/moMonOpPerturb.h | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/mo/src/perturb/moMonOpPerturb.h b/mo/src/perturb/moMonOpPerturb.h index c056bbf6a..93421f321 100644 --- a/mo/src/perturb/moMonOpPerturb.h +++ b/mo/src/perturb/moMonOpPerturb.h @@ -48,8 +48,9 @@ public: * Constructor * @param _monOp an eoMonOp (pertubation operator) * @param _fullEval a full evaluation function + * @param _nbPertubation number of operator execution for perturbation */ - moMonOpPerturb(eoMonOp& _monOp, eoEvalFunc& _fullEval):monOp(_monOp), fullEval(_fullEval) {} + moMonOpPerturb(eoMonOp& _monOp, eoEvalFunc& _fullEval, unsigned int _nbPertubation = 1):monOp(_monOp), fullEval(_fullEval), nbPertubation(_nbPertubation) {} /** * Apply monOp on the solution @@ -57,16 +58,22 @@ public: * @return value of monOp */ bool operator()(EOT& _solution) { - bool res = monOp(_solution); - _solution.invalidate(); - fullEval(_solution); - return res; + bool res = false; + + for(unsigned int i = 0; i < nbPerturbation; i++) + res = res || monOp(_solution); + + _solution.invalidate(); + fullEval(_solution); + + return res; } private: - /** monOp */ - eoMonOp& monOp; - eoEvalFunc& fullEval; + /** monOp */ + eoMonOp& monOp; + eoEvalFunc& fullEval; + unsigned int nbPertubation; }; #endif