diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2021-07-12 19:41:43 +0200 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2021-07-12 19:41:53 +0200 |
| commit | 7f6946f98125b1b427135dfdf87576be654ab4db (patch) | |
| tree | d77f06f667722e16486e7e2da769f22bf9418ab8 /si/n3.lyx | |
| parent | 6ec63727b831a49824c0d1705af9db68ac3fb596 (diff) | |
Errata en SSII
Diffstat (limited to 'si/n3.lyx')
| -rw-r--r-- | si/n3.lyx | 430 |
1 files changed, 278 insertions, 152 deletions
@@ -82,8 +82,8 @@ algorithm2e \begin_layout Standard Los algoritmos de búsqueda que veremos operan sobre un grafo o árbol de - búsqueda, esto es, un grafo dirigido o árbol que representa un espacio - de estados o una reducción (en cuyo caso sería un árbol o grafo Y-O). + búsqueda, un grafo dirigido o árbol que representa un espacio de estados + o una reducción (en cuyo caso sería un árbol o grafo Y-O). En cada nodo, además de almacenar el estado, almacenamos el nodo padre y la acción que se ha aplicado a este para obtener el nodo, lo que describe un camino. @@ -105,11 +105,11 @@ El entorno es \series bold observable \series default - si siempre conocemos todo el estado, + si siempre conocemos todo el estado; \series bold determinista \series default - si sabemos el resultado de cualquier secuencia de acciones desde un estado, + si sabemos el resultado de cualquier secuencia de acciones desde un estado; \series bold estático @@ -152,15 +152,15 @@ Podemos representar un problema de búsqueda en un espacio de estados como \begin_inset Formula $v$ \end_inset -; un estado inicial +; \begin_inset Formula $s\in V$ \end_inset -, y un conjunto computable de estados finales + es un estado inicial, y \begin_inset Formula $F\subseteq V$ \end_inset -. + es un conjunto computable de estados finales. Entonces una solución es un camino de \begin_inset Formula $s$ \end_inset @@ -470,6 +470,10 @@ Primero en profundidad con profundidad iterativa \begin_inset Formula $O(b^{d})$ \end_inset + para +\begin_inset Formula $d>1$ +\end_inset + y en espacio \begin_inset Formula $O(bd)$ \end_inset @@ -499,7 +503,8 @@ Suponemos \begin_inset Formula $\omega(A)\subseteq\mathbb{R}^{\geq0}$ \end_inset -.Una +. + Una \series bold función heurística \series default @@ -507,7 +512,7 @@ función heurística \begin_inset Formula $h:V\to\mathbb{R}^{\geq0}$ \end_inset - estima el menor peso de un camino de un nodo dado a un nodo objetivo de + estima el menor peso de un camino de un nodo dado a un nodo objetivo, de forma que \begin_inset Formula $h(F)=\{0\}$ \end_inset @@ -560,9 +565,9 @@ voraz \series default o \series bold -primero el mejor +primero el mejor: \series default -: + \begin_inset Formula $f(P)=h(\text{final}(P))$ \end_inset @@ -581,9 +586,9 @@ primero el mejor \begin_layout Itemize \series bold -A* +A*: \series default -: + \begin_inset Formula $f(P)=\omega(P)+h(\text{final}(P))$ \end_inset @@ -604,12 +609,8 @@ admisible \series bold optimista \series default - si, para -\begin_inset Formula $v\in V$ -\end_inset - -, -\begin_inset Formula $h(v)\leq\min\omega({\cal P}_{v,F})$ + si +\begin_inset Formula $\forall v\in V,h(v)\leq\min\omega({\cal P}_{v,F})$ \end_inset , y es @@ -657,7 +658,7 @@ Demostración: cumple \begin_inset Formula \[ -f(R)=\omega(R)+h(\text{final}(R))\leq\omega(R)+\min\omega({\cal P}_{\text{final}(R),F})\overset{S\in{\cal P}_{\text{final}(R),F}}{\leq}\omega(P)=c, +f(R)=\omega(R)+h(\text{final}(R))\leq\omega(R)+\min\omega({\cal P}_{\text{final}(R),F})\overset{S\in{\cal P}_{\text{final}(R),F}}{\leq}\omega(RS)=c, \] \end_inset @@ -676,15 +677,18 @@ f(R)=\omega(R)+h(\text{final}(R))\leq\omega(R)+\min\omega({\cal P}_{\text{final} \end_inset cumple -\begin_inset Formula $\omega(Q)\leq f(Q)\leq c$ +\begin_inset Formula $\omega(Q)\leq\omega(Q)+h(\text{final}(Q))=f(Q)\leq c$ \end_inset y tiene pues longitud máxima \begin_inset Formula $c/p$ \end_inset -, luego hay una cantidad finita de nodos así y el algoritmo siempre llega - a una solución con coste +, luego hay una cantidad finita de caminos con +\begin_inset Formula $f(Q)\leq c$ +\end_inset + + y el algoritmo siempre llega a una solución con coste \begin_inset Formula $c$ \end_inset @@ -788,7 +792,7 @@ Si \end_inset es -\begin_inset Formula $f(P_{j})=\omega(P_{j})+h(v_{j})=\omega(P_{i})+\omega(v_{i}\cdots v_{j})+h(v_{j})\geq\omega(P_{i})+h(v_{i})=f(P_{i})$ +\begin_inset Formula $f(P_{i})=\omega(P_{i})+h(v_{i})\leq\omega(P_{i})+\omega(v_{i}\cdots v_{j})+h(v_{j})=\omega(P_{j})+h(v_{j})=f(P_{j})$ \end_inset . @@ -802,7 +806,7 @@ Métodos limitados en memoria Cuando A* es óptimo, es el método óptimo más eficiente en tiempo, pero en general usa una frontera de tamaño exponencial y se queda pronto sin espacio. Algunos métodos usan menos espacio sin sacrificar optimalidad y completitud - a cambio de un mayor coste de ejecución: + a cambio de un mayor tiempo de ejecución: \end_layout \begin_layout Standard @@ -996,7 +1000,7 @@ lSSi{$ \backslash text{ \backslash -rm fallo}(t):=r$}{$b +rm fallo}(t):=r$}{$f_b \backslash gets t$} \end_layout @@ -1136,8 +1140,8 @@ Concretamente se elimina el nodo más antiguo dentro de los de mayor valor . Esto se hace así para evitar entrar en un bucle cuando todos los nodos - tienen el valor, y funciona si hay más de un nodo, pero si solo hay un - nodo esto significa que el camino solución está ocupando toda la memoria + tienen el mismo valor, y funciona si hay más de un nodo, pero si solo hay + un nodo esto significa que el camino solución está ocupando toda la memoria y no es representable en memoria. \end_layout @@ -1194,23 +1198,28 @@ Podemos representar un problema de reducción como una tupla \begin_inset Formula $(V,A,\omega,s)$ \end_inset - donde +, donde \begin_inset Formula $(V,A)$ \end_inset - es un grafo YO acíclico con -\begin_inset Formula $\{(u,S):u\in V\}$ + es un grafo Y/O acíclico con +\begin_inset Formula $V$ +\end_inset + + contable y tanto +\begin_inset Formula $\{S\subseteq V:(u,S)\in V\}$ \end_inset - finito y recursivamente enumerable a partir de + como cada uno de sus elementos finito y recursivamente enumerable a partir + de \begin_inset Formula $u$ \end_inset -, +; \begin_inset Formula $\omega:A\to\mathbb{R}^{\geq0}$ \end_inset - es una función de coste y + es una función de coste, y \begin_inset Formula $s\in V$ \end_inset @@ -1279,7 +1288,7 @@ noprefix "false" \end_inset , que va expandiendo nodos y eliminando nodos resolubles e irresolubles - de la frontera hasta que el nodo inicial sea de uno de los dos tipos. + de la frontera hasta clasificar el nodo inicial. \end_layout \begin_layout Standard @@ -1298,7 +1307,7 @@ status open \backslash Entrada{Problema de reducción $(V,A, \backslash -omega,s)$.} +omega,s)$ con $s$ no primitivo.} \end_layout \begin_layout Plain Layout @@ -1320,7 +1329,7 @@ gets \backslash }$ \backslash -; +tcp*{Caminos frontera} \end_layout \begin_layout Plain Layout @@ -1331,7 +1340,7 @@ gets \backslash emptyset$ \backslash -; +tcp*{Nodos irresolubles} \end_layout \begin_layout Plain Layout @@ -1342,11 +1351,103 @@ gets \backslash emptyset$ \backslash +tcp*{Nodos resolubles y su hiperarco siguiente} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{Resolucion}{{}resolución} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwProg{Func}{función}{}{fin} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Func{ +\backslash +Resolucion{$R,s$}}{ +\end_layout + +\begin_layout Plain Layout + + $N +\backslash +gets R(s)$ +\backslash ; \end_layout \begin_layout Plain Layout + $(V_0,A_0) +\backslash +gets( +\backslash +{s +\backslash +}, +\backslash +{(s,N) +\backslash +})$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lPara{$n +\backslash +in N$}{$(V_n,A_n) +\backslash +gets +\backslash +text{ +\backslash +Resolucion{ +\backslash +ensuremath{R,n}}}$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $(V_0 +\backslash +cup +\backslash +bigcup_{n +\backslash +in N}V_n,A_0 +\backslash +cup +\backslash +bigcup_{n +\backslash +in N}A_n)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + \backslash Mientras{$F @@ -1380,6 +1481,8 @@ subseteq V:(u_n,S) in A \backslash }$ +\backslash +; \end_layout \begin_layout Plain Layout @@ -1404,7 +1507,9 @@ emptyset$}{ $i \backslash -gets n$; +gets n$ +\backslash +; \end_layout \begin_layout Plain Layout @@ -1464,7 +1569,9 @@ gets i-1$ \backslash -Para{$v +SSi{$ +\backslash +exists v \backslash in N:(v, \backslash @@ -1475,76 +1582,61 @@ in A$}{ \begin_layout Plain Layout - $i -\backslash -gets n$ -\backslash -; -\end_layout - -\begin_layout Plain Layout - \backslash -Repetir{$ +lPara{$v +\backslash +in N:(v, \backslash -forall(u_i,S) +emptyset) \backslash -in A,S +in A$}{añadir $(v, \backslash -nsubseteq R$}{ +emptyset)$ a $R$} \end_layout \begin_layout Plain Layout - Añadir $u_i$ a $R$ + $i +\backslash +gets n$ \backslash ; \end_layout \begin_layout Plain Layout - + \backslash -lSSi{$i=0$}{ -\end_layout - -\begin_layout Plain Layout - - $A' +Mientras{$ \backslash -gets +exists(u_i,S) \backslash -{ +in A:S \backslash -text{todos los hiperarcos del camino }P +subseteq \backslash -}$ +text{ \backslash -; +rm Dom}R$}{ \end_layout \begin_layout Plain Layout - $V' -\backslash -gets -\backslash -text{vértices referenciados por }A'$ + Añadir $(u_i,S)$ a $R$ \backslash ; \end_layout \begin_layout Plain Layout - + \backslash -Devolver{$(V',A')$} -\end_layout - -\begin_layout Plain Layout - - } +lSSi{$i=0$}{ +\backslash +Devolver +\backslash +Resolucion{$R,s$}} \end_layout \begin_layout Plain Layout @@ -1563,7 +1655,9 @@ gets i-1$ \begin_layout Plain Layout - Borrar de $F$ los nodos que contienen un vértice de $R$ + Borrar de $F$ los nodos que contienen un vértice de $ +\backslash +text{Dom}R$ \backslash ; \end_layout @@ -1605,6 +1699,12 @@ name "alg:search-generic-yo" \end_inset Algoritmo genérico de búsqueda en árboles Y/O. + En la versión de clase, +\begin_inset Formula $R$ +\end_inset + + no guarda el hiperarco siguiente de los nodos y la solución se extrae pues + por arte de magia. \end_layout \end_inset @@ -1642,7 +1742,7 @@ Primero en profundidad \series bold De profundidad limitada \series default -: Como la búsqueda en profundidad pero con un límite de profundidad. +: Como primero en profundidad pero con límite de profundidad. \end_layout \begin_layout Subsection @@ -1654,7 +1754,7 @@ Usamos una función heurística \begin_inset Formula $h:V\to\mathbb{R}^{\geq0}$ \end_inset - que estima el coste mínimo de una solución a partir de un grafo. + que estima el coste mínimo de una solución a partir de un nodo. Si \begin_inset Formula $h$ \end_inset @@ -1713,6 +1813,13 @@ emptyset$.} \begin_layout Plain Layout + +\backslash +SetKwFunction{Resolucion}{{}resolución} +\end_layout + +\begin_layout Plain Layout + $R \backslash gets @@ -1721,7 +1828,7 @@ gets \backslash }$ \backslash -; +tcp*{Por resolver} \end_layout \begin_layout Plain Layout @@ -1732,7 +1839,7 @@ gets \backslash emptyset$ \backslash -; +tcp*{Completados} \end_layout \begin_layout Plain Layout @@ -1741,33 +1848,47 @@ $w_s \backslash gets h(s)$ \backslash -; +tcp*{Coste estimado} \end_layout \begin_layout Plain Layout \backslash -lPara{$v +SSi{$(s, \backslash -in V$}{$b_s +emptyset) +\backslash +in A$}{ +\end_layout + +\begin_layout Plain Layout + + $b_s \backslash gets \backslash -emptyset$} +emptyset$ +\backslash +tcp*{Conector siguiente} \end_layout \begin_layout Plain Layout - -\backslash -lSSi{$s$ es primitiva}{$C + $C \backslash gets \backslash {s \backslash -}$} +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} \end_layout \begin_layout Plain Layout @@ -1778,7 +1899,7 @@ Mientras{$s \backslash notin C \backslash -land c_s +land w_s \backslash leq F$}{ \end_layout @@ -1787,9 +1908,11 @@ leq F$}{ Tomar $n \backslash -in R$ con $b_n= +in R \backslash -emptyset$ +setminus +\backslash +text{Dom}b$ \backslash ; \end_layout @@ -1806,7 +1929,9 @@ in{ \backslash cal P}(V):(n,S) \backslash -in A$ +in A +\backslash +}$ \backslash ; \end_layout @@ -1856,15 +1981,18 @@ uSSi{$u$ es primitiva}{ \begin_layout Plain Layout - $C -\backslash -gets C + $b_u \backslash -cup +gets \backslash -{u +emptyset$ \backslash -}$ +; +\end_layout + +\begin_layout Plain Layout + + Añadir $u$ a $C$ \backslash ; \end_layout @@ -1903,15 +2031,7 @@ gets h(u)$ \begin_layout Plain Layout - $R -\backslash -gets R -\backslash -cup -\backslash -{u -\backslash -}$ + Añadir $u$ a $R$ \backslash ; \end_layout @@ -1928,22 +2048,22 @@ cup \begin_layout Plain Layout - $P + $M \backslash gets \backslash -{u +{n \backslash }$ \backslash -; +tcp*{Modificados} \end_layout \begin_layout Plain Layout \backslash -Mientras{$P +Mientras{$M \backslash neq \backslash @@ -1954,22 +2074,22 @@ emptyset$}{ Tomar $u \backslash -in P$ y sacarlo de $P$ +in M$ sin sucesores en $M$ y sacarlo de $M$ \backslash ; \end_layout \begin_layout Plain Layout - Tomar el $S:(u,S) + Tomar el $S$ con $(u,S) \backslash -in A$ con mínimo $ +in A$ de menor $ \backslash omega(u,S)+ \backslash sum_{v \backslash -in S}c_v$ +in S}w_v$ \backslash ; \end_layout @@ -1984,7 +2104,7 @@ omega(u,S)+ \backslash sum_{v \backslash -in S}c_v$ +in S}w_v$ \backslash ; \end_layout @@ -2004,20 +2124,16 @@ gets S$ \backslash lSSi{$S \backslash -subseteq C$}{$C -\backslash -gets C -\backslash -cup -\backslash -{Pu -\backslash -}$} +subseteq C$}{añadir $u$ a $C$} \end_layout \begin_layout Plain Layout - Añadir a $P$ los antecesores $v$ con $u + Añadir a $M$ los $v +\backslash +in +\backslash +text{Dom}b$ con $u \backslash in b_v$ \backslash @@ -2038,9 +2154,9 @@ in b_v$ \backslash -Devolver un grafo que contenga el nodo $s$, el conector $b_s$, los sucesores - $(n_i)_i$ de $b_s$, sus conectores $b_{n_i}$, etc., de forma recursiva hasta - llegar a primitivas +Devolver +\backslash +Resolucion{$b,s$} \backslash ; \end_layout @@ -2075,16 +2191,16 @@ Método YO*. \begin_layout Standard Para modelar procesos físicos en los que un subproblema puede tener que - resolverse dos o más veces, se pueden modificar el método YO* para trabajar + resolverse dos o más veces, se puede modificar el método YO* para trabajar con grafos que tengan ciclos, contando el coste de resolverlos varias veces, pero esto no es apropiado para problemas con procesos de resolución distintos. \end_layout \begin_layout Standard -Además, estamos suponiendo que la resolución de un subproblema no afecta - a la de otro, pero en muchos problemas sí que afecta, por lo que en vez - de esto se usan métodos de planificación. +Además, hemos supuesto que la resolución de un subproblema no afecta a la + de otro, pero en muchos problemas sí que afecta, por lo que en vez de esto + se usan métodos de planificación. \end_layout \begin_layout Section @@ -2100,29 +2216,39 @@ Si un problema tiene solución a profundidad \begin_inset Formula $N$ \end_inset - nodos (no se cuenta el nodo inicial), el + nodos (sin contar el nodo inicial), el \series bold factor de ramificación eficaz \series default - es el que un árbol con igual número de hijos en cada nodo tendría que tener - para que hubiera -\begin_inset Formula $N+1$ + es un +\begin_inset Formula $b^{*}\in\mathbb{R}^{\geq0}$ +\end_inset + + tal que +\begin_inset Formula $N=b^{*}+(b^{*})^{2}+\dots+(b^{*})^{d}$ +\end_inset + +, ya que cuando +\begin_inset Formula $b^{*}\in\mathbb{N}$ \end_inset - nodos con altura máxima +, un árbol de altura \begin_inset Formula $d$ \end_inset -, un -\begin_inset Formula $b^{*}\in\mathbb{R}^{\geq0}$ + con +\begin_inset Formula $b^{*}$ \end_inset - tal que -\begin_inset Formula $N=b^{*}+(b^{*})^{2}+\dots+(b^{*})^{d}$ + hijos en cada nodo de nivel menor que +\begin_inset Formula $d$ +\end_inset + + tiene tamaño +\begin_inset Formula $N+1$ \end_inset . - \end_layout \begin_layout Standard @@ -2135,13 +2261,13 @@ Una buena heurística debería producir valores de \end_inset . - Una forma de obtener + Podemos estimar un \begin_inset Formula $b^{*}$ \end_inset - es generar y resolver muchos problemas del mismo tipo con el método a usar, - comparando por ejemplo con BFS o búsqueda en profundidad iterativa para - tener un caso base. + medio generando y resolviendo muchos problemas del mismo tipo con el método + a usar, comparando por ejemplo con BFS o búsqueda en profundidad iterativa + para tener un caso base. \end_layout \begin_layout Standard @@ -2201,7 +2327,7 @@ problema 8-puzzle , dejando una casilla libre; como transiciones el movimiento a la casilla libre de una pieza adyacente vertical u horizontalmente, con coste 1, y - el estado final es uno en que, al concatenar las filas, aparecen los números + como estado final uno en que, al concatenar las filas, aparecen los números del 1 al 8 en orden, con la casilla libre al principio o al final según el modo de juego. \end_layout @@ -2239,7 +2365,7 @@ problema relajado \end_inset y -\begin_inset Formula $\omega'|_{V}=\omega$ +\begin_inset Formula $\omega'|_{A}=\omega$ \end_inset , con lo que el coste de una solución óptima en el problema relajado es |
