Newsgroups: comp.ai.genetic
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!usenet.ins.cwru.edu!news.csuohio.edu!news
From: "Dave McIntyre" <mcintyre@grail.cba.csuohio.edu>
Subject: Re: Using GA to optimize highly constrained problems
Message-ID: <23421.mcintyre@grail.cba.csuohio.edu>
X-Minuet-Version: Minuet1.0_Beta_16
Sender: news@news.csuohio.edu (USENET News System)
X-Popmail-Charset: English
Reply-To: <mcintyre@cis.csuohio.edu>
Organization: Cleveland State University
Date: Fri, 7 Apr 1995 07:03:34 GMT
Lines: 59

I am somewhat familiar with the basics of GA as discussed in several chapters
of GOLDBERG's book, and I have a fairly basic question on GA.

THE PROBLEM
Many problems are heavily constrained problems.  As a result the encoded
chromosomes (binary) after crossover and after mutation for such problems
*often* decode back into infeasible solutions to the problem.  Of course
perhaps some information can be obtained even from infeasible solutions
through the use of a penalty method that degrades the fitness of the
unconstrained problem in relation to the degree of constraint violation.
But what if the number of feasible solutions is quite small in the space
of all solutions explored by GA? This is the problem I wish to address.

More specifically, I am looking at a problem that is trying to find an 
"optimal" or "near optimal" ordering of a list of n distinct items based upon 
some fitness criterion.  Clearly, if I merely choose the chromosome to
be a binary encoding of a list of n items (with names 1,2,..,n say) I quickly
encounter infeasible solutions after crossover since often the resulting
children will contain duplicate list elements.  Similarly after mutation.
I would imagine this sort of problem has been examined somewhere in the
literature?  Any pointers etc. would be helpful.

BACKGROUND
GA must be able to explore the entire space of feasible solutions.  Standard
implementations of GA allow the algorithm to cross and mutate random strings
of binary numbers within chromosomes thus potentially allowing the whole
space to be explored.  Thus each feasible solution of the original problem, 
which must be encodable into a binary equivalent upon which
GA operates, (assuming the encoding is a bijection) must then be potentially 
explored.

POTENTIAL APPROACH TO SUCH HEAVILY CONSTRAINED PROBLEMS
The general solution to such problems might be, after crossover or mutation,
to detect infeasible solutions and by some "random" means perturb the
offending child chromosomes into feasible chromosomes. The only danger here
(BUT UNFORTUNATELY A MOST IMPORTANT ONE) as I see it is that this altered
form of GA may not be allowed to explore the entire space.

The general solution, for example, on the list problem mentioned above:
Check the children after crossover.  Decode each child to see if duplicate
items exist.  If so scan the child to determine the set of missing items,
M, say.  Then scan the child from left to right replacing duplicates randomly
with an item from M. 

QUESTIONS
  a) Are there any flaws in the above approach to heavily constrained problems?
     (I would imagine that provided the GA is permitted to explore the entire
      space of feasible solutions no flaws could be found - Am I right in 
      this assumption?)

  b) Has the above "list ordering problem subject to some object function"
     been addressed using GA?

  c) Are there other approaches to solving these types of problems?

I thank you for any insight on this problem that you can give.

Dave, mcintyre@cis.csuohio.edu

