# ParadisEO-MOEOMovingObjects: FlowShopEval.h Source File

# FlowShopEval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    00002
    00003 //-----------------------------------------------------------------------------
    00004 // FlowShopEval.h
    00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
    00006 /*
    00007     This library...
    00008
    00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
    00010  */
    00011 //-----------------------------------------------------------------------------
    00012
    00013 #ifndef FLOWSHOPEVAL_H_
    00014 #define FLOWSHOPEVAL_H_
    00015
    00016 #include <vector>
    00017 #include <core/moeoEvalFunc.h>
    00018 #include <FlowShop.h>
    00019
    00023 class FlowShopEval : public moeoEvalFunc<FlowShop>
    00024 {
    00025 public:
    00026
    00034     FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector<unsigned int> > & _p, const std::vector<unsigned int> & _d);
    00035
    00036
    00041     void operator()(FlowShop & _flowshop);
    00042
    00043
    00044 private:
    00045
    00047     unsigned int M;
    00049     unsigned int N;
    00051     std::vector< std::vector < unsigned int > > p;
    00053     std::vector < unsigned int > d;
    00054
    00055
    00060     double makespan(const FlowShop & _flowshop);
    00061
    00062
    00067     double tardiness(const FlowShop & _flowshop);
    00068
    00069
    00075     std::vector< std::vector<unsigned int> > completionTime (const FlowShop & _flowshop);
    00076
    00077 };
    00078
    00079 #endif /*FLOWSHOPEVAL_H_*/