1
by Martin Pitt
Import upstream version 9.1~beta1 |
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2 |
<HTML |
|
3 |
><HEAD |
|
4 |
><TITLE |
|
5 |
>Genetic Algorithms</TITLE |
|
6 |
><META |
|
7 |
NAME="GENERATOR" |
|
8 |
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK |
|
9 |
REV="MADE" |
|
10 |
HREF="mailto:pgsql-docs@postgresql.org"><LINK |
|
11 |
REL="HOME" |
|
1.1.11
by Martin Pitt
Import upstream version 9.1.9 |
12 |
TITLE="PostgreSQL 9.1.9 Documentation" |
1
by Martin Pitt
Import upstream version 9.1~beta1 |
13 |
HREF="index.html"><LINK |
14 |
REL="UP" |
|
15 |
TITLE="Genetic Query Optimizer" |
|
16 |
HREF="geqo.html"><LINK |
|
17 |
REL="PREVIOUS" |
|
18 |
TITLE="Query Handling as a Complex Optimization Problem" |
|
19 |
HREF="geqo-intro.html"><LINK |
|
20 |
REL="NEXT" |
|
21 |
TITLE="Genetic Query Optimization (GEQO) in PostgreSQL" |
|
22 |
HREF="geqo-pg-intro.html"><LINK |
|
23 |
REL="STYLESHEET" |
|
24 |
TYPE="text/css" |
|
25 |
HREF="stylesheet.css"><META |
|
26 |
HTTP-EQUIV="Content-Type" |
|
27 |
CONTENT="text/html; charset=ISO-8859-1"><META |
|
28 |
NAME="creation" |
|
1.1.11
by Martin Pitt
Import upstream version 9.1.9 |
29 |
CONTENT="2013-04-01T18:35:08"></HEAD |
1
by Martin Pitt
Import upstream version 9.1~beta1 |
30 |
><BODY |
31 |
CLASS="SECT1" |
|
32 |
><DIV |
|
33 |
CLASS="NAVHEADER" |
|
34 |
><TABLE |
|
35 |
SUMMARY="Header navigation table" |
|
36 |
WIDTH="100%" |
|
37 |
BORDER="0" |
|
38 |
CELLPADDING="0" |
|
39 |
CELLSPACING="0" |
|
40 |
><TR |
|
41 |
><TH |
|
42 |
COLSPAN="5" |
|
43 |
ALIGN="center" |
|
44 |
VALIGN="bottom" |
|
45 |
><A |
|
46 |
HREF="index.html" |
|
1.1.11
by Martin Pitt
Import upstream version 9.1.9 |
47 |
>PostgreSQL 9.1.9 Documentation</A |
1
by Martin Pitt
Import upstream version 9.1~beta1 |
48 |
></TH |
49 |
></TR |
|
50 |
><TR |
|
51 |
><TD |
|
52 |
WIDTH="10%" |
|
53 |
ALIGN="left" |
|
54 |
VALIGN="top" |
|
55 |
><A |
|
56 |
TITLE="Query Handling as a Complex Optimization Problem" |
|
57 |
HREF="geqo-intro.html" |
|
58 |
ACCESSKEY="P" |
|
59 |
>Prev</A |
|
60 |
></TD |
|
61 |
><TD |
|
62 |
WIDTH="10%" |
|
63 |
ALIGN="left" |
|
64 |
VALIGN="top" |
|
65 |
><A |
|
66 |
HREF="geqo.html" |
|
1.1.6
by Martin Pitt
Import upstream version 9.1.2 |
67 |
ACCESSKEY="U" |
68 |
>Up</A |
|
1
by Martin Pitt
Import upstream version 9.1~beta1 |
69 |
></TD |
70 |
><TD |
|
71 |
WIDTH="60%" |
|
72 |
ALIGN="center" |
|
73 |
VALIGN="bottom" |
|
74 |
>Chapter 51. Genetic Query Optimizer</TD |
|
75 |
><TD |
|
1.1.6
by Martin Pitt
Import upstream version 9.1.2 |
76 |
WIDTH="20%" |
1
by Martin Pitt
Import upstream version 9.1~beta1 |
77 |
ALIGN="right" |
78 |
VALIGN="top" |
|
79 |
><A |
|
80 |
TITLE="Genetic Query Optimization (GEQO) in PostgreSQL" |
|
81 |
HREF="geqo-pg-intro.html" |
|
82 |
ACCESSKEY="N" |
|
83 |
>Next</A |
|
84 |
></TD |
|
85 |
></TR |
|
86 |
></TABLE |
|
87 |
><HR |
|
88 |
ALIGN="LEFT" |
|
89 |
WIDTH="100%"></DIV |
|
90 |
><DIV |
|
91 |
CLASS="SECT1" |
|
92 |
><H1 |
|
93 |
CLASS="SECT1" |
|
94 |
><A |
|
95 |
NAME="GEQO-INTRO2" |
|
96 |
>51.2. Genetic Algorithms</A |
|
97 |
></H1 |
|
98 |
><P |
|
99 |
> The genetic algorithm (<ACRONYM |
|
100 |
CLASS="ACRONYM" |
|
101 |
>GA</ACRONYM |
|
102 |
>) is a heuristic optimization method which
|
|
103 |
operates through randomized search. The set of possible solutions for the |
|
104 |
optimization problem is considered as a |
|
105 |
<I |
|
106 |
CLASS="FIRSTTERM" |
|
107 |
>population</I |
|
108 |
> of <I |
|
109 |
CLASS="FIRSTTERM" |
|
110 |
>individuals</I |
|
111 |
>.
|
|
112 |
The degree of adaptation of an individual to its environment is specified |
|
113 |
by its <I |
|
114 |
CLASS="FIRSTTERM" |
|
115 |
>fitness</I |
|
116 |
>.
|
|
117 |
</P |
|
118 |
><P |
|
119 |
> The coordinates of an individual in the search space are represented
|
|
120 |
by <I |
|
121 |
CLASS="FIRSTTERM" |
|
122 |
>chromosomes</I |
|
123 |
>, in essence a set of character
|
|
124 |
strings. A <I |
|
125 |
CLASS="FIRSTTERM" |
|
126 |
>gene</I |
|
127 |
> is a
|
|
128 |
subsection of a chromosome which encodes the value of a single parameter |
|
129 |
being optimized. Typical encodings for a gene could be <I |
|
130 |
CLASS="FIRSTTERM" |
|
131 |
>binary</I |
|
132 |
> or
|
|
133 |
<I |
|
134 |
CLASS="FIRSTTERM" |
|
135 |
>integer</I |
|
136 |
>.
|
|
137 |
</P |
|
138 |
><P |
|
139 |
> Through simulation of the evolutionary operations <I |
|
140 |
CLASS="FIRSTTERM" |
|
141 |
>recombination</I |
|
142 |
>,
|
|
143 |
<I |
|
144 |
CLASS="FIRSTTERM" |
|
145 |
>mutation</I |
|
146 |
>, and
|
|
147 |
<I |
|
148 |
CLASS="FIRSTTERM" |
|
149 |
>selection</I |
|
150 |
> new generations of search points are found
|
|
151 |
that show a higher average fitness than their ancestors. |
|
152 |
</P |
|
153 |
><P |
|
154 |
> According to the <SPAN |
|
155 |
CLASS="SYSTEMITEM" |
|
156 |
>comp.ai.genetic</SPAN |
|
157 |
> <ACRONYM |
|
158 |
CLASS="ACRONYM" |
|
159 |
>FAQ</ACRONYM |
|
160 |
> it cannot be stressed too
|
|
161 |
strongly that a <ACRONYM |
|
162 |
CLASS="ACRONYM" |
|
163 |
>GA</ACRONYM |
|
164 |
> is not a pure random search for a solution to a
|
|
165 |
problem. A <ACRONYM |
|
166 |
CLASS="ACRONYM" |
|
167 |
>GA</ACRONYM |
|
168 |
> uses stochastic processes, but the result is distinctly
|
|
169 |
non-random (better than random). |
|
170 |
</P |
|
171 |
><DIV |
|
172 |
CLASS="FIGURE" |
|
173 |
><A |
|
174 |
NAME="GEQO-DIAGRAM" |
|
175 |
></A |
|
176 |
><P |
|
177 |
><B |
|
178 |
>Figure 51-1. Structured Diagram of a Genetic Algorithm</B |
|
179 |
></P |
|
180 |
><DIV |
|
181 |
CLASS="INFORMALTABLE" |
|
182 |
><P |
|
183 |
></P |
|
184 |
><A |
|
1.1.11
by Martin Pitt
Import upstream version 9.1.9 |
185 |
NAME="AEN93857" |
1
by Martin Pitt
Import upstream version 9.1~beta1 |
186 |
></A |
187 |
><TABLE |
|
188 |
BORDER="0" |
|
189 |
FRAME="void" |
|
190 |
CLASS="CALSTABLE" |
|
191 |
><COL><COL><TBODY |
|
192 |
><TR |
|
193 |
><TD |
|
194 |
>P(t)</TD |
|
195 |
><TD |
|
196 |
>generation of ancestors at a time t</TD |
|
197 |
></TR |
|
198 |
><TR |
|
199 |
><TD |
|
200 |
>P''(t)</TD |
|
201 |
><TD |
|
202 |
>generation of descendants at a time t</TD |
|
203 |
></TR |
|
204 |
></TBODY |
|
205 |
></TABLE |
|
206 |
><P |
|
207 |
></P |
|
208 |
></DIV |
|
209 |
><PRE |
|
210 |
CLASS="LITERALLAYOUT" |
|
211 |
>+=========================================+
|
|
212 |
|>>>>>>>>>>> Algorithm GA <<<<<<<<<<<<<<| |
|
213 |
+=========================================+ |
|
214 |
| INITIALIZE t := 0 | |
|
215 |
+=========================================+ |
|
216 |
| INITIALIZE P(t) | |
|
217 |
+=========================================+ |
|
218 |
| evaluate FITNESS of P(t) | |
|
219 |
+=========================================+ |
|
220 |
| while not STOPPING CRITERION do | |
|
221 |
| +-------------------------------------+ |
|
222 |
| | P'(t) := RECOMBINATION{P(t)} | |
|
223 |
| +-------------------------------------+ |
|
224 |
| | P''(t) := MUTATION{P'(t)} | |
|
225 |
| +-------------------------------------+ |
|
226 |
| | P(t+1) := SELECTION{P''(t) + P(t)} | |
|
227 |
| +-------------------------------------+ |
|
228 |
| | evaluate FITNESS of P''(t) | |
|
229 |
| +-------------------------------------+ |
|
230 |
| | t := t + 1 | |
|
231 |
+===+=====================================+</PRE |
|
232 |
></DIV |
|
233 |
></DIV |
|
234 |
><DIV |
|
235 |
CLASS="NAVFOOTER" |
|
236 |
><HR |
|
237 |
ALIGN="LEFT" |
|
238 |
WIDTH="100%"><TABLE |
|
239 |
SUMMARY="Footer navigation table" |
|
240 |
WIDTH="100%" |
|
241 |
BORDER="0" |
|
242 |
CELLPADDING="0" |
|
243 |
CELLSPACING="0" |
|
244 |
><TR |
|
245 |
><TD |
|
246 |
WIDTH="33%" |
|
247 |
ALIGN="left" |
|
248 |
VALIGN="top" |
|
249 |
><A |
|
250 |
HREF="geqo-intro.html" |
|
251 |
ACCESSKEY="P" |
|
252 |
>Prev</A |
|
253 |
></TD |
|
254 |
><TD |
|
255 |
WIDTH="34%" |
|
256 |
ALIGN="center" |
|
257 |
VALIGN="top" |
|
258 |
><A |
|
259 |
HREF="index.html" |
|
260 |
ACCESSKEY="H" |
|
261 |
>Home</A |
|
262 |
></TD |
|
263 |
><TD |
|
264 |
WIDTH="33%" |
|
265 |
ALIGN="right" |
|
266 |
VALIGN="top" |
|
267 |
><A |
|
268 |
HREF="geqo-pg-intro.html" |
|
269 |
ACCESSKEY="N" |
|
270 |
>Next</A |
|
271 |
></TD |
|
272 |
></TR |
|
273 |
><TR |
|
274 |
><TD |
|
275 |
WIDTH="33%" |
|
276 |
ALIGN="left" |
|
277 |
VALIGN="top" |
|
278 |
>Query Handling as a Complex Optimization Problem</TD |
|
279 |
><TD |
|
280 |
WIDTH="34%" |
|
281 |
ALIGN="center" |
|
282 |
VALIGN="top" |
|
283 |
><A |
|
284 |
HREF="geqo.html" |
|
285 |
ACCESSKEY="U" |
|
286 |
>Up</A |
|
287 |
></TD |
|
288 |
><TD |
|
289 |
WIDTH="33%" |
|
290 |
ALIGN="right" |
|
291 |
VALIGN="top" |
|
292 |
>Genetic Query Optimization (<ACRONYM |
|
293 |
CLASS="ACRONYM" |
|
294 |
>GEQO</ACRONYM |
|
295 |
>) in PostgreSQL</TD |
|
296 |
></TR |
|
297 |
></TABLE |
|
298 |
></DIV |
|
299 |
></BODY |
|
300 |
></HTML |
|
301 |
>
|