Commit 51b94bd1 by Stalin Munoz

Actualización metaheurísticas, inclusión de algoritmo SA

parent 650be0dd
......@@ -24,9 +24,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="377.38811"
inkscape:cy="257.96099"
inkscape:zoom="1.4"
inkscape:cx="263.24139"
inkscape:cy="218.55248"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
......@@ -161,7 +161,7 @@
r="22.223356"
transform="matrix(0,-1,1,0,0,0)" />
<circle
style="opacity:1;fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
style="opacity:1;fill:#f2f2f2;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4148-3-9"
cx="-678.37476"
cy="209.99893"
......
......@@ -25,8 +25,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="236.73077"
inkscape:cy="353.42057"
inkscape:cx="65.509913"
inkscape:cy="351.40026"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
......@@ -94,7 +94,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -181,7 +181,7 @@
cy="209.99893"
cx="-678.37476"
id="path4148-3-9"
style="opacity:1;fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
style="opacity:1;fill:#ececec;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<circle
transform="matrix(0,-1,1,0,0,0)"
r="22.223356"
......
......@@ -48,12 +48,23 @@
\@writefile{nav}{\headcommand {\beamer@framepages {14}{15}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{11}{16/16}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}}
\@writefile{loa}{\contentsline {algocf}{\numberline {}{\ignorespaces SA}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{12}{17/17}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}}
\@writefile{nav}{\headcommand {\beamer@partpages {1}{18}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{18}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{18}}}
\@writefile{nav}{\headcommand {\beamer@documentpages {18}}}
\@writefile{nav}{\headcommand {\def \inserttotalframenumber {13}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{13}{18/18}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{14}{19/19}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{15}{20/20}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {20}{20}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{16}{21/22}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {21}{22}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{17}{23/23}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {23}{23}}}
\@writefile{nav}{\headcommand {\beamer@partpages {1}{24}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{24}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{24}}}
\@writefile{nav}{\headcommand {\beamer@documentpages {24}}}
\@writefile{nav}{\headcommand {\def \inserttotalframenumber {18}}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{18}{24/24}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {24}{24}}}
......@@ -23,10 +23,20 @@
\headcommand {\beamer@framepages {16}{16}}
\headcommand {\slideentry {0}{0}{12}{17/17}{}{0}}
\headcommand {\beamer@framepages {17}{17}}
\headcommand {\beamer@partpages {1}{18}}
\headcommand {\beamer@subsectionpages {1}{18}}
\headcommand {\beamer@sectionpages {1}{18}}
\headcommand {\beamer@documentpages {18}}
\headcommand {\def \inserttotalframenumber {13}}
\headcommand {\slideentry {0}{0}{13}{18/18}{}{0}}
\headcommand {\beamer@framepages {18}{18}}
\headcommand {\slideentry {0}{0}{14}{19/19}{}{0}}
\headcommand {\beamer@framepages {19}{19}}
\headcommand {\slideentry {0}{0}{15}{20/20}{}{0}}
\headcommand {\beamer@framepages {20}{20}}
\headcommand {\slideentry {0}{0}{16}{21/22}{}{0}}
\headcommand {\beamer@framepages {21}{22}}
\headcommand {\slideentry {0}{0}{17}{23/23}{}{0}}
\headcommand {\beamer@framepages {23}{23}}
\headcommand {\beamer@partpages {1}{24}}
\headcommand {\beamer@subsectionpages {1}{24}}
\headcommand {\beamer@sectionpages {1}{24}}
\headcommand {\beamer@documentpages {24}}
\headcommand {\def \inserttotalframenumber {18}}
\headcommand {\slideentry {0}{0}{18}{24/24}{}{0}}
\headcommand {\beamer@framepages {24}{24}}
......@@ -239,6 +239,8 @@ El algoritmo de recocido (o templado) simulado (\emph{simulated annealing}) es u
\note{
El primer algoritmo metaheurístico que presentaremos es el algoritmo de recocido o templado simulado, al que denominaremos \emph{SA} por las siglas de su nombre en inglés \emph{Simulated Annealing}.
El algoritmo fue propuesto por Kirkpatrick, Gelatt y Vecchi quienes en su revolucionario artículo de 1983 en la revista Science mostraron que SA puede converger a soluciones óptimas de un problema de optimización combinatorio si se le deja correr el tiempo suficiente.
Como muchos de los algoritmos de optimización metaheurísticos, esta inspirado en un proceso de optimización observado en la naturaleza. En este caso en un proceso físico.
En un proceso de templado, el material se calienta más allá de un punto de recristalización. Después se enfria de manera controlada.
......@@ -298,6 +300,50 @@ Presentamos el algoritmo SA en el pizarrón.
\end{frame}
\begin{frame}
\frametitle{Algoritmo de templado simulado}
\begin{algorithm*}[H]
\tiny
\SetKwInOut{Input}{Entradas}
\SetKwInOut{Output}{Salida}
\SetAlgoLined
\Input{$T_i$ \tcp*{temperatura inicial}\\
$T_f$ \tcp*{temperatura final}\\
$c$ \tcp*{constante de enfriamiento}\\
$n$ \tcp*{número de movimientos hasta el equilibrio térmico} \\
$\text{muestrear}$ \tcp*{muestra aleatoria en el espacio de soluciones}\\
$\text{mover}: S \to S$ \tcp*{vecino aleatorio de una solución}\\
$\text{energia}:S \to \mathbb{R}$ \tcp*{energía de una solución}}
\Output{Solución subóptima}
$T \leftarrow T_i$ \tcp*{Se inicializa la temperatura}
$x \leftarrow \text{muestrear}()$ ; $e \leftarrow \text{energia}(x)$ \tcp*{solución candidata inicial y su energía}
\While{$T > T_f$ }{
$i \leftarrow 1$ \;
\While{$ i \leq n$}
{
$x' \leftarrow \text{mover}(x)$ ; $e' \leftarrow \text{energia}(x')$ \tcp*{solución candidata vecina y su energía}
\uIf{$e' < e$}{
$(x,e) \leftarrow (x',e')$ \tcp*{acepta un estado de menor energía}
}
\uElse{
$r \leftarrow aleatorio.uniforme(0,1)$ \tcp*{$r$ es un número aleatorio entre 0 y 1}
\If{$r < exp{\left(\frac{-(e'-e)}{k T}\right)}$}{
$(x,e) \leftarrow (x',e')$ \tcp*{acepta un estado de mayor energía}
}
}
$i \leftarrow i + 1$ \;
}
$T \leftarrow c T$ \tcp*{se enfria el sistema}
}
\KwRet{$x$}
\caption{SA}
\end{algorithm*}
\note{
Presentamos el algoritmo SA en el pizarrón.
}
\end{frame}
\begin{frame}
\frametitle{Ejemplo de aplicación de SA a un problema de permutaciones}
\begin{block}{El problema del agente viajero}
Un agente viajero debe visitar exactamente $n$ ciudades.
......@@ -335,11 +381,23 @@ B&C&G&H&J&D&A&E&G&F
$
\end{block}
\begin{block}{Solución vecina}
Una solución vecina puede construirse intercambiando dos ciudades elegidas aleatoriamente.
\begin{enumerate}
\item intercambiando dos ciudades adjacentes:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&{\color{blue}J}&D&A&E&G&F
\end{bmatrix}
$
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}J&{\color{blue}H}&D&A&E&G&F
\end{bmatrix}
$
\item intercambiando dos ciudades cualesquiera:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&J&D&A&E&\color{blue}G&F
\end{bmatrix}
$
......@@ -349,7 +407,38 @@ $x' =
B&C&G&\color{blue}G&J&D&A&E&\color{blue}H&F
\end{bmatrix}
$
\item invirtiendo el orden de una subruta:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&\color{blue}J&\color{blue}D&\color{blue}A&E&G&F
\end{bmatrix}
$
$x' =
\begin{bmatrix}
B&C&G&\color{blue}A&\color{blue}D&\color{blue}J&\color{blue}H&E&G&F
\end{bmatrix}
$
\end{enumerate}
\end{block}
\note{
En el problema del agente viajero una solución candidata es una permutación de ciudades.
En este ejemplo identificamos cada ciudad con una letra distinta.
Para encontrar soluciones vecinas, podemos definir un operador de intercambio de ciudades.
Aleatoriamente seleccionamos dos ciudades e intercambiamos su posición en la ruta.
Esta operación también la podemos restringir para ciudades que son adyacentes en la ruta.
Otra estrategia para generar permutaciones vecinas es invertir el orden de la secuencia en una subruta aleatoria.
}
\end{frame}
\begin{frame}
\frametitle{Función de energía}
\begin{block}{Energía de una solución candidata}
La energía es el {\color{blue}costo} de la ruta.
\begin{center}
......@@ -357,17 +446,67 @@ $\text{energía}(x) = \sum\limits_{i=1}^n{\text{costo}(x_i,x_{(i \mod n)+1})}$
\end{center}
\end{block}
\note{
En el problema del agente viajero una solución candidata es una permutación de ciudades.
Finalmente la energía de la solución es simplemente el costo sobre la trayectoria. En este caso la suma de los costos de cada transición.
}
\end{frame}
En este ejemplo identificamos cada ciudad con una letra distinta.
\begin{frame}[<+->]
\frametitle{Búsquedas metaheurísticas}
\begin{block}{[Gendreau y Potvin 2010; \emph{Handbook of metaheuristics}]}
Las {\color{blue}metaheurísticas}, son métodos de solución que orquestan
procedimientos de mejora local con estrategias de alto nivel para crear un proceso capaz de escapar de un óptimo local y desempeñar una búsqueda robusta en el espacio de soluciones.
\end{block}
\note<1>{
El término \emph{metaheurística} nombra a un número muy amplio de algoritmos de búsqueda.
Para encontrar soluciones vecinas, podemos definir un operador de intercambio de ciudades.
Gendreau y Potvin las definen como métodos de solución que combinan procedimientos de mejora local con estrategias de alto nivel para evitar la convergencia temprana a soluciones subóptimas en un espacio de soluciones.
}
\only<2>{
El término fue acuñado por Fred Glover en 1986 para categorizar su algoritmo {\color{blue}\emph{Búsqueda Tabú} (\emph{Tabu Search (TS)})}.
}
\note<2>{
El nombre fue acuñado por Fred Glover en su artículo de 1986: \emph{Future paths to integer programming and links to artificial intelligence} y fue usado para describir el algoritmo \emph{Búsqueda Tabú}, al que denominamos TS, siglas en inglés de \emph{Tabu Search}.
Aleatoriamente seleccionamos dos ciudades e intercambiamos su posición en la ruta.
Glover nos dice que TS es una metaheurística superimpuesta en otra heurística.
Finalmente la energía de la solución es simplemente el costo sobre la trayectoria. En este caso la suma de los costos de cada transición.
En la búsqueda Tabú se prohibe volver a visitar ciertos estados almacenados en una memoria, lo que le permite escapar de óptimos locales.
}
\end{frame}
\begin{frame}
\frametitle{Metáforas}
\begin{block}{Matemáticas + Inspiración}
Las metaheurísticas muchas veces combinan {\color{blue}técnicas formales} con {\color{blue}estrategias informales} observadas en procesos naturales (incluye humanos y sus artefactos).
Parten de la aceptación de que el espacio de búsqueda es {\color{blue} computacionalmente intratable}. Es decir, de que no conocemos si existen algoritmos eficientes para resolverlos de manera exacta. Por lo tanto, se vale utilizar métodos informales, estratégias algoritmicas que {\color{blue}subjetivamente intuímos} pueden funcionar para abordar el problema a resolver.
Los algoritmos admiten {\color{blue}\emph{hibridación}} de técnicas.
\end{block}
\end{frame}
\note{
En la práctica, la mayoría de los problemas interesantes a resolver en inteligencia artificial no admiten algoritmos exactos de solución. Muchos entran dentro de la categoría de los problemas NP-completos, lo que significa que no pueden solucionarse en un tiempo razonable.
Los algoritmos metaheurísticos tienen un espíritu pragmático y generalmente combinan resultados teóricos formales con estrategias de solución informales.
Frecuentemente la fuente de inspiración para diseñar dichas estrategias es la naturaleza. Como es el caso del algortimo SA que hemos visto hoy.
Una estrategia frecuentemente utilizada en la práctica es la hibridación o combinación de algoritmos. Por ejemplo, los algoritmos denominados \emph{meméticos} combinan la evolución de una población de soluciones con aprendizaje individual.
}
\begin{frame}
\frametitle{¿Cuándo usar algoritmos metaheurísticos?}
\begin{block}{La última línea de defensa}
En palabras del investigador {\color{blue}Carlos Coello Coello} del Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional, {\color{blue}``los algoritmos metaheurísticos constituyen la última línea de defensa en optimización''}.
\end{block}
\end{frame}
\note{
Los metaheurísticos, sin embargo, pueden consumir muchos recursos computacionales y no hay garantía de que funcionarán en un problema dado.
Son algoritmos incompletos, en el sentido de que no siempre darán una respuesta.
En palabras del investigador Carlos Coello Coello, "los algoritmos metaheurísticos constituyen la última línea de defensa en optimización".
}
\end{document}
\ No newline at end of file
......@@ -239,6 +239,8 @@ El algoritmo de recocido (o templado) simulado (\emph{simulated annealing}) es u
\note{
El primer algoritmo metaheurístico que presentaremos es el algoritmo de recocido o templado simulado, al que denominaremos \emph{SA} por las siglas de su nombre en inglés \emph{Simulated Annealing}.
El algoritmo fue propuesto por Kirkpatrick, Gelatt y Vecchi quienes en su revolucionario artículo de 1983 en la revista Science mostraron que SA puede converger a soluciones óptimas de un problema de optimización combinatorio si se le deja correr el tiempo suficiente.
Como muchos de los algoritmos de optimización metaheurísticos, esta inspirado en un proceso de optimización observado en la naturaleza. En este caso en un proceso físico.
En un proceso de templado, el material se calienta más allá de un punto de recristalización. Después se enfria de manera controlada.
......@@ -298,6 +300,50 @@ Presentamos el algoritmo SA en el pizarrón.
\end{frame}
\begin{frame}
\frametitle{Algoritmo de templado simulado}
\begin{algorithm*}[H]
\tiny
\SetKwInOut{Input}{Entradas}
\SetKwInOut{Output}{Salida}
\SetAlgoLined
\Input{$T_i$ \tcp*{temperatura inicial}\\
$T_f$ \tcp*{temperatura final}\\
$c$ \tcp*{constante de enfriamiento}\\
$n$ \tcp*{número de movimientos hasta el equilibrio térmico} \\
$\text{muestrear}$ \tcp*{muestra aleatoria en el espacio de soluciones}\\
$\text{mover}: S \to S$ \tcp*{vecino aleatorio de una solución}\\
$\text{energia}:S \to \mathbb{R}$ \tcp*{energía de una solución}}
\Output{Solución subóptima}
$T \leftarrow T_i$ \tcp*{Se inicializa la temperatura}
$x \leftarrow \text{muestrear}()$ ; $e \leftarrow \text{energia}(x)$ \tcp*{solución candidata inicial y su energía}
\While{$T > T_f$ }{
$i \leftarrow 1$ \;
\While{$ i \leq n$}
{
$x' \leftarrow \text{mover}(x)$ ; $e' \leftarrow \text{energia}(x')$ \tcp*{solución candidata vecina y su energía}
\uIf{$e' < e$}{
$(x,e) \leftarrow (x',e')$ \tcp*{acepta un estado de menor energía}
}
\uElse{
$r \leftarrow aleatorio.uniforme(0,1)$ \tcp*{$r$ es un número aleatorio entre 0 y 1}
\If{$r < exp{\left(\frac{-(e'-e)}{k T}\right)}$}{
$(x,e) \leftarrow (x',e')$ \tcp*{acepta un estado de mayor energía}
}
}
$i \leftarrow i + 1$ \;
}
$T \leftarrow c T$ \tcp*{se enfria el sistema}
}
\KwRet{$x$}
\caption{SA}
\end{algorithm*}
\note{
Presentamos el algoritmo SA en el pizarrón.
}
\end{frame}
\begin{frame}
\frametitle{Ejemplo de aplicación de SA a un problema de permutaciones}
\begin{block}{El problema del agente viajero}
Un agente viajero debe visitar exactamente $n$ ciudades.
......@@ -326,7 +372,7 @@ El algoritmo SA, teoricamente puede encontrar la solución óptima, sin embargo en
\begin{frame}
\frametitle{Soluciones candidatas y vecinas}
\begin{block}{Solución candidata}
Una solución candidata es una permutación de ciudades. Si identificamos cada ciudad con una letra distinta entonces:
Una solución candidata es una permutación de ciudades:
$x =
\begin{bmatrix}
......@@ -335,11 +381,23 @@ B&C&G&H&J&D&A&E&G&F
$
\end{block}
\begin{block}{Solución vecina}
Una solución vecina puede construirse intercambiando dos ciudades elegidas aleatoriamente.
\begin{enumerate}
\item intercambiando dos ciudades adjacentes:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&{\color{blue}J}&D&A&E&G&F
\end{bmatrix}
$
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}J&{\color{blue}H}&D&A&E&G&F
\end{bmatrix}
$
\item intercambiando dos ciudades cualesquiera:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&J&D&A&E&\color{blue}G&F
\end{bmatrix}
$
......@@ -349,13 +407,106 @@ $x' =
B&C&G&\color{blue}G&J&D&A&E&\color{blue}H&F
\end{bmatrix}
$
\item invirtiendo el orden de una subruta:
$x\phantom{'} =
\begin{bmatrix}
B&C&G&\color{blue}H&\color{blue}J&\color{blue}D&\color{blue}A&E&G&F
\end{bmatrix}
$
$x' =
\begin{bmatrix}
B&C&G&\color{blue}A&\color{blue}D&\color{blue}J&\color{blue}H&E&G&F
\end{bmatrix}
$
\end{enumerate}
\end{block}
\begin{block}{Energía de una solución candidata}
La energía de una solución es el {\color{blue}costo} de la ruta.
\note{
En el problema del agente viajero una solución candidata es una permutación de ciudades.
En este ejemplo identificamos cada ciudad con una letra distinta.
Para encontrar soluciones vecinas, podemos definir un operador de intercambio de ciudades.
Aleatoriamente seleccionamos dos ciudades e intercambiamos su posición en la ruta.
Esta operación también la podemos restringir para ciudades que son adyacentes en la ruta.
Otra estrategia para generar permutaciones vecinas es invertir el orden de la secuencia en una subruta aleatoria.
}
\end{frame}
\begin{frame}
\frametitle{Función de energía}
\begin{block}{Energía de una solución candidata}
La energía es el {\color{blue}costo} de la ruta.
\begin{center}
$\text{energía}(x) = \sum\limits_{i=1}^n{\text{costo}(x_i,x_{(i \mod n)+1})}$
\end{center}
\end{block}
\note{
Finalmente la energía de la solución es simplemente el costo sobre la trayectoria. En este caso la suma de los costos de cada transición.
}
\end{frame}
\begin{frame}[<+->]
\frametitle{Búsquedas metaheurísticas}
\begin{block}{[Gendreau y Potvin 2010; \emph{Handbook of metaheuristics}]}
Las {\color{blue}metaheurísticas}, son métodos de solución que orquestan
procedimientos de mejora local con estrategias de alto nivel para crear un proceso capaz de escapar de un óptimo local y desempeñar una búsqueda robusta en el espacio de soluciones.
\end{block}
\note<1>{
El término \emph{metaheurística} nombra a un número muy amplio de algoritmos de búsqueda.
Gendreau y Potvin las definen como métodos de solución que combinan procedimientos de mejora local con estrategias de alto nivel para evitar la convergencia temprana a soluciones subóptimas en un espacio de soluciones.
}
\only<2>{
El término fue acuñado por Fred Glover en 1986 para categorizar su algoritmo {\color{blue}\emph{Búsqueda Tabú} (\emph{Tabu Search (TS)})}.
}
\note<2>{
El nombre fue acuñado por Fred Glover en su artículo de 1986: \emph{Future paths to integer programming and links to artificial intelligence} y fue usado para describir el algoritmo \emph{Búsqueda Tabú}, al que denominamos TS, siglas en inglés de \emph{Tabu Search}.
Glover nos dice que TS es una metaheurística superimpuesta en otra heurística.
En la búsqueda Tabú se prohibe volver a visitar ciertos estados almacenados en una memoria, lo que le permite escapar de óptimos locales.
}
\end{frame}
\begin{frame}
\frametitle{Metáforas}
\begin{block}{Matemáticas + Inspiración}
Las metaheurísticas muchas veces combinan {\color{blue}técnicas formales} con {\color{blue}estrategias informales} observadas en procesos naturales (incluye humanos y sus artefactos).
Parten de la aceptación de que el espacio de búsqueda es {\color{blue} computacionalmente intratable}. Es decir, de que no conocemos si existen algoritmos eficientes para resolverlos de manera exacta. Por lo tanto, se vale utilizar métodos informales, estratégias algoritmicas que {\color{blue}subjetivamente intuímos} pueden funcionar para abordar el problema a resolver.
Los algoritmos admiten {\color{blue}\emph{hibridación}} de técnicas.
\end{block}
\end{frame}
\note{
En la práctica, la mayoría de los problemas interesantes a resolver en inteligencia artificial no admiten algoritmos exactos de solución. Muchos entran dentro de la categoría de los problemas NP-completos, lo que significa que no pueden solucionarse en un tiempo razonable.
Los algoritmos metaheurísticos tienen un espíritu pragmático y generalmente combinan resultados teóricos formales con estrategias de solución informales.
Frecuentemente la fuente de inspiración para diseñar dichas estrategias es la naturaleza. Como es el caso del algortimo SA que hemos visto hoy.
Una técnica muy frecuentemente utilizada en la práctica es la hibridación o combinación de estrategias. Por ejemplo con los algoritmos denominados \emph{meméticos} que combinan la evolución de una población de soluciones con aprendizaje individual.
}
\begin{frame}
\frametitle{¿Cuándo usar algoritmos metaheurísticos?}
\begin{block}{La última línea de defensa}
En palabras del investigador {\color{blue}Carlos Coello Coello} del Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional, {\color{blue}``los algoritmos metaheurísticos constituyen la última línea de defensa en optimización''}.
\end{block}
\end{frame}
\note{
Los metaheurísticos, sin embargo, pueden consumir muchos recursos computacionales y no hay garantía de que funcionarán en un problema dado.
Son algoritmos incompletos, en el sentido de que no siempre darán una respuesta.
En palabras del investigador Carlos Coello Coello, "los algoritmos metaheurísticos constituyen la última línea de defensa en optimización".
}
\end{document}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment