[Paradiseo-help] [Paradiseo-users] Hi, questions about setting the genome in EO/paradiseO

Johann Dréo johann at dreo.fr
Ven 14 Juin 09:20:50 CEST 2013


Just in case it would suits your needs, I've recently came up with a way to
handle "feasibility" of individuals within MOEO.

Saying it shortly, I've added some operators to MOEO that supports the use
of eoDualFitness. A dual fitness is basically a scalar (the value) and a
boolean (the feasibility). It guarantee that "feasible" individuals are
ALWAYS better than "unfeasible" ones, whatever the scale used for the
values.

This is useful if you cannot compute a fitness (and/or an objective, in
MOEO) for the "unfeasible" individuals, but still want to use a different
fitness, to bring them to feasibility.

Basically, what you should do to use this in MOEO is to use eoDualFitness
as your fitness type and as your base type for ObjectiveVector.
I've inherited the operators that manipulates those values so that they can
manipulate an eoDualFitness instead. There is now several moeo*Dual*
operators. I've only implemented what is necessary to use IBEA with dual
fitness/objectives at the moment.

I did not merged those patches in the official repo, because we are
currently debugging them, but if someone want to test, you can check out my
own repo: https://github.com/nojhan/paradiseo

Hope this helps someone.

-- 
Johann


On Mon, May 27, 2013 at 4:39 PM, Johann Dréo <johann at dreo.fr> wrote:

> Constraints handling is a domain really full of ideas [1], and (imho) we
> haven’t really thought on how to design a consistent way of handling
> constraints across the framework.
>
> The bounds management can be handled in EO by eo*Bounds-like classes or by
> the (slightly different) eoGeneral*Bounds-like classes. In the EDO module,
> we've added recently a more modular way of handling constraints with
> "bounders" which more or less duplicate of bounds in EO (that's bad,
> indeed) and "repairers". Repairers are generic operators to modify a
> "unfeasible" solution (that violates some constraints) into a "feasible"
> one.
> I plan to move those classes from EDO to EO, but maybe we should refactor
> bounds management into a single system before.
>
> That being said, I'm really interested by any thoughts on how to design a
> _good_ constraint handling set of operators (at least for bounds
> management) for paradiseo (particularly if it is possible to integrate it
> easily with MO and/or MOEO). If you have some thoughts on that, they will
> be more than welcome.
>
> [1] see this nice tutorial of Carlos A. Coello Coello:
> http://www.ceng.metu.edu.tr/courses/ceng713/documents/gecco-constraint-handling-ea.pdf
>
> --
> Johann
>
>
> On Mon, May 27, 2013 at 3:07 AM, Zhuoran Zhao <zhuoran at utexas.edu> wrote:
>
>> Hey,
>> Thanks again for the reply.
>> More specifically, when I look into the Sch1 in the MOEO example(Lesson1
>> min x^2 and min (X-2)^2), there are some operation to specify the bound of
>> gene on the genome like below:
>> *    eoRealVectorBounds bounds(1, 0.0, 2.0);     **//a vector of
>> eoRealBounds ptr to specify certain bound*
>> *    eoRealInitBounded < Sch1 > init (bounds); // inherit some methods
>> to provide the bound information to the following mutation and crossover
>> *
>> *   ** eoPop < Sch1 > pop (POP_SIZE, init);*
>> The lines above are using a vector of eoRealBounds to initialize the
>> population. I have not found any corresponding "int version" like "*
>> eoIntVectorBounds*" or "*eoIntInitBounded*" so I just modified
>> the eoIntVectorBounds.h(give the *uniform *method ability to take in a
>> vector of int type) to get the capacity to initialize a integer genome
>> class like below:
>>
>> *class Sch1 : public moeoIntVector < Sch1ObjectiveVector >*
>> *{public:*
>> *Sch1() : moeoIntVector < Sch1ObjectiveVector > (1)  {}};*
>> *
>> *
>> It seems work fine for me, but at the same time I am still try to figure
>> out whether I have missed something or there are some well built API to
>> realize the stuff I describe above.
>> Any comments will be helpful.
>>
>> Thanks
>>
>> Zhuoran
>>
>>
>>
>> On Sat, May 25, 2013 at 10:08 AM, Zhuoran Zhao <zhuoran at utexas.edu>wrote:
>>
>>> I see Johann.
>>> Thanks, it is very helpful, I have noticed that and am trying to play
>>> with this module.
>>> Thanks for the reply : )
>>>
>>> Zhuoran
>>>
>>>
>>> On Sat, May 25, 2013 at 10:02 AM, Johann Dréo <johann at dreo.fr> wrote:
>>>
>>>> The eoIntBounds is supposed to do that:
>>>> http://eodev.sourceforge.net/eo/doc/html/classeo_int_bounds.html
>>>>
>>>> Note that the bound management is not completely consistent across the
>>>> framework, I'm not sure whether this is fully compatible with MOEO at the
>>>> moment. But that's definitely on our TODO list to refactor bounds
>>>> management for all the modules (some help would be appreciated ;).
>>>>
>>>> --
>>>> Johann
>>>>
>>>>
>>>> On Fri, May 24, 2013 at 9:25 PM, Zhuoran Zhao <zhuoran at utexas.edu>wrote:
>>>>
>>>>> Hi,
>>>>> I am a student from University of Texas, Austin.
>>>>> I am a research assistant in Professor Andreas Gerstlauer's group.
>>>>> Currently we are going to use some MOEA frameworks to do some architecture
>>>>> model calibration work.
>>>>> I am very very interested in the multi-objective EA lib paradisEO, but
>>>>> I do have a question:
>>>>>
>>>>> As in our case , each gene on a genome should be picked out from a
>>>>> certain range of integer value, is there some way I could specify the range
>>>>> of each individual integer type gene (or segmentation of a binary genes) in
>>>>> EO/paradiseO.
>>>>> I do see some examples to specify the real number gene range, could
>>>>> these be applied for integer type?
>>>>>
>>>>> Any suggestions or hints will be really helpful.
>>>>>
>>>>> Zhuoran
>>>>>
>>>>>
>>>>> --
>>>>> Zhuoran Zhao
>>>>> Department of Electrical and Computer Engineering, University of Texas
>>>>> at Austin,
>>>>> Institute of VLSI Design, Zhejiang University, China,
>>>>> Advanced Honor Class of Engineering Education, Zhejiang University,
>>>>> China.
>>>>> Cellphone: (+1)512-751-1819
>>>>> Other Email: zoranzhao at gmail.com
>>>>>  Skype: zhuoran.zhao
>>>>>
>>>>> _______________________________________________
>>>>> Paradiseo-help mailing list
>>>>> Paradiseo-help at lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Zhuoran Zhao
>>> Department of Electrical and Computer Engineering, University of Texas
>>> at Austin,
>>> Institute of VLSI Design, Zhejiang University, China,
>>> Advanced Honor Class of Engineering Education, Zhejiang University,
>>> China.
>>> Cellphone: (+1)512-751-1819
>>> Other Email: zoranzhao at gmail.com
>>> Skype: zhuoran.zhao
>>>
>>
>>
>>
>> --
>> Zhuoran Zhao
>> Department of Electrical and Computer Engineering, University of Texas at
>> Austin,
>> Institute of VLSI Design, Zhejiang University, China,
>> Advanced Honor Class of Engineering Education, Zhejiang University,
>> China.
>> Cellphone: (+1)512-751-1819
>> Other Email: zoranzhao at gmail.com
>>  Skype: zhuoran.zhao
>>
>
>
>
> --
>
>



--
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.gforge.inria.fr/pipermail/paradiseo-help/attachments/20130614/553d9ec4/attachment.html>
-------------- section suivante --------------
_______________________________________________
Paradiseo-users mailing list
Paradiseo-users at lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-users


Plus d'informations sur la liste de diffusion Paradiseo-help