Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  IloSearchSelector

    Posted 10/22/08 03:01 PM

    Originally posted by: SystemAdmin


    [anahana said:]

    Hi,

    I am trying to create a search selector that randomly selects a solution from a neighborhood. Any idea what I should use?
    I found the function IloRandomize, but it does not return a random solution, it returns a random neighborhood

    Regards,
    #CPOptimizer
    #DecisionOptimization


  • 2.  Re: IloSearchSelector

    Posted 10/27/08 11:44 PM

    Originally posted by: SystemAdmin


    [shaw said:]

    Hello,

    I'm not sure that I fully understand.  Are you using local search (IloNHood,
    IloSingleMove and so on)?  If so, it sounds like IloRandomize is what you need.
    IloRandomize returns a neighborhood which is randomized version of another.
    That is, IloRandomize(nh) returns a neighborhood which has the same neighbours
    as nh, but which will be explored in a random order at each move.
    When you then use the neighborhood, you will choose the first neighbour which
    meets the acceptance criteria.  As the neighbourhood is randomized, this is
    equivalent to choosing a random legal neighbour.


    Paul.

    #CPOptimizer
    #DecisionOptimization


  • 3.  Re: IloSearchSelector

    Posted 10/28/08 10:15 AM

    Originally posted by: SystemAdmin


    [anahana said:]

    Good morning Paul,

    Yes, I am using IloSingleMove to build a metaheuristic (Variable Neighborhood Search to be more specific) and part of it requires selecting a randome solution from a neighborhood. I used IloSingleMove which takes an argument IloSearchSelector that determines which solution is selected from the current neighborhood. The search selectors that I am aware of are: IloFirstSolution, IloMaximizeVar, and IloMinimizeVar, but non of them selects a random solution from the neighborhood. Now, can IloRandomize be used as the search selector argument in IloSingleMove? I think it can not as its return data type is IloNHood.

    Can you help me?

    Regards,
    #CPOptimizer
    #DecisionOptimization


  • 4.  Re: IloSearchSelector

    Posted 10/28/08 01:00 PM

    Originally posted by: SystemAdmin


    [shaw said:]

    Hello again,

    By randomizing the order of your neighborhood and then picking the first neighbor
    (IloFirstSolution), you are doing the same thing as picking a random solution from
    the neighborhood.  Note that if you are doing VNS, then I think you should randomize
    each sub-neighborhood individually.  For example:

    IloNHood bigNHood = IloRandomize(env, nhood1) + IloRandomize(env, nhood2) + IloRandomize(env, nhood3)

    If you then select using IloFirstSolution, you will get a random solution from nhood1 if
    one exists, otherwise you will get a random solution from nhood2 if one exists, otherwise
    you will get a random solution from nhood3 if one exists.

    Is it any clearer?


    Paul
    #CPOptimizer
    #DecisionOptimization


  • 5.  Re: IloSearchSelector

    Posted 10/28/08 04:20 PM

    Originally posted by: SystemAdmin


    [anahana said:]

    Thanks for getting back to me so soon.

    I get your point now; I should randomize the neighborhood(s) first then select a solutioin. As for your note on VNS, you are right I should randomize each neighborhood seperately, but I have to do it within a loop so as to incorporate local search at some point.

    Thanks again for the help
    #CPOptimizer
    #DecisionOptimization