📄 170-173.html
字号:
<HTML>
<HEAD>
<META name=vsisbn content="0849398010">
<META name=vstitle content="Industrial Applications of Genetic Algorithms">
<META name=vsauthor content="Charles Karr; L. Michael Freeman">
<META name=vsimprint content="CRC Press">
<META name=vspublisher content="CRC Press LLC">
<META name=vspubdate content="12/01/98">
<META name=vscategory content="Web and Software Development: Artificial Intelligence: Other">
<TITLE>Industrial Applications of Genetic Algorithms:Data Mining Using Genetic Algorithms</TITLE>
<!-- HEADER -->
<STYLE type="text/css">
<!--
A:hover {
color : Red;
}
-->
</STYLE>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<!--ISBN=0849398010//-->
<!--TITLE=Industrial Applications of Genetic Algorithms//-->
<!--AUTHOR=Charles Karr//-->
<!--AUTHOR=L. Michael Freeman//-->
<!--PUBLISHER=CRC Press LLC//-->
<!--IMPRINT=CRC Press//-->
<!--CHAPTER=9//-->
<!--PAGES=170-173//-->
<!--UNASSIGNED1//-->
<!--UNASSIGNED2//-->
<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="168-170.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="173-176.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>
<P><BR></P>
<P><B>Crossover Operator</B></P>
<P>Crossover is used to improve the population fitness by introducing new strings into the population. Thus, the crossover operator for this problem had to introduce new item combination strings into the population. Due to the fact that the sub-strings (item numbers) within a coded string must be preserved, possible cross sites exist at the item boundaries within a string, as shown by points A, B, and C below:
</P>
<P><A NAME="Fig5"></A><A HREF="javascript:displayWindow('images/09-05.jpg',400,106)"><IMG SRC="images/09-05t.jpg"></A></P>
<P>In determining a crossover operator for this application, it was important to consider the fact that duplicate item numbers cannot exist within a string since this would represent an invalid combination of items. For example, if the following two strings were crossed using simple crossover and a cross site as noted by A,
</P>
<P><A NAME="Fig6"></A><A HREF="javascript:displayWindow('images/09-06.jpg',400,113)"><IMG SRC="images/09-06t.jpg"></A></P>
<P>strings 1′ and 2′ would result, as shown:
</P>
<P><A NAME="Fig7"></A><A HREF="javascript:displayWindow('images/09-07.jpg',450,72)"><IMG SRC="images/09-07t.jpg"></A></P>
<P>Note that the resulting string 1′ only contains three different item numbers (04, 21, and 24) instead of four.
</P>
<P>Given this consideration, it was obvious that a simple single point crossover operator would not be adequate. Crossover operators such as partially matched crossover, or PMX [7], and ordered crossover [7] ensure that duplicates do not occur in children strings. However, these crossover operators require that each parent string contain the same characters. The situation in the data mining problem, however, is slightly different in that every item in the first string may, or may not, be in the second string. Considering this fact, two different crossover operators were developed for examination: aligned single-point crossover (ASPX) and unmatched crossover with single child offspring (UXSCO), each of which is described below. The results of simulations run with each of these crossover operators are discussed in the section, “Crossover Operator Simulation Results.” Those results show that the ASPX crossover operator provided very good performance, better than the UXSCO operator.</P>
<P><I>Aligned Single-Point Crossover (ASPX)</I></P>
<P>Recall that the main goal of our crossover operator is that it produces children strings which do not contain duplicate item numbers. This goal can be achieved with aligned single point crossover as follows: Two parent strings, such as those shown below, are chosen at random from the current population.</P>
<P><A NAME="Fig8"></A><A HREF="javascript:displayWindow('images/09-08.jpg',400,63)"><IMG SRC="images/09-08t.jpg"></A></P>
<P>Next, since the order of the item numbers within a string is not important, a string can be rearranged without affecting its fitness value. Thus, the item numbers in string 2 are rearranged such that each item number that has a corresponding match in string 1 is aligned with that item number. In this example, the 10 and 20 in string 2 are matched in string 1 and would thus be aligned, as follows:
</P>
<P><A NAME="Fig9"></A><A HREF="javascript:displayWindow('images/09-09.jpg',400,64)"><IMG SRC="images/09-09t.jpg"></A></P>
<P>Now, since all matching item numbers are aligned between the two strings, basic single-point crossover can be performed and guarantees that no duplicates occur in either child string. For example, if a cross site is chosen at point A,
</P>
<P><A NAME="Fig10"></A><A HREF="javascript:displayWindow('images/09-10.jpg',400,64)"><IMG SRC="images/09-10t.jpg"></A></P>
<P>the following children strings will result and no duplicates will be present.
</P>
<P><A NAME="Fig11"></A><A HREF="javascript:displayWindow('images/09-11.jpg',400,64)"><IMG SRC="images/09-11t.jpg"></A></P>
<P><I>Unmatched Crossover with Single Child Offspring (UXSCO)</I></P>
<P>As with aligned single-point crossover, unmatched crossover with single child offspring operates with the main goal of producing children strings which do not contain duplicate item numbers. In unmatched crossover with single child offspring, this is achieved as follows: Again, two parent strings are chosen, at random, from the current population. Next, it is determined if there are any matching items between the two strings. As part of this determination, the item numbers that are matched between the two strings are saved. In addition, the item numbers in string 2 that do not match any items in string 1 are saved. Next, a random number, X, between one and the number of items that are unmatched is generated. If there are zero unmatched items (the parent strings are identical) then X will be zero and no crossover will take place. If there are greater than zero unmatched items (the parent strings are not identical), then X unmatched item numbers from parent 2 are copied to random locations in child 1. Following the copy of X items to child 1, child 2 will be equal to parent 2 (there is a single new offspring, child 1). The following example demonstrates the operation of unmatched crossover with single child offspring:</P>
<P>Assume the following two strings, which possess two matched items (10 and 20) and two unmatched items, were chosen:</P>
<P><A NAME="Fig12"></A><A HREF="javascript:displayWindow('images/09-12.jpg',400,62)"><IMG SRC="images/09-12t.jpg"></A></P>
<P>Next, assume that choosing a random number between 1 and the number of unmatched items (two) results in X equal to two. Then, two unmatched items from string 2 (88 and 99) are copied to two random locations in string 1. Assuming the random locations are one and three, the following children strings will result:
</P>
<P><A NAME="Fig13"></A><A HREF="javascript:displayWindow('images/09-13.jpg',400,64)"><IMG SRC="images/09-13t.jpg"></A></P>
<P>By performing crossover in this manner, it is guaranteed that no duplicate item numbers will appear in a string.
</P>
<P><I>Crossover Operator Support of Coding Scheme</I></P>
<P>Both the ASPX and UXSCO operators supported the choice of a decimal coding over a binary coding. Since the goal of crossover is to create strings with new item number combinations, there would be no advantage to allowing crossover to occur at sites other than between item number boundaries. Given this, there would be no advantage to having a string coded in binary form since no additional “useful” schemata would be processed. Using a binary coding, more schemata would be available for processing by the genetic algorithm, however, the additional available schemata would represent strings that are not possible solutions to the problem.</P>
<P><B>Mutation Operator</B></P>
<P>With the use of a base-10 coding as previously described, an alternate method of mutation was required. In a typical binary coding, mutation is simple in that if it is determined that mutation should take place, a 1 is mutated to a 0, and a 0 is mutated to a 1. In a base-10 coding, however, a method to mutate a decimal value between 0 and 99 must be determined. The following alternatives were considered:
</P>
<DL>
<DD><B>1)</B> generate a random number between 0 and 99 (“random” mutation)
<DD><B>2)</B> generate a new number within some ±δ of the number being mutated (“window” mutation)
</DL>
<P>In an effort to determine if there was an advantage of one mutation operator over the other, each was examined through simulations and the results are discussed in the section, “Mutation Operator Simulation Results.” For the most part, each mutation operator performed equally well.
</P><P><BR></P>
<CENTER>
<TABLE BORDER>
<TR>
<TD><A HREF="168-170.html">Previous</A></TD>
<TD><A HREF="../ewtoc.html">Table of Contents</A></TD>
<TD><A HREF="173-176.html">Next</A></TD>
</TR>
</TABLE>
</CENTER>
<hr width="90%" size="1" noshade>
<div align="center">
<font face="Verdana,sans-serif" size="1">Copyright © <a href="/reference/crc00001.html">CRC Press LLC</a></font>
</div>
<!-- all of the reference materials (books) have the footer and subfoot reveresed -->
<!-- reference_subfoot = footer -->
<!-- reference_footer = subfoot -->
</BODY>
</HTML>
<!-- END FOOTER -->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -