\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{jlobera.up} \pdfinfo{ /Title (metaheuristics-cheat-sheets.pdf) /Creator (Cheatography) /Author (jlobera.up) /Subject (Metaheuristics: s Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{BAB89E} \definecolor{LightBackground}{HTML}{F6F6F2} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Metaheuristics: s Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{jlobera.up} via \textcolor{DarkBackground}{\uline{cheatography.com/169448/cs/35487/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}jlobera.up \\ \uline{cheatography.com/jlobera-up} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 16th November, 2022.\\ Updated 15th September, 2024.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolutionary Computation}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolutionary Computing}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Evolutionary Computing is a research area within {\bf{computer science}}. As the name suggests, it is inspired by {\emph{Darwin's theory of natural evolution}}. \newline % Row Count 4 (+ 4) In an environment with limited resources, the {\bf{fittest individuals survive}}. Also, they have more chances to have {\bf{offspring}}.% Row Count 7 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Evolutive Algorithms Terminology}} \tn % Row 0 \SetRowColor{LightBackground} Individual & Represents a solution \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Phenotype & The representation of an individual \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Genotype & The representation used for solving the problem \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Gene & A simple value from the genotype \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} Fitness & A numeric value that represents the quality of the solution \tn % Row Count 10 (+ 3) % Row 5 \SetRowColor{white} Population & It is a group of individuals that recombine and mutate their properties. The initial population is randomly created \tn % Row Count 15 (+ 5) % Row 6 \SetRowColor{LightBackground} Selection of parents: & The parents must be selected based on their fitness \tn % Row Count 18 (+ 3) % Row 7 \SetRowColor{white} Crossover (Reproduction) & The parents inherit their characteristics to their offspring. \tn % Row Count 21 (+ 3) % Row 8 \SetRowColor{LightBackground} Mutation & Individuals modify their characteristics or behavior to improve themselves \tn % Row Count 25 (+ 4) % Row 9 \SetRowColor{white} Survival & The fittness. individuals survive and can live more time \tn % Row Count 28 (+ 3) % Row 10 \SetRowColor{LightBackground} Termination Condition & If you know the value of good fitness, the algorithm can stop when you find an individual with good fitness \tn % Row Count 33 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Pseudocode}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{BEGIN \newline INITIALISE population with random candidate solutions; \newline EVALUATE each candidate; \newline REPEAT UNTIL ( TERMINATION CONDITION is satisfied ) DO \newline 1 SELECT parents; \newline 2 RECOMBINE pairs of parents; \newline 3 MUTATE the resulting offspring; \newline 4 EVALUATE new candidates; \newline 5 SELECT individuals for the next generation; \newline OD \newline END} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolutionary Programming (EP)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolutionary Programming (EP)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{In the classical example of EP, predictors were evolved in the form of finite state machines. \newline % Row Count 2 (+ 2) A {\emph{finite state machine}} (FSM) is a transducer that can be stimulated by a finite alphabet of input symbols and can respond in a finite alphabet of output symbols. \newline % Row Count 6 (+ 4) It consists of a number of states S and a number of state transitions. \newline % Row Count 8 (+ 2) The state transitions define the working of the FSM: depending on the current state and the current input symbol, they define an output symbol and the next state to go to.% Row Count 12 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Mutation operators to generate new FSMs}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The idea was evolving finite state machines (FSMs). There are five generally usable mutation operators to generate new FSMs:} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Changing an output symbol} \tn % Row Count 4 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Changing a state transition} \tn % Row Count 5 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Adding a state} \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Deleting a state} \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Changing the initial state} \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.54287 cm} x{3.43413 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Evolutionary Programming Terminology}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Representation} & Real-valued vectors \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} Parent selection & Deterministic (each parent creates one offspring via mutation) \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} \seqsplit{Recombination} & None \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} Mutation & Gaussian perturbation \tn % Row Count 8 (+ 1) % Row 4 \SetRowColor{LightBackground} Survivor selection & (πœ‡ + πœ‡) \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} Specialty & Self-adaptation of mutation step sizes \tn % Row Count 12 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Particle Swarm Optimization}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Particle Swarm Optimization}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Inspired by the movement of a flock of birds when searching for food.% Row Count 2 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Particle Representation}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Each particle 𝑖 represents a solution for the problem. In the time t, it has a position π‘₯𝑖 (𝑑) ∈ ℝ𝑑 and a velocity 𝑣𝑖 ∈ ℝ𝑑.% Row Count 4 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Position and Velocity Update}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{The positions and velocities are updated following the next equations, where 𝑃𝑏𝑒𝑠𝑑 𝑖 is the best position where the particle 𝑖 has been, 𝐺𝑏𝑒𝑠𝑑 is the best location founded until the moment, π‘Ÿ1 π‘Žπ‘›π‘‘ π‘Ÿ2 are random numbers between 0 and 1, and 𝑀, 𝑐1, π‘Žπ‘›π‘‘ 𝑐2 are hyper parameters. Those last values can be initialized at 0.9 and gradually reducing it until 0.1.% Row Count 9 (+ 9) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Genetic Algorithms (GA)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Genetic Algorithms (GA)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{John Holland proposed genetic Algorithms in the 1970s. Initially, they were called {\emph{"Reproductive Plans."}} These algorithms are maybe the most famous of the evolutive algorithms family. \newline % Row Count 4 (+ 4) The inspiration comes from the {\bf{DNA structure}}, which is people's genetic code. All the information is stored in chromosomes that have a lot of genes. Holland's proposal consists of representing the solutions by binary arrays.% Row Count 9 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.64241 cm} x{3.33459 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Selection of Parents}} \tn % Row 0 \SetRowColor{LightBackground} Roulette selection & You can imagine a roulette where each section is assigned to an individual. If we have 10 individuals, the roulette is divided into 10 sections. The section size is proportioned to the individual's fitness. \tn % Row Count 8 (+ 8) % Row 1 \SetRowColor{white} Tournament selection & It consists of randomly choosing k individuals and selecting the fittest one. k represents the tournament size. \tn % Row Count 13 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.4931 cm} x{3.4839 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Reproduction (crossover or recombination)}} \tn % Row 0 \SetRowColor{LightBackground} 1 point crossover & This technique divides the parents into two sections randomly choosing a crossover point. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} N point crossover & The parents are divided into several sections. \tn % Row Count 6 (+ 2) % Row 2 \SetRowColor{LightBackground} Uniform crossover & For each gene, it copies the gene of the first or the second parent randomly. \tn % Row Count 9 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.44333 cm} x{3.53367 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Mutation}} \tn % Row 0 \SetRowColor{LightBackground} Bitwise mutation & Consists of randomly selecting one or several genes and changing their values. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Random resetting & Consists of randomly selecting one or several genes and resets its values. \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} Uniform mutation & It randomly selects one or several genes and chooses a random value between the minimum and maximum values. \tn % Row Count 10 (+ 4) % Row 3 \SetRowColor{white} Swap mutation & Consists of randomly selecting two elements and swapping their values. \tn % Row Count 13 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Differential Evolution}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Diferencial Evolution (DE)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{It is a robust algorithm for solving {\emph{continuous multidimensional optimization problems}}. In this algorithm, individuals as seen as {\emph{vectors}}. \newline % Row Count 3 (+ 3) The novelty is the mutation operator, that uses three individuals for mutate another one, and the mutation depends on the distance% Row Count 6 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Differential Evolution Example}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{ Video: http://youtu.be/BsfJDg0a0Z4} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Differential Evolution Terminology}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Representation} & The individuals are represented as vectors whose entries are the variables values. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} Mutation & Mutation is the main operation in Differential Evolution. The new individual 𝑣 𝑖 is calculated as follows: \{\{nl\}\} 𝑣𝑖 = π‘₯π‘Ÿ1 + 𝐹(π‘₯π‘Ÿ2 βˆ’ π‘₯π‘Ÿ3 ) \tn % Row Count 9 (+ 6) % Row 2 \SetRowColor{LightBackground} Crossover & For each variable k of 𝑒 𝑖 , the value is selected randomly between 𝑣𝑖 or 𝑒𝑖 \tn % Row Count 13 (+ 4) % Row 3 \SetRowColor{white} Selection & The selection is performed by tournament. \tn % Row Count 15 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Constraint Handling}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Disadvantages of Constrains}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{In general, the presence of constraints will divide the space of potential solutions into two or more disjoint regions, {\emph{the feasible region}}, containing those candidate solutions that satisfy the given feasibility condition, and the {\emph{infeasible region}} containing those that do not.% Row Count 6 (+ 6) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Penalty Functions}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Static} & Relies on the ability to specify a distance metric that accurately reflects the difficulty of repairing the solution, which is obviously problem-dependent, and may also vary from constraint to constraint \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \seqsplit{Dynamic} & The fitness function used to evaluate the population is a combination of the distance function for constraint i with a death penalty for all solutions violating constraints \tn % Row Count 12 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Is a distance metric of the infeasible point to the feasible region} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Constrains in EA}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The presence of constraints implies that not all possible combinations of variable values represent valid solutions to the problem at hand.} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Unfortunately, constraint handling is not straightforward in an EA, because the variation operators are typically "blind" to constraints.} \tn % Row Count 6 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{There is no guarantee that even if the parents satisfy some constraints, the offspring will satisfy them as well.} \tn % Row Count 9 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Repair Functions}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Takes an infeasible point and generates a feasible solution based on it. In some problems, this technique is relatively simple.% Row Count 3 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{In general, defining a repair function may be as complex as solving the problem itself.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolution Strategies (ES)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Evolution Strategies (ES)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{The goal is to solve {\emph{continuous multidimensional optimization problems}}. \newline % Row Count 2 (+ 2) The main characteristic is the {\bf{self-adaptation of parameters}}. It means that some evolutive algorithm parameters change during the execution. \newline % Row Count 5 (+ 3) Those parameters are included in the individual representation and {\bf{evolve}} at the same time that the solution.% Row Count 8 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.04057 cm} x{2.93643 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Evolution Strategies Terminology}} \tn % Row 0 \SetRowColor{LightBackground} Individual's Representation & The individuals' solutions are represented as vectors whose inputs are the values of the variables \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} Mutation & The individual's position is modified by adding a random number, noise, to each entry \tn % Row Count 9 (+ 4) % Row 2 \SetRowColor{LightBackground} Recombination & In ES there are two recombination variants \tn % Row Count 11 (+ 2) % Row 3 \SetRowColor{white} {\emph{Intermediate recombination}} & The values of the parents are averaged. \tn % Row Count 13 (+ 2) % Row 4 \SetRowColor{LightBackground} {\emph{Discrete recombination}} & One of the parent's values is randomly chosen with equal chance for either parents \tn % Row Count 17 (+ 4) % Row 5 \SetRowColor{white} Parent selection & Parent selection in ES is completely random, because here the whole population is seen as parent \tn % Row Count 22 (+ 5) % Row 6 \SetRowColor{LightBackground} Survivor Selection & (πœ‡, πœ†) selection, where only the best πœ‡ offspring are selected. (πœ‡ + πœ†) selection, where the best πœ‡ individuals (from the union of parents and offspring) are selected \tn % Row Count 30 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.04057 cm} x{2.93643 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Evolution Strategies Terminology (cont)}} \tn % Row 7 \SetRowColor{LightBackground} Specialty & Self-adaptation of mutation step sizes \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Genetic Programming}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Genetic Programming (GP)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Automatically solves problems without requiring the user to know or specify the structure of the solution in advance. \newline % Row Count 3 (+ 3) The main idea of GP is to evolve a population of computer programs, where individuals are commonly represented as syntax trees.% Row Count 6 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.89586 cm} x{4.08114 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Elements of a GP individual}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Terminals} & Leave nodes in a syntax tree. Variables that can be predefined or randomly generated. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \seqsplit{Functions} & Internal nodes in a syntax tree. Operations \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.54287 cm} x{3.43413 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Genetic Programing Terminology}} \tn % Row 0 \SetRowColor{LightBackground} Initial population & 1. {\bf{Full}}, where all the trees are randomly created, and all the leaves have the same depth \{\{nl\}\} 2. {\bf{Grow}}, each node selects an element randomly from either the function set or the terminal set \{\{nl\}\} 3. {\bf{Ramped half-and-half}} where half of the population is created with the full technique and the other half with grow \tn % Row Count 13 (+ 13) % Row 1 \SetRowColor{white} Selection & Tournament Selection \tn % Row Count 14 (+ 1) % Row 2 \SetRowColor{LightBackground} Crossover & Classic Crossover \tn % Row Count 15 (+ 1) % Row 3 \SetRowColor{white} Mutation & {\bf{Subtree mutation}}, randomly selects a mutation point in a tree and substitutes the subtree rooted there with a randomly generated subtree \tn % Row Count 21 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ant Colony Optimization (ACO)}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Ant Colony Optimization (ACO)}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Solves problems of finding paths in graphs. It is inspired by the ants' behavior when searching for food. The ants leave pheromones that allow other ants to follow the path to food. The more ants go for a specific path, the more pheromones.% Row Count 5 (+ 5) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Example}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/jlobera-up_1668625782_Screenshot 2022-11-16 at 13.08.51.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{In this algorithm, an artificial ant must simulate a path starting at a specific point. It moves node by node, choosing based on the pheromones of each path.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Ant Colony Terminology}} \tn % Row 0 \SetRowColor{LightBackground} Cij & Path from the node i to the node j \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Tij & Pheromones in the path from the node i to the node j \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Nij & Heuristic in the path from the node i to the node j \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} p & Evaporation rate, between 0 and 1 \tn % Row Count 6 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.64701 cm} x{4.32999 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Steps}} \tn % Row 0 \SetRowColor{LightBackground} First & All the pheromones can be initialized with a small value. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \seqsplit{Second} & Ants start to move around the graph node by node using the previous equation. \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} Last & The pheromones must be updated. Ants deposit pheromones to their path proportional to its distance. The pheromones evaporate. \tn % Row Count 9 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}