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}}}
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.8.31) 17 OCT 2018 15:43
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.8.31) 18 OCT 2018 12:37
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
......@@ -1396,23 +1396,23 @@ pdfTeX warning (ext4): destination with the same identifier (name{Navigation12}
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.249 \end{frame}
l.251 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.12}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.249 \end{frame}
l.251 \end{frame}
<./optimizacion-06.pdf>]
<aceptance.pdf, id=407, 462.52798pt x 346.89601pt>
File: aceptance.pdf Graphic file (type pdf)
<use aceptance.pdf>
Package pdftex.def Info: aceptance.pdf used on input line 288.
Package pdftex.def Info: aceptance.pdf used on input line 290.
(pdftex.def) Requested size: 277.51892pt x 208.1392pt.
Overfull \vbox (3.86597pt too high) detected at line 288
Overfull \vbox (3.86597pt too high) detected at line 290
[]
[14
......@@ -1422,21 +1422,21 @@ pdfTeX warning (ext4): destination with the same identifier (name{Navigation13}
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.288 \end{frame}
l.290 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.13}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.288 \end{frame}
l.290 \end{frame}
]
LaTeX Font Info: Try loading font information for U+msa on input line 288.
LaTeX Font Info: Try loading font information for U+msa on input line 290.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Try loading font information for U+msb on input line 288.
LaTeX Font Info: Try loading font information for U+msb on input line 290.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
......@@ -1445,10 +1445,10 @@ File: umsb.fd 2013/01/14 v3.01 AMS symbols B
File: exploracion-explotacion.pdf Graphic file (type pdf)
<use exploracion-explotacion.pdf>
Package pdftex.def Info: exploracion-explotacion.pdf used on input line 288.
Package pdftex.def Info: exploracion-explotacion.pdf used on input line 290.
(pdftex.def) Requested size: 277.51892pt x 208.1392pt.
Overfull \vbox (3.86597pt too high) detected at line 288
Overfull \vbox (3.86597pt too high) detected at line 290
[]
[15
......@@ -1458,20 +1458,20 @@ pdfTeX warning (ext4): destination with the same identifier (name{Navigation14}
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.288 \end{frame}
l.290 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.14}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.288 \end{frame}
l.290 \end{frame}
<./aceptance.pdf>]
<pizarron.jpg, id=468, 2055.68pt x 1371.1225pt>
File: pizarron.jpg Graphic file (type jpg)
<use pizarron.jpg>
Package pdftex.def Info: pizarron.jpg used on input line 298.
Package pdftex.def Info: pizarron.jpg used on input line 300.
(pdftex.def) Requested size: 205.58003pt x 137.12027pt.
[16
......@@ -1480,23 +1480,17 @@ pdfTeX warning (ext4): destination with the same identifier (name{Navigation15}
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.298 \end{frame}
l.300 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.15}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.298 \end{frame}
l.300 \end{frame}
<./exploracion-explotacion.pdf>]
<tsp.pdf, id=498, 914.5022pt x 692.18604pt>
File: tsp.pdf Graphic file (type pdf)
<use tsp.pdf>
Package pdftex.def Info: tsp.pdf used on input line 324.
(pdftex.def) Requested size: 164.60329pt x 124.5881pt.
Overfull \vbox (0.75656pt too high) detected at line 324
Overfull \vbox (2.67596pt too high) detected at line 344
[]
[17
......@@ -1506,32 +1500,138 @@ pdfTeX warning (ext4): destination with the same identifier (name{Navigation16}
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.324 \end{frame}
l.344 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.16}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.324 \end{frame}
l.344 \end{frame}
<./pizarron.jpg>]
<tsp.pdf, id=525, 914.5022pt x 692.18604pt>
File: tsp.pdf Graphic file (type pdf)
<use tsp.pdf>
Package pdftex.def Info: tsp.pdf used on input line 370.
(pdftex.def) Requested size: 164.60329pt x 124.5881pt.
Overfull \vbox (0.75656pt too high) detected at line 370
[]
<./pizarron.jpg>] [18
[18
pdfTeX warning (ext4): destination with the same identifier (name{Navigation17}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.371 \end{frame}
l.370 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.17}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.371 \end{frame}
l.370 \end{frame}
] [19
pdfTeX warning (ext4): destination with the same identifier (name{Navigation18}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.438 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.18}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.438 \end{frame}
<./tsp.pdf>] [20
pdfTeX warning (ext4): destination with the same identifier (name{Navigation19}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.451 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.19}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.451 \end{frame}
] [21
pdfTeX warning (ext4): destination with the same identifier (name{Navigation20}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.474 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.20}) has been already used, duplicate ignored
<./tsp.pdf>]
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.474 \end{frame}
] [22
pdfTeX warning (ext4): destination with the same identifier (name{Navigation21}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.474 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.21}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.474 \end{frame}
] [23
pdfTeX warning (ext4): destination with the same identifier (name{Navigation22}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.485 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.22}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.485 \end{frame}
] [24
pdfTeX warning (ext4): destination with the same identifier (name{Navigation23}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.501 \end{frame}
pdfTeX warning (ext4): destination with the same identifier (n
ame{page.23}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.501 \end{frame}
]
\tf@nav=\write6
\openout6 = `metaheuristicas-intro.nav'.
......@@ -1541,31 +1641,31 @@ l.371 \end{frame}
\tf@snm=\write8
\openout8 = `metaheuristicas-intro.snm'.
[19
[25
pdfTeX warning (ext4): destination with the same identifier (name{Navigation18}
pdfTeX warning (ext4): destination with the same identifier (name{Navigation24}
) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.373 \end{document}
l.512 \end{document}
pdfTeX warning (ext4): destination with the same identifier
(name{page.18}) has been already used, duplicate ignored
(name{page.24}) has been already used, duplicate ignored
\pgfpages@shipoutshipoutbox ...physicalpagesizes }
\endgroup
l.373 \end{document}
l.512 \end{document}
]
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 373.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 373.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 512.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 512.
(./metaheuristicas-intro.aux
LaTeX Info: Redefining \. on input line 25.
LaTeX Info: Redefining \% on input line 25.
)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 373.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 373.
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 512.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 512.
Package rerunfilecheck Info: File `metaheuristicas-intro.out' has not changed.
(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
......@@ -1573,31 +1673,40 @@ Package rerunfilecheck Info: File `metaheuristicas-intro.out' has not changed.
LaTeX Font Warning: Size substitutions with differences
(Font) up to 1.0pt have occurred.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 373.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 512.
)
Here is how much of TeX's memory you used:
22621 strings out of 493029
438648 string characters out of 6136234
573564 words of memory out of 5000000
25583 multiletter control sequences out of 15000+600000
13812 words of font info for 52 fonts, out of 8000000 for 9000
22708 strings out of 493029
440321 string characters out of 6136234
584744 words of memory out of 5000000
25655 multiletter control sequences out of 15000+600000
15213 words of font info for 57 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
56i,15n,59p,428b,575s stack positions out of 5000i,500n,10000p,200000b,80000s
56i,21n,59p,428b,704s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/shar
e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texli
ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texm
f-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/f
onts/type1/public/amsfonts/cm/cmss10.pfb></usr/share/texlive/texmf-dist/fonts/t
ype1/public/amsfonts/cm/cmss12.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
ublic/amsfonts/cm/cmss8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/a
msfonts/cm/cmss9.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts
/cm/cmssi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/c
msy8.pfb>
Output written on metaheuristicas-intro.pdf (18 pages, 1638657 bytes).
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmex7.pfb></usr/
share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/
texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/texlive
/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texlive/texmf-
dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fo
nts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/typ
e1/public/amsfonts/cm/cmr5.pfb></usr/share/texlive/texmf-dist/fonts/type1/publi
c/amsfonts/cm/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfon
ts/cm/cmr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cm
ss10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss12.p
fb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss8.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmss9.pfb></usr/share
/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmssbx10.pfb></usr/share/tex
live/texmf-dist/fonts/type1/public/amsfonts/cm/cmssi10.pfb></usr/share/texlive/
texmf-dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb></usr/share/texlive/texmf-d
ist/fonts/type1/public/amsfonts/cm/cmsy6.pfb></usr/share/texlive/texmf-dist/fon
ts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist/fonts/type
1/public/amsfonts/cm/cmtt8.pfb></usr/share/texlive/texmf-dist/fonts/type1/publi
c/amsfonts/symbols/msbm7.pfb>
Output written on metaheuristicas-intro.pdf (24 pages, 1737220 bytes).
PDF statistics:
611 PDF objects out of 1000 (max. 8388607)
551 compressed objects within 6 object streams
37 named destinations out of 1000 (max. 500000)
820 PDF objects out of 1000 (max. 8388607)
740 compressed objects within 8 object streams
49 named destinations out of 1000 (max. 500000)
118 words of extra memory for PDF output out of 10000 (max. 10000000)
......@@ -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