diff options
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | aalg/n4.lyx | 2 | ||||
| -rw-r--r-- | anm/n1.lyx | 58 | ||||
| -rw-r--r-- | aoc/n.lyx | 2 | ||||
| -rw-r--r-- | aoc/n3.lyx | 922 | ||||
| -rw-r--r-- | gae/n2.lyx | 24 | ||||
| -rw-r--r-- | gae/n4.lyx | 2 | ||||
| -rw-r--r-- | gae/n5.lyx | 6 | ||||
| -rw-r--r-- | gcs/n.lyx | 14 | ||||
| -rw-r--r-- | gcs/n3.lyx | 4480 | ||||
| -rw-r--r-- | graf/n.lyx | 44 | ||||
| -rw-r--r-- | graf/n4.lyx | 2075 | ||||
| -rw-r--r-- | mne/n.lyx | 198 | ||||
| -rw-r--r-- | mne/n1.lyx | 462 | ||||
| -rw-r--r-- | mne/n2.lyx | 994 | ||||
| -rw-r--r-- | si/n.lyx | 155 | ||||
| -rw-r--r-- | si/n2.lyx | 133 | ||||
| -rw-r--r-- | si/n3.lyx | 2280 | ||||
| -rw-r--r-- | si/n4.lyx | 1378 | ||||
| -rw-r--r-- | si/n5.lyx | 989 | ||||
| -rw-r--r-- | si/n6.lyx | 620 | ||||
| -rw-r--r-- | si/n7.lyx | 776 | ||||
| -rw-r--r-- | tds/n.lyx | 25 | ||||
| -rw-r--r-- | tds/n2.lyx | 3317 | ||||
| -rw-r--r-- | ts/n5.lyx | 2 |
25 files changed, 18864 insertions, 98 deletions
@@ -22,7 +22,6 @@ # *.pdf ## Generated if empty string is given at "Please type another file name for output:" -.pdf ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl @@ -249,6 +248,7 @@ TSWLatexianTemp* # LyX *.lyx~ +\#*.lyx\# # Kile *.backup @@ -278,4 +278,4 @@ TSWLatexianTemp* # REVTeX puts footnotes in the bibliography by default, unless the nofootinbib # option is specified. Footnotes are the stored in a file with suffix Notes.bib. # Uncomment the next line to have this generated file ignored. -#*Notes.bib
\ No newline at end of file +#*Notes.bib diff --git a/aalg/n4.lyx b/aalg/n4.lyx index 5bd177f..11a1a77 100644 --- a/aalg/n4.lyx +++ b/aalg/n4.lyx @@ -2125,7 +2125,7 @@ Demostración: \begin_layout Standard De aquí que toda matriz simétrica real -\begin_inset Formula $A\in{\cal M}_{m\times n}(\mathbb{R})$ +\begin_inset Formula $A\in{\cal M}_{m}(\mathbb{R})$ \end_inset admite una matriz ortogonal @@ -1028,52 +1028,54 @@ Existe \end_layout \end_deeper -\begin_layout Enumerate -Si -\begin_inset Formula $A$ -\end_inset +\begin_layout Standard +\begin_inset ERT +status open - es simétrica real, existe -\begin_inset Formula $O$ -\end_inset +\begin_layout Plain Layout + + +\backslash +sremember{AAlG} +\end_layout - ortogonal real con -\begin_inset Formula $O^{-1}AO$ \end_inset - diagonal. + \end_layout -\begin_deeper \begin_layout Standard -En este caso, la matriz es diagonalizable en -\begin_inset Formula $\mathbb{R}$ +Toda matriz simétrica real +\begin_inset Formula $A\in{\cal M}_{m}(\mathbb{R})$ +\end_inset + + admite una matriz ortogonal +\begin_inset Formula $P$ \end_inset + tal que +\begin_inset Formula $P^{-1}AP=P^{t}AP$ +\end_inset -\begin_inset Note Note + es diagonal. +\end_layout + +\begin_layout Standard +\begin_inset ERT status open \begin_layout Plain Layout -¿por qué? -\end_layout -\end_inset -, por lo que podemos seguir los mismos pasos que en -\begin_inset CommandInset ref -LatexCommand ref -reference "enu:unitary" -plural "false" -caps "false" -noprefix "false" +\backslash +eremember +\end_layout \end_inset - usando el producto escalar euclídeo. + \end_layout -\end_deeper \begin_layout Standard Dada \begin_inset Formula $A\in{\cal M}_{n}$ @@ -1762,7 +1764,6 @@ status open \begin_layout Plain Layout -\series bold \backslash - @@ -1776,7 +1777,6 @@ status open \begin_layout Plain Layout -\series bold \backslash - @@ -1790,7 +1790,6 @@ status open \begin_layout Plain Layout -\series bold \backslash - @@ -1804,7 +1803,6 @@ status open \begin_layout Plain Layout -\series bold \backslash - @@ -178,7 +178,7 @@ Release consistency \emph default , \emph on -Load-link/store-conditional +Load-link/store-conditional, Hypergraph \emph default . \end_layout @@ -480,11 +480,20 @@ fisgoneo se basan en que los nodos puedan ver los fallos de caché del resto y actuar en consecuencia, invalidando las copias si hace falta o proporcionando los datos. - Esto requiere una red totalmente ordenada que permita la difusión, como - un bus o cualquier otra red si se obliga a los mensajes a pasar por un - punto de serialización, aunque hay sistemas modernos que usan variantes - del fisgoneo que funcionan con redes que no garantizan un orden total, - normalmente anillos. + Esto requiere una red de interconexión ( +\series bold +NoC +\series default +, +\emph on +\lang english +Network on Chip +\emph default +\lang spanish +) totalmente ordenada que permita la difusión, como un bus o cualquier otra + red si se obliga a los mensajes a pasar por un punto de serialización, + aunque hay sistemas modernos que usan variantes del fisgoneo que funcionan + con redes que no garantizan un orden total, normalmente anillos. Los protocolos basados en fisgoneo funcionan bien cuando hay pocos nodos, pero con muchos nodos la red totalmente ordenada es un cuello de botella. \end_layout @@ -1119,7 +1128,26 @@ consistencia \series default , la generalización de la coherencia a posiciones de memoria distintas, es rara. - Algunos modelos: +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{samepage} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Algunos modelos: \end_layout \begin_layout Itemize @@ -1167,6 +1195,22 @@ buffers \end_deeper \begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{samepage} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard En la práctica se usan modelos de consistencia relajados: \end_layout @@ -1357,29 +1401,17 @@ Es importante que el protocolo sea escalable y requiera poca información \series bold \emph on -\lang english -Test and set +Test&set \series default \emph default -\lang spanish - ( +: Carga una posición de memoria en un registro y establece dicha posición + a 1. + Un cerrojo implementado como un booleano que está a 1 cuando el cerrojo + está bloqueado se bloquearía con \family typewriter -t&s -\family default -): Lee una posición de memoria en un registro y escribe 1 en dicha posición. - Un cerrojo representado por un booleano se bloquearía con -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - lock: t&s t0, MUTEX; bnez t0, lock -\end_layout - -\end_inset - -y se desbloquea con +\family default + y se desbloquearía con \family typewriter sw r0, LOCK \family default @@ -1399,7 +1431,22 @@ status open \begin_layout Plain Layout -lock: lw t0, MUTEX; bnez t0, lock; t&s t0, MUTEX; bnz t0, lock +lock: lw t0, MUTEX +\end_layout + +\begin_layout Plain Layout + + bnez t0, lock +\end_layout + +\begin_layout Plain Layout + + t&s t0, MUTEX +\end_layout + +\begin_layout Plain Layout + + bnz t0, lock \end_layout \end_inset @@ -1535,7 +1582,27 @@ status open \begin_layout Plain Layout -li t1, 1; lock: ll t0, MUTEX; bnez t0, lock; sc t1, MUTEX; beqz t1, lock + li t1, 1 +\end_layout + +\begin_layout Plain Layout + +lock: ll t0, MUTEX +\end_layout + +\begin_layout Plain Layout + + bnez t0, lock +\end_layout + +\begin_layout Plain Layout + + sc t1, MUTEX +\end_layout + +\begin_layout Plain Layout + + beqz t1, lock \end_layout \end_inset @@ -1549,25 +1616,627 @@ Esta implementación tiene buen rendimiento, pues la espera activa no genera \end_layout \begin_layout Section -Red de interconexión +Redes de interconexión \end_layout \begin_layout Standard -Al aumentar el número de núcleos de un procesador, una mala red de interconexión - puede consumir buena parte de la energía y dar lugar a cuellos de botella. - Cuando se requieren muchos núcleos, se usan también redes de interconexión - externas como los +En sistemas con varias CPUs puede haber +\series bold +interconexión \emph on \lang english -clusters +on-chip +\series default \emph default \lang spanish - de servidores. -\begin_inset Note Note +, entre procesadores en un mismo chip, e +\series bold +interconexión +\emph on +\lang english +off-chip +\series default +\emph default +\lang spanish +, entre procesadores de distintos chips, como en los clústeres de servidores. + Las redes Ethernet suelen tener ancho de banda de +\begin_inset Formula $0.1,1,10,\unit[100]{Gbps},\dots$ +\end_inset + + y latencia de único salto de +\begin_inset Formula $\unit[\text{25--100}]{\mu s}$ +\end_inset + +, mientras que InfiniBand tiene +\begin_inset Formula $20,40,54,\unit[80]{Gbps},\dots$ +\end_inset + + y latencia de único salto de +\begin_inset Formula $\unit[\text{1--3}]{\mu s}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las redes están formadas por enlaces; conmutadores ( +\emph on +\lang english +switches +\emph default +\lang spanish + o +\emph on +\lang english +routers +\emph default +\lang spanish +), que conectan enlaces y pueden tener funciones de encaminamiento, y una + interfaz de red en cada núcleo que lo conecta con un conmutador. +\end_layout + +\begin_layout Standard +La longitud de un cable determina la frecuencia a la que se puede operar + y la potencia que puede haber que disipar. + Interesa una red con alto ancho de banda (frecuencia por número de hilos) + y baja latencia, simple (lo que suele llevar a mejor rendimiento), fiable + (que no produzca fallos y soporte un número limitado de ellos) y con bajo + coste económico y energético. + Además, queremos estructurarla de forma escalable (que el ancho de banda + aumente conforme lo haga el número de nodos) y fácilmente particionable + (que se pueda dividir en subsistemas), pues al aumentar el número de núcleos, + una mala red de interconexión puede consumir buena parte de la energía + y dar lugar a cuellos de botella. +\end_layout + +\begin_layout Subsection +Topologías de red +\end_layout + +\begin_layout Standard +Un +\series bold +hipergrafo dirigido +\series default + es un par +\begin_inset Formula $(V,H)$ +\end_inset + + formado por un conjunto de +\series bold +nodos +\series default + +\begin_inset Formula $V$ +\end_inset + + y un conjunto de +\series bold +hiperarcos +\series default + +\begin_inset Formula $H\subseteq\{(A,B)\in{\cal P}(V)\times{\cal P}(V):A,B\neq\emptyset\}$ +\end_inset + +. + Un +\series bold +hipergrafo no dirigido +\series default + es un par +\begin_inset Formula $(V,H)$ +\end_inset + + donde +\begin_inset Formula $V$ +\end_inset + + es un conjunto de nodos y +\begin_inset Formula $H\subseteq{\cal P}(V)\setminus\{\emptyset\}$ +\end_inset + + es un conjunto de +\series bold +hiperejes +\series default +. + Identificamos el hipergrafo no dirigido +\begin_inset Formula $(V,H)$ +\end_inset + + con el hipergrafo dirigido +\begin_inset Formula $(V,\{(h,h)\}_{h\in H})$ +\end_inset + +. + con ancho de banda +\begin_inset Formula $\omega(A,B)$ +\end_inset + +. + Un +\series bold +corte de bisección +\series default + de un hipergrafo no dirigido finito es un conjunto separador de hiperejes + de tamaño mínimo, y el +\series bold +ancho de la bisección +\series default + ( +\emph on +\lang english +bisection bandwidth +\emph default +\lang spanish +) es dicho tamaño. +\end_layout + +\begin_layout Standard +Una +\series bold +hiperred +\series default + es una tupla +\begin_inset Formula $(V,H,\omega)$ +\end_inset + + donde +\begin_inset Formula $(V,H)$ +\end_inset + + es un hipergrafo y +\begin_inset Formula $\omega:H\to\mathbb{R}$ +\end_inset + + es una función de pesos. + Un corte de bisección de una hiperred no dirigida finita es un conjunto + separador de hiperejes con mínima suma de los pesos, y el ancho de la bisección + es dicha suma. +\end_layout + +\begin_layout Standard +Una +\series bold +topología de red +\series default + es un hipergrafo dirigido finito +\begin_inset Formula $(V,H)$ +\end_inset + + donde los nodos representan +\emph on +\lang english +routers +\emph default +\lang spanish + y un hiperarco +\begin_inset Formula $(A,B)$ +\end_inset + + es un enlace que transmite de los nodos de +\begin_inset Formula $A$ +\end_inset + + a los de +\begin_inset Formula $B$ +\end_inset + +. + Si se añade una función de pesos, el peso de un enlace es su ancho de banda. + La topología es +\series bold +simétrica +\series default + si el hipergrafo es no dirigido. + Informalmente, es +\series bold +regular +\series default + si los nodos están conectados en un patrón definido, de modo que se pueden + asignar coordenadas a los nodos y generalmente se pueden encaminar los + mensajes solo según las coordenadas de los extremos, y es +\series bold +irregular +\series default + si los nodos se conectan sin estructura, lo que es más expansible, en cuyo + caso se suele encaminar con algoritmos que intentan encontrar el camino + más corto. +\end_layout + +\begin_layout Standard +Algunas topologías regulares simétricas, donde +\begin_inset Formula $\mathbb{N}_{n}:=\{0,\dots,n-1\}$ +\end_inset + +: +\end_layout + +\begin_layout Itemize + +\series bold +Buses +\series default +: +\begin_inset Formula $(V,\{V\})$ +\end_inset + +, con ancho de bisección 1 y grado 1. +\end_layout + +\begin_layout Itemize + +\series bold +Mallas +\series default + +\begin_inset Formula $n$ +\end_inset + +-dimensionales: +\begin_inset Formula $(V,E)$ +\end_inset + + con +\begin_inset Formula $V:=\mathbb{N}_{d_{1}}\times\dots\times\mathbb{N}_{d_{n}}$ +\end_inset + + y +\begin_inset Formula +\[ +E:=\{\{(i_{1},\dots,i_{n}),(i_{1},\dots,i_{k-1},i_{k}+1,i_{k+1},\dots,i_{n})\}\}_{(i_{1},\dots,i_{n})\in V,k\in\mathbb{N}_{d},i_{k}+1<d_{k}}. +\] + +\end_inset + + +\end_layout + +\begin_layout Itemize + +\series bold +Hipercubos +\series default +: Mallas con +\begin_inset Formula $d_{i}=2$ +\end_inset + + para todo +\begin_inset Formula $i$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\series bold +Toros +\series default + +\begin_inset Formula $n$ +\end_inset + +-dimensionales: +\begin_inset Formula $(V,E)$ +\end_inset + + con +\begin_inset Formula $V:=\mathbb{N}_{d_{1}}\times\dots\times\mathbb{N}_{d_{n}}$ +\end_inset + + y +\begin_inset Formula +\[ +E:=\{\{(i_{1},\dots,i_{n}),(i_{1},\dots,i_{k-1},i_{k}+1\bmod d_{k},i_{k+1},\dots,i_{n})\}\}_{(i_{1},\dots,i_{n})\in V,k\in\mathbb{N}_{d}}. +\] + +\end_inset + + +\end_layout + +\begin_layout Itemize + +\series bold +Anillos +\series default +: Toros unidimensionales, con ancho de bisección 2, grado 2 y diámetro +\begin_inset Formula $\lfloor\frac{n}{2}\rfloor$ +\end_inset + + si tiene +\begin_inset Formula $n$ +\end_inset + + nodos. +\end_layout + +\begin_layout Itemize + +\series bold +Árboles +\series default +, con ancho de bisección 1 y encaminamiento normalmente por el único camino + entre fuente y destino. +\end_layout + +\begin_layout Subsection +Redes indirectas +\end_layout + +\begin_layout Standard +Una red es +\series bold +directa +\series default + si cada conmutador conecta con algún núcleo e +\series bold +indirecta +\series default + en otro caso. + Los buses y las mallas son redes directas. + Las +\series bold +redes +\emph on +cross-bar +\series default +\emph default + son redes indirectas con los nodos +\begin_inset Formula +\[ +(\mathbb{N}_{n}\times\mathbb{N}_{m},\{\{(n,m),(n+1,m)\},\{(n,m),(n,m+1)\}\}_{(n,m)\in\mathbb{N}_{n-1}\times\mathbb{N}_{m-1}}), +\] + +\end_inset + +con los nodos en +\begin_inset Formula $\mathbb{N}_{n}\times0$ +\end_inset + + conectados a +\begin_inset Formula $n$ +\end_inset + + núcleos de procesador y los nodos en +\begin_inset Formula $0\times\mathbb{N}_{m}$ +\end_inset + + conectados a +\begin_inset Formula $m$ +\end_inset + + unidades de memoria. + Los conmutadores se llaman +\series bold +\emph on +\lang english +cross-point switches +\series default +\emph default +\lang spanish +. +\end_layout + +\begin_layout Standard +Una +\series bold +red multietapa +\series default + de +\begin_inset Formula $n$ +\end_inset + + etapas tiene topología +\begin_inset Formula +\[ +(\mathbb{N}_{m}\times\mathbb{N}_{n+1},\{\{(i,j),(i,j+1)\},\{(i,j),(\sigma_{j}(i),j+1)\}\}_{(i,j)\in\mathbb{N}_{m}\times\mathbb{N}_{n}}), +\] + +\end_inset + +donde cada +\begin_inset Formula $\sigma_{j}:\mathbb{N}_{m}\to\mathbb{N}_{m}$ +\end_inset + + es una permutación y los conmutadores conectados a nodos son los +\begin_inset Formula $\mathbb{N}_{m}\times\{0\}$ +\end_inset + + y los +\begin_inset Formula $\mathbb{N}_{m}\times\{n\}$ +\end_inset + +, con distintos tipos de nodo. +\end_layout + +\begin_layout Standard +Una red +\series bold +\emph on +\lang english +Butterfly +\series default +\emph default +\lang spanish + es una de +\begin_inset Formula $n$ +\end_inset + + etapas con +\begin_inset Formula $2^{n}$ +\end_inset + + nodos a cada lado y +\begin_inset Formula $\sigma_{j}(i)=i+2^{j}\bmod2^{n}$ +\end_inset + +, y es +\series bold +bloqueante +\series default +, es decir, se puede producir contención en los enlaces según la comunicación + entre los nodos de un lado y del otro. + Una red +\series bold +Benes +\series default + resulta de +\begin_inset Quotes cld +\end_inset + +concatenar +\begin_inset Quotes crd +\end_inset + + dos redes +\emph on +\lang english +Butterfly +\emph default +\lang spanish +: tiene +\begin_inset Formula $2n$ +\end_inset + + etapas y +\begin_inset Formula $2^{n}$ +\end_inset + + nodos a cada lado y +\begin_inset Formula $\sigma_{j}(i)=i+2^{\min\{j,2n-j-1\}}\bmod2^{n}$ +\end_inset + +. + Es no bloqueante. +\end_layout + +\begin_layout Subsection +Mecanismo de enrutamiento +\end_layout + +\begin_layout Standard +El enrutamiento es +\series bold +determinista +\series default + si la ruta que siguen los mensajes solo depende del origen y el destino, + y es +\series bold +adaptativo +\series default + si también depende del estado de la red y de los enlaces. + Puede ser +\series bold +de ruta mínima +\series default + o +\series bold +no mínima +\series default +, y en el último caso puede tener o no +\series bold +vuelta atrás +\series default + (poder o no producir paseos que no sean caminos). + El enrutamiento es +\series bold +fuente +\series default + si el nodo origen calcula todo el camino y es +\series bold +destino +\series default + si cada conmutador decide el siguiente enlace. +\end_layout + +\begin_layout Standard +En una malla +\begin_inset Formula $(V,E)$ +\end_inset + +, el +\series bold +\emph on +\lang english +dimension-order routing +\series default +\emph default +\lang spanish + consiste en que, si +\begin_inset Formula $x,y\in V$ +\end_inset + + con +\begin_inset Formula $x\neq y$ +\end_inset + +, para llevar un mensaje de +\begin_inset Formula $x$ +\end_inset + + a +\begin_inset Formula $y$ +\end_inset + +, tomamos el menor +\begin_inset Formula $k$ +\end_inset + + con +\begin_inset Formula $x_{k}\neq y_{k}$ +\end_inset + + y lo llevamos primero a +\begin_inset Formula $(x_{1},\dots,x_{k-1},x_{k}\pm1,x_{k+1},\dots,x_{n})$ +\end_inset + +, tomando +\begin_inset Formula $x_{k}+1$ +\end_inset + + si +\begin_inset Formula $x_{k}<y_{k}$ +\end_inset + + o +\begin_inset Formula $x_{k}-1$ +\end_inset + + si +\begin_inset Formula $x_{k}>y_{k}$ +\end_inset + +. + En un hipercubo esto se llama +\series bold +\emph on +\lang english +edge-cube routing +\series default +\emph default +\lang spanish +. +\end_layout + +\begin_layout Section +Estrategia de conmutación +\end_layout + +\begin_layout Standard +Es la forma en que los datos pasan a través de los conmutadores. +\end_layout + +\begin_layout Standard +\begin_inset ERT status open \begin_layout Plain Layout + +\backslash +sremember{AR} \end_layout \end_inset @@ -1575,5 +2244,188 @@ status open \end_layout +\begin_layout Description +Conmutación +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +circuitos La red telefónica. + [...] Conectan puertos de entrada y salida [...]. + [...] El circuito es dedicado y con un ancho de banda fijo [...]. + [La latencia es el tiempo de establecer el circuito y propagar los datos.] +\end_layout + +\begin_layout Description + +\series bold +Conmutación +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +mensajes +\series default + Los +\emph on +\lang english +routers +\emph default +\lang spanish + redirigen el mensaje por la interfaz adecuada usando información adicional + en los mismos [...], y usan +\emph on +\lang english +buffers +\emph default +\lang spanish + para almacenar los mensajes [...] ( +\emph on +\lang english +store-and-forward +\emph default +\lang spanish +). +\end_layout + +\begin_layout Description +Conmutación +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +paquetes Como la de mensajes, pero los mensajes se dividen en trozos pequeños + llamados paquetes, enrutados individualmente [...]. + [La latencia es proporcional a la distancia.] +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +eremember +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +En redes +\emph on +\lang english +on-chip +\emph default +\lang spanish + se usan mecanismos de altas prestaciones: +\end_layout + +\begin_layout Description + +\emph on +\lang english +Wormhole +\emph default +\lang spanish + Los paquetes se dividen en +\emph on +\lang english +flits +\emph default +\lang spanish +, trozos con el tamaño exacto que cabe en el canal, de los que el primero + contiene la cabecera con la dirección de destino. + El +\emph on +\lang english +switch +\emph default +\lang spanish + encamina el paquete en cuanto recibe la cabecera, y solo almacena partes + de este en +\emph on +\lang english +buffers +\emph default +\lang spanish + pequeños con baja latencia y poco sensibles a la distancia. +\end_layout + +\begin_layout Description + +\emph on +\lang english +Virtual +\begin_inset space ~ +\end_inset + +Cut +\begin_inset space ~ +\end_inset + +Through +\emph default +\lang spanish + Variante de +\emph on +\lang english +wormhole +\emph default +\lang spanish + en la que, si el canal de salida no está disponible, el paquete se almacena. + La latencia es similar a la de +\emph on +\lang english +wormhole +\emph default +\lang spanish +, no afectada por la distancia, y da más prestaciones cuando hay congestión + a cambio de necesitar +\emph on +\lang english +buffers +\emph default +\lang spanish + más grandes, capaces de almacenar un paquete completo. +\end_layout + +\begin_layout Standard +Para el control de flujo en altas prestaciones, cuando se alcanza un límite + de uso +\emph on +\lang english +stop +\emph default +\lang spanish + procesando +\emph on +\lang english +flits +\emph default +\lang spanish + de un canal, se envía una señal al resto para que dejen de enviar y evitar + el desbordamiento, y cuando el uso baja un límite +\emph on +\lang english +go +\emph default +\lang spanish +, se avisa al resto de que pueden volver a enviar. +\end_layout + \end_body \end_document @@ -642,9 +642,10 @@ Q'\in f({\cal L})\iff\exists\vec{w}\in W:Q'=f(P+\vec{w})=f(P)+\overrightarrow{f} \end_inset . -\begin_inset Newline newline -\end_inset +\end_layout +\begin_deeper +\begin_layout Standard Se sigue de lo anterior y de que \begin_inset Formula $\overrightarrow{f}$ \end_inset @@ -652,6 +653,7 @@ Se sigue de lo anterior y de que conserva las inclusiones entre subespacios. \end_layout +\end_deeper \begin_layout Enumerate Sea \begin_inset Formula $f$ @@ -1198,9 +1200,10 @@ Si \end_inset . -\begin_inset Newline newline -\end_inset +\end_layout +\begin_deeper +\begin_layout Standard Como \begin_inset Formula $\overrightarrow{f}=\overrightarrow{H_{O,\lambda}}$ \end_inset @@ -1233,6 +1236,7 @@ Como \end_layout +\end_deeper \begin_layout Enumerate \begin_inset Formula $H_{O,\lambda}\circ H_{O,\mu}=H_{O,\mu}\circ H_{O,\lambda}=H_{O,\lambda\mu}$ \end_inset @@ -1682,9 +1686,10 @@ simetría afín \end_inset . -\begin_inset Newline newline -\end_inset +\end_layout +\begin_deeper +\begin_layout Standard Sean \begin_inset Formula $\overrightarrow{AQ}=\vec{w}_{1}+\vec{w}_{2}$ \end_inset @@ -1708,6 +1713,7 @@ p(Q+\vec{u})=p(A+(\vec{w}_{1}+\vec{u}_{1})+(\vec{w}_{2}+\vec{u}_{2}))=A+(\vec{w} La simetría se hace de forma análoga. \end_layout +\end_deeper \begin_layout Enumerate \begin_inset Formula ${\cal L}=\text{Fix}(p)$ \end_inset @@ -1717,9 +1723,10 @@ La simetría se hace de forma análoga. \end_inset . -\begin_inset Newline newline -\end_inset +\end_layout +\begin_deeper +\begin_layout Standard Si \begin_inset Formula $\vec{w}_{1}\in W_{1},\vec{w}_{2}\in W_{2}$ \end_inset @@ -1735,6 +1742,7 @@ Q:=A+\vec{w}_{1}+\vec{w}_{2}\in\text{Fix}(p)\iff\vec{w}_{2}=0\iff Q=A+\vec{w}_{1 \end_layout +\end_deeper \begin_layout Enumerate \begin_inset Formula ${\cal L}=\text{Fix}(s)$ \end_inset @@ -739,7 +739,7 @@ Un vector en \end_layout \begin_layout Section -Tranformaciones ortogonales en +Transformaciones ortogonales en \begin_inset Formula ${\cal E}_{2}$ \end_inset @@ -178,9 +178,10 @@ Fijado \end_inset . -\begin_inset Newline newline -\end_inset +\end_layout +\begin_deeper +\begin_layout Standard A continuación veamos que \begin_inset Formula $\ell$ \end_inset @@ -234,6 +235,7 @@ A continuación veamos que . \end_layout +\end_deeper \begin_layout Itemize \begin_inset Argument item:1 status open @@ -175,5 +175,19 @@ filename "n2.lyx" \end_layout +\begin_layout Chapter +Curvatura de superficies +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n3.lyx" + +\end_inset + + +\end_layout + \end_body \end_document diff --git a/gcs/n3.lyx b/gcs/n3.lyx new file mode 100644 index 0000000..02ffa54 --- /dev/null +++ b/gcs/n3.lyx @@ -0,0 +1,4480 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\input{../defs} +\end_preamble +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Orientación +\end_layout + +\begin_layout Standard +Dada una superficie regular +\begin_inset Formula $S$ +\end_inset + +, un +\series bold +campo de vectores +\series default + sobre +\begin_inset Formula $S$ +\end_inset + + es una función +\begin_inset Formula $\xi:S\to\mathbb{R}^{3}$ +\end_inset + +, y es +\series bold +tangente +\series default + si +\begin_inset Formula $\xi(p)\in T_{p}S$ +\end_inset + + para todo +\begin_inset Formula $p\in S$ +\end_inset + +, +\series bold +normal +\series default + si +\begin_inset Formula $\xi(p)\in(T_{p}S)^{\bot}$ +\end_inset + + para todo +\begin_inset Formula $p\in S$ +\end_inset + + y +\series bold +unitario +\series default + si +\begin_inset Formula $|\xi(p)|=1$ +\end_inset + + para todo +\begin_inset Formula $p\in S$ +\end_inset + +. + Llamamos +\begin_inset Formula $\mathfrak{X}(S)$ +\end_inset + + al conjunto de campos de vectores tangentes sobre +\begin_inset Formula $S$ +\end_inset + + y +\begin_inset Formula $\mathfrak{X}(S)^{\bot}$ +\end_inset + + al conjunto de campos de vectores normales sobre +\begin_inset Formula $S$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Una +\series bold +orientación +\series default + de una superficie regular +\begin_inset Formula $S$ +\end_inset + + es un campo de vectores diferenciable, normal y unitario sobre +\begin_inset Formula $S$ +\end_inset + +. + +\begin_inset Formula $S$ +\end_inset + + es +\series bold +orientable +\series default + si admite una orientación, si y sólo si existe un campo +\begin_inset Formula $\xi$ +\end_inset + + normal y diferenciable sobre +\begin_inset Formula $S$ +\end_inset + + que no se anula en ningún punto, pues las orientaciones son de esta forma + y, dado +\begin_inset Formula $\xi$ +\end_inset + +, basta tomar la orientación +\begin_inset Formula $N(p):=\xi(p)/|\xi(p)|$ +\end_inset + +. + Una orientación +\begin_inset Formula $N$ +\end_inset + + de +\begin_inset Formula $S$ +\end_inset + + da a cada +\begin_inset Formula $p\in S$ +\end_inset + + un sentido de giro para +\begin_inset Formula $T_{p}S$ +\end_inset + + dado por el producto vectorial en +\begin_inset Formula $\mathbb{R}^{3}$ +\end_inset + +. + +\begin_inset Formula $S$ +\end_inset + + está orientada cuando se ha escogido una orientación concreta, en cuyo + caso dicha orientación es su +\series bold +aplicación de Gauss +\series default +. +\end_layout + +\begin_layout Standard +Ejemplos: +\begin_inset Note Comment +status open + +\begin_layout Enumerate +La banda de Möbius se puede expresar como la imagen de +\begin_inset Formula $X:\mathbb{R}\times(-1,1)\to\mathbb{R}^{3}$ +\end_inset + + dada por +\begin_inset Formula +\[ +X(u,v):=\left((2-v\sin\tfrac{u}{2})\sin u,(2-v\sin\tfrac{u}{2})\cos u,v\cos\tfrac{u}{2}\right). +\] + +\end_inset + +Esta es una superficie regular no orientable. +\end_layout + +\begin_deeper +\begin_layout Plain Layout +Claramente +\begin_inset Formula $X$ +\end_inset + + es diferenciable, y es inyectiva en +\begin_inset Formula $U_{1}:=(0,2\pi)\times(-1,1)$ +\end_inset + + y en +\begin_inset Formula $U_{2}:=(-\pi,\pi)\times(-1,1)$ +\end_inset + +. + Su diferencial es +\begin_inset Formula +\[ +dX(u,v)\equiv\begin{pmatrix}-\frac{v}{2}\cos\frac{u}{2}\sin u+(2-v\sin\frac{u}{2})\cos u & -\sin\frac{u}{2}\sin u\\ +-\frac{v}{2}\cos\frac{u}{2}\cos u-(2-v\sin\frac{u}{2})\sin u & -\sin\frac{u}{2}\cos u\\ +-\frac{v}{2}\sin\frac{u}{2} & \cos\frac{u}{2} +\end{pmatrix}, +\] + +\end_inset + +y el determinante de las dos primeras filas es +\begin_inset Formula +\[ +-\sin\frac{u}{2}\left(-\frac{v}{2}\cos\frac{u}{2}\begin{vmatrix}\sin u & \sin u\\ +\cos u & \cos u +\end{vmatrix}+\left(2-v\sin\frac{u}{2}\right)\begin{vmatrix}\cos u & \sin u\\ +-\sin u & \cos u +\end{vmatrix}\right)=-\sin\frac{u}{2}\left(2-v\sin\frac{u}{2}\right), +\] + +\end_inset + +lo que solo se anula cuando +\begin_inset Formula $u\in\{2k\pi\}_{k\in\mathbb{Z}}$ +\end_inset + +, pero en tal caso +\begin_inset Formula +\[ +dX(u,v)\equiv\begin{pmatrix}2 & 0\\ +-\frac{v}{2} & 0\\ +0 & 1 +\end{pmatrix} +\] + +\end_inset + +y el determinante de la submatriz resultante de quitar la segunda fila es + +\begin_inset Formula $2\neq0$ +\end_inset + +. + Esto prueba que la banda de Möbius es una superficie. +\end_layout + +\end_deeper +\end_inset + + +\end_layout + +\begin_layout Enumerate +El plano +\begin_inset Formula $p_{0}+\langle v\rangle^{\bot}\subseteq\mathbb{R}^{3}$ +\end_inset + + admite la orientación +\begin_inset Formula $N(p):=v/|v|$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +Dados +\begin_inset Formula $f:\mathbb{R}^{3}\to\mathbb{R}$ +\end_inset + + +\begin_inset Formula ${\cal C}^{2}$ +\end_inset + + y un valor regular +\begin_inset Formula $c$ +\end_inset + + de +\begin_inset Formula $f$ +\end_inset + +, la superficie de nivel +\begin_inset Formula $S:=f^{-1}(c)$ +\end_inset + + admite la orientación +\begin_inset Formula +\[ +N(p):=\frac{\nabla f(p)}{|\nabla f(p)|}, +\] + +\end_inset + + donde +\begin_inset Formula $\nabla f(p):=(\frac{\partial f}{\partial x}(p),\frac{\partial f}{\partial y}(p),\frac{\partial f}{\partial z}(p))$ +\end_inset + + es el +\series bold +gradiente +\series default + de +\begin_inset Formula $f$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Sean +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $\alpha:=(x,y,z):I\to S$ +\end_inset + + una curva diferenciable con +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $v:=\alpha'(0)\in T_{p}S$ +\end_inset + +, para +\begin_inset Formula $t\in I$ +\end_inset + + es +\begin_inset Formula $f(\alpha(t))=c$ +\end_inset + + por ser +\begin_inset Formula $\alpha(t)\in S$ +\end_inset + +, luego derivando, +\begin_inset Formula $\frac{\partial f}{\partial x}(\alpha(t))x'(t)+\frac{\partial f}{\partial y}(\alpha(t))y'(t)+\frac{\partial f}{\partial z}(\alpha(t))z'(t)=0$ +\end_inset + + y +\begin_inset Formula $\nabla f(p)\bot v$ +\end_inset + +. + Además, +\begin_inset Formula $\nabla f(p)\neq0$ +\end_inset + + porque +\begin_inset Formula $p\in S=f^{-1}(c)$ +\end_inset + + y +\begin_inset Formula $c$ +\end_inset + + es un valor regular de +\begin_inset Formula $f$ +\end_inset + +, y claramente +\begin_inset Formula $\nabla f$ +\end_inset + + es diferenciable. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\mathbb{S}^{2}(r)$ +\end_inset + + admite la orientación +\begin_inset Formula $N(p)=\frac{1}{r}p$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Sea +\begin_inset Formula $f(x,y,z):=x^{2}+y^{2}+z^{2}$ +\end_inset + +, +\begin_inset Formula $r^{2}$ +\end_inset + + es un valor regular de +\begin_inset Formula $f$ +\end_inset + + y +\begin_inset Formula $\mathbb{S}^{2}$ +\end_inset + + es la superficie de nivel +\begin_inset Formula $\{p:f(p)=r^{2}\}$ +\end_inset + +, luego admite la orientación +\begin_inset Formula +\[ +N(x,y,z)=\frac{\nabla f(x,y,z)}{|\nabla f(x,y,z)|}=\frac{(2x,2y,2z)}{|(2x,2y,2z)|}=\frac{(x,y,z)}{|(x,y,z)|}=\frac{1}{r}(x,y,z). +\] + +\end_inset + + +\end_layout + +\end_deeper +\begin_layout Enumerate +El cilindro +\begin_inset Formula $\{x^{2}+y^{2}=r^{2}\}$ +\end_inset + + admite la orientación +\begin_inset Formula $N(x,y,z)=(x,y,0)$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Es una superficie de nivel y tiene pues orientación +\begin_inset Formula $N(p)=\frac{(2x,2y,0)}{|(2x,2y,0)|}=\frac{(x,y,0)}{|(x,y,0)|}=\frac{1}{r}(x,y,0)$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +Dada +\begin_inset Formula $f:U\subseteq\mathbb{R}^{2}\to\mathbb{R}$ +\end_inset + + diferenciable en el abierto +\begin_inset Formula $U$ +\end_inset + +, el grafo +\begin_inset Formula $S:=\{(x,y,f(x,y))\}_{x,y\in U}$ +\end_inset + + admite la orientación +\begin_inset Formula +\[ +N(u,v)=\frac{(-f_{u},-f_{v},1)}{\sqrt{1+f_{u}^{2}+f_{v}^{2}}}(u,v). +\] + +\end_inset + +Dada la parametrización +\begin_inset Formula $(U,X)$ +\end_inset + + con +\begin_inset Formula $X(u,v):=(u,v,f(u,v))$ +\end_inset + +, +\begin_inset Formula $X_{u}=(1,0,f_{u})$ +\end_inset + + y +\begin_inset Formula $X_{v}=(0,1,f_{v})$ +\end_inset + +, y +\begin_inset Formula $X_{u}\wedge X_{v}=(-f_{u},-f_{v},1)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las superficies orientables tienen exactamente dos orientaciones, una opuesta + de la otra. +\end_layout + +\begin_layout Standard +Dos cartas +\begin_inset Formula $(U,X)$ +\end_inset + + y +\begin_inset Formula $(U',X')$ +\end_inset + + de +\begin_inset Formula $S$ +\end_inset + + son +\series bold +compatibles +\series default + si +\begin_inset Formula $V:=X(U)$ +\end_inset + + y +\begin_inset Formula $V':=X'(U')$ +\end_inset + + son disjuntos o +\begin_inset Formula $\det(Jh)>0$ +\end_inset + +, donde +\begin_inset Formula $h:X^{-1}(V')\to(X')^{-1}(V)$ +\end_inset + + es el cambio de coordenadas de +\begin_inset Formula $V$ +\end_inset + + a +\begin_inset Formula $V'$ +\end_inset + +. + Un +\series bold +atlas +\series default + para +\begin_inset Formula $S$ +\end_inset + + es una familia +\begin_inset Formula $\{(U_{i},X_{i})\}_{i\in I}$ +\end_inset + + de cartas tales que +\begin_inset Formula $\bigcup_{i\in I}X_{i}(U_{i})=S$ +\end_inset + +. + Entonces una superficie es orientable si y sólo si existe un atlas cuyas + cartas son compatibles. +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Sean +\begin_inset Formula ${\cal A}:=\{(U_{i},X_{i})\}_{i\in I}$ +\end_inset + + un atlas de cartas compatibles en +\begin_inset Formula $S$ +\end_inset + +, +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $(U,X)\in{\cal A}(I)$ +\end_inset + + con +\begin_inset Formula $p\in X(U)$ +\end_inset + + y +\begin_inset Formula $N:X(U)\to\mathbb{R}^{3}$ +\end_inset + + dado por +\begin_inset Formula +\[ +N(X(u,v)):=N(u,v):=\frac{X_{u}\wedge X_{v}}{|X_{u}\wedge X_{v}|}(u,v), +\] + +\end_inset + + +\begin_inset Formula $N$ +\end_inset + + está bien definido y es diferenciable, normal y unitario. + Sean ahora +\begin_inset Formula $(\overline{U},\overline{X})\in{\cal A}(I)$ +\end_inset + + con +\begin_inset Formula $p\in\overline{X}(\overline{U})$ +\end_inset + +, +\begin_inset Formula $\overline{N}(\overline{X}(u,v)):=\overline{N}(u,v):=\frac{\overline{X}_{u}\cap\overline{X}_{v}}{|\overline{X}_{u}\cap\overline{X}_{v}|}(u,v)$ +\end_inset + + y +\begin_inset Formula $h$ +\end_inset + + el cambio de coordenadas de +\begin_inset Formula $(U,X)$ +\end_inset + + a +\begin_inset Formula $(\overline{U},\overline{X})$ +\end_inset + +, para +\begin_inset Formula $(u,v)\in X^{-1}(V_{0})$ +\end_inset + +, +\begin_inset Formula +\[ +dX(u,v)=d(\overline{X}\circ h)(u,v)=d\overline{X}(h(u,v))\circ dh(u,v), +\] + +\end_inset + + luego +\begin_inset Formula +\[ +N(u,v)=\frac{X_{u}\wedge X_{v}}{|X_{u}\wedge X_{v}|}=\frac{\det(Jh(u,v))}{|\det(Jh(u,v))|}\frac{\overline{X}_{u}\wedge\overline{X}_{v}}{|\overline{X}_{u}\wedge\overline{X}_{v}|}(h(u,v))\overset{Jh(u,v)>0}{=}\overline{N}(u,v), +\] + +\end_inset + + de modo que +\begin_inset Formula $N(p)$ +\end_inset + + es diferenciable, normal, unitario y no depende de la carta del atlas escogida. +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Sea +\begin_inset Formula $N$ +\end_inset + + una orientación de +\begin_inset Formula $S$ +\end_inset + +, para toda carta +\begin_inset Formula $(U,X)$ +\end_inset + + de +\begin_inset Formula $S$ +\end_inset + + es +\begin_inset Formula $N(X(q))=\pm\frac{X_{u}\wedge X_{v}}{|X_{u}\wedge X_{v}|}(q)$ +\end_inset + + para todo +\begin_inset Formula $q\in U$ +\end_inset + +. + Entonces, para +\begin_inset Formula $p\in S$ +\end_inset + +, podemos tomar una carta +\begin_inset Formula $(U_{p},X_{p})$ +\end_inset + + de +\begin_inset Formula $S$ +\end_inset + + con +\begin_inset Formula $N(X(q))=\frac{(X_{p})_{u}\wedge(X_{p})_{v}}{|(X_{p})_{u}\wedge(X_{p})_{v}|}(q)$ +\end_inset + + para +\begin_inset Formula $q\in U$ +\end_inset + +, pues si el normal fuese el opuesto basta cambiar +\begin_inset Formula $X_{p}(u,v)$ +\end_inset + + por +\begin_inset Formula $X_{p}(v,u)$ +\end_inset + + y +\begin_inset Formula $U_{p}$ +\end_inset + + por +\begin_inset Formula $\{(u,v)\}_{(v,u)\in U}$ +\end_inset + +, y el resultado se tiene por la antisimetría del producto vectorial. + Con esto, dados +\begin_inset Formula $a,b\in S$ +\end_inset + + con +\begin_inset Formula $V:=X_{a}(U_{a})\cap X_{b}(U_{b})\neq\emptyset$ +\end_inset + +, queremos ver que el determinante del cambio de coordenadas +\begin_inset Formula $h:X_{a}^{-1}(V)\to X_{b}^{-1}(V)$ +\end_inset + + de +\begin_inset Formula $(U_{a},X_{a})$ +\end_inset + + a +\begin_inset Formula $(U_{b},X_{b})$ +\end_inset + + tiene jacobiano con determinante positivo. + En efecto, +\begin_inset Formula $\det(Jh)$ +\end_inset + + debe ser no nulo, pero si fuera negativo, para un +\begin_inset Formula $p\in V$ +\end_inset + +, sean +\begin_inset Formula $q_{a}:=X_{a}^{-1}(p)$ +\end_inset + + y +\begin_inset Formula $q_{b}:=X_{b}^{-1}(p)$ +\end_inset + +, entonces +\begin_inset Formula +\[ +N(p)=\frac{X_{au}\wedge X_{av}}{|X_{au}\wedge X_{av}|}(q_{a})=\frac{\det(Jh)}{|\det(Jh)|}\frac{X_{bu}\wedge X_{bv}}{|X_{bu}\wedge X_{bv}|}(q_{b})=-N(p), +\] + +\end_inset + +luego +\begin_inset Formula $N(p)=0\#$ +\end_inset + +. + Por tanto +\begin_inset Formula $\det(Jh)>0$ +\end_inset + + y las cartas del atlas +\begin_inset Formula $\{(U_{p},X_{p})\}_{p\in S}$ +\end_inset + + son compatibles. +\end_layout + +\begin_layout Standard +En adelante, cuando consideremos una parametrización +\begin_inset Formula $(U,X)$ +\end_inset + +, escribiremos +\begin_inset Formula $N(u,v):=N(X(u,v))$ +\end_inset + +, +\begin_inset Formula $N_{u}:=\frac{\partial(N\circ X)}{\partial u}$ +\end_inset + + y +\begin_inset Formula $N_{v}:=\frac{\partial(N\circ X)}{\partial v}$ +\end_inset + +. + En general, para +\begin_inset Formula $f:\mathbb{R}^{n}\to\mathbb{R}$ +\end_inset + +, +\begin_inset Formula $f_{x_{i}}:=\frac{\partial f}{\partial x_{i}}$ +\end_inset + +. +\end_layout + +\begin_layout Section +La segunda forma fundamental +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $S$ +\end_inset + + una superficie orientada con aplicación de Gauss +\begin_inset Formula $N:S\to\mathbb{S}^{2}$ +\end_inset + +, llamamos +\series bold +imagen esférica +\series default + de +\begin_inset Formula $S$ +\end_inset + + a +\begin_inset Formula $\text{Im}N\subseteq\mathbb{S}^{2}$ +\end_inset + +. + Ejemplos: +\end_layout + +\begin_layout Enumerate +La imagen esférica de un plano es unipuntual. +\end_layout + +\begin_deeper +\begin_layout Standard +Dado el plano +\begin_inset Formula $\Pi:=p_{0}+\langle v\rangle\subseteq\mathbb{R}^{3}$ +\end_inset + +, donde podemos suponer +\begin_inset Formula $v$ +\end_inset + + unitario, la imagen de +\begin_inset Formula $N(p):=v$ +\end_inset + + es +\begin_inset Formula $\{v\}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +La imagen esférica de +\begin_inset Formula $\mathbb{S}^{2}$ +\end_inset + + es +\begin_inset Formula $\mathbb{S}^{2}$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +La aplicación de Gauss es +\begin_inset Formula $\pm1_{\mathbb{S}^{2}}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +La imagen esférica de un grafo +\begin_inset Formula $\{(x,y,f(x,y))\}_{(x,y)\in U}$ +\end_inset + + con +\begin_inset Formula $f:U\subseteq\mathbb{R}^{2}\to\mathbb{R}$ +\end_inset + + diferenciable está contenida en el hemisferio (estricto) norte o sur. +\end_layout + +\begin_deeper +\begin_layout Standard +Una orientación es +\begin_inset Formula $N(u,v)=\frac{(-f_{u},-f_{v},1)}{\sqrt{1+f_{u}^{2}+f_{v}^{2}}}(u,v)$ +\end_inset + +, y como la coordenada +\begin_inset Formula $z$ +\end_inset + + de +\begin_inset Formula $N$ +\end_inset + + es siempre positiva, +\begin_inset Formula $\text{Im}N$ +\end_inset + + está en el hemisferio norte estricto. + Con la orientación opuesta está en el hemisferio sur estricto. +\end_layout + +\end_deeper +\begin_layout Enumerate +La imagen esférica de un cilindro es un circulo máximo de la esfera. +\end_layout + +\begin_deeper +\begin_layout Standard +Los cilindros se obtienen por un movimiento de +\begin_inset Formula $S_{r}:=\{x^{2}+y^{2}=r^{2}\}$ +\end_inset + + para algún +\begin_inset Formula $r>0$ +\end_inset + +, y como su orientación es +\begin_inset Formula $N(x,y,z)=\pm\frac{1}{r}(x,y,0)$ +\end_inset + +, +\begin_inset Formula $N(S_{r})=\{\frac{1}{r}(x,y,0):x^{2}+y^{2}=r^{2}\}=\{(x,y,0):x^{2}+y^{2}=1\}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +El +\series bold +catenoide +\series default +, +\begin_inset Formula $C:=\{x^{2}+y^{2}=\cosh^{2}z\}$ +\end_inset + +, tiene imagen esférica +\begin_inset Formula $\mathbb{S}^{2}\setminus\{\mathsf{N},\mathsf{S}\}$ +\end_inset + +, donde +\begin_inset Formula $\mathsf{N}:=(0,0,1)$ +\end_inset + + es el +\series bold +polo norte +\series default + y +\begin_inset Formula $\mathsf{S}:=(0,0,-1)$ +\end_inset + + es el +\series bold +polo sur +\series default +. +\end_layout + +\begin_deeper +\begin_layout Standard +Sea +\begin_inset Formula $f(x,y,z):=x^{2}+y^{2}-\cosh^{2}z$ +\end_inset + +, como +\begin_inset Formula $f_{x}=2x$ +\end_inset + +, +\begin_inset Formula $f_{y}=2y$ +\end_inset + + y +\begin_inset Formula $f_{z}=-2\cosh z\sinh z$ +\end_inset + +, el único punto crítico de +\begin_inset Formula $f$ +\end_inset + + es el origen, con +\begin_inset Formula $f(0)=-1$ +\end_inset + +, de modo que 0 es un valor regular de +\begin_inset Formula $f\in{\cal C}^{\infty}$ +\end_inset + + y +\begin_inset Formula $C=\{f(x,y,z)=0\}$ +\end_inset + + es una superficie de nivel regular y +\begin_inset Formula +\begin{align*} +N(x,y,z) & =\frac{\nabla f(x,y,z)}{\Vert\nabla f(x,y,z)\Vert}=\frac{(2x,2y,-2\cosh z\sinh z)}{2\sqrt{x^{2}+y^{2}+\cosh^{2}z\sinh^{2}z}}\\ + & =\frac{(x,y,-\cosh z\sinh z)}{\sqrt{\cosh^{2}z+\cosh^{2}z\sinh^{2}z}}=\frac{(x,y,-\cosh z\sinh z)}{\cosh^{2}z}. +\end{align*} + +\end_inset + +Como +\begin_inset Formula $N_{1}(p)^{2}+N_{2}(p)^{2}=\frac{x^{2}+y^{2}}{\cosh^{4}z}=\frac{1}{\cosh^{2}z}>0$ +\end_inset + +, no se cubren los polos norte y sur. + Sean ahora +\begin_inset Formula $(\hat{x},\hat{y},\hat{z})\in\mathbb{S}^{2}\setminus\{\mathsf{N},\mathsf{S}\}$ +\end_inset + +, +\begin_inset Formula $z:=\arg\tanh(-\hat{z})$ +\end_inset + + (que existe porque +\begin_inset Formula $\hat{z}\in(-1,1)$ +\end_inset + +), +\begin_inset Formula $x:=\hat{x}\cosh^{2}z$ +\end_inset + + e +\begin_inset Formula $y:=\hat{y}\cosh^{2}z$ +\end_inset + +, es claro que +\begin_inset Formula $N(x,y,z)=(\hat{x},\hat{y},\hat{z})$ +\end_inset + +. + Ahora bien, +\begin_inset Formula +\begin{multline*} +x^{2}+y^{2}=(\hat{x}^{2}+\hat{y}^{2})\cosh^{4}z=(1-\hat{z}^{2})\cosh^{4}z=\left(1-\tanh^{2}z\right)\cosh^{4}z=\\ +=\frac{\cosh^{2}z-\sinh^{2}z}{\cosh^{2}z}\cosh^{4}z=\frac{\cosh^{4}z}{\cosh^{2}z}=\cosh^{2}z, +\end{multline*} + +\end_inset + +luego +\begin_inset Formula $(x,y,z)\in C$ +\end_inset + + y +\begin_inset Formula $N(x,y,z)$ +\end_inset + + cubre +\begin_inset Formula $\mathbb{S}^{2}\setminus\{\mathsf{N},\mathsf{S}\}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Standard +Para +\begin_inset Formula $p\in\mathbb{S}^{2}$ +\end_inset + + es +\begin_inset Formula $T_{N(p)}\mathbb{S}^{2}=T_{p}\mathbb{S}^{2}$ +\end_inset + +, pues +\begin_inset Formula $N(p)=\pm p$ +\end_inset + + y +\begin_inset Formula $T_{-p}\mathbb{S}^{2}=\langle N(-p)\rangle^{\bot}=\langle p\rangle^{\bot}=\langle N(p)\rangle^{\bot}=T_{p}\mathbb{S}^{2}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $S$ +\end_inset + + una superficie regular orientada por +\begin_inset Formula $N$ +\end_inset + +, llamamos +\series bold +operador forma +\series default + o +\series bold +endomorfismo de Weingarten +\series default + en +\begin_inset Formula $p\in S$ +\end_inset + + a +\begin_inset Formula $A_{p}:=-dN_{p}:T_{p}S\to T_{p}S$ +\end_inset + +. + En efecto, como +\begin_inset Formula $N:S\to\mathbb{S}^{2}$ +\end_inset + +, +\begin_inset Formula $dN_{p}:T_{p}S\to T_{N(p)}\mathbb{S}^{2}$ +\end_inset + +, pero como la normal en +\begin_inset Formula $\mathbb{S}^{2}$ +\end_inset + + es +\begin_inset Formula $1_{\mathbb{S}^{2}}$ +\end_inset + +, +\begin_inset Formula $T_{p'}\mathbb{S}^{2}=\langle p'\rangle^{\bot}$ +\end_inset + + para todo +\begin_inset Formula $p'\in\mathbb{S}^{2}$ +\end_inset + + y en particular +\begin_inset Formula $T_{N(p)}\mathbb{S}^{2}=\langle N(p)\rangle^{\bot}=T_{p}S$ +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Formula $A_{p}$ +\end_inset + + es +\series bold +autoadjunto +\series default +, es decir, +\begin_inset Formula $\langle A_{p}v,w\rangle=\langle v,A_{p}w\rangle$ +\end_inset + +. + +\series bold +Demostración: +\series default + Por linealidad, basta demostrarlo para una base de +\begin_inset Formula $T_{p}S$ +\end_inset + +. + Sean +\begin_inset Formula $(U,X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + y +\begin_inset Formula $q:=(u_{0},v_{0}):=X^{-1}(p)$ +\end_inset + +, tomamos la base +\begin_inset Formula $(X_{u}(q),X_{v}(q))$ +\end_inset + + y queremos ver que +\begin_inset Formula $\langle dN_{p}(X_{u}(q)),X_{v}(q)\rangle=\langle X_{u}(q),dN_{p}(X_{v}(q))\rangle$ +\end_inset + +. + Sea entonces +\begin_inset Formula $\alpha(u):=X(u_{0}+u,v_{0})$ +\end_inset + +, +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=X_{u}(q)$ +\end_inset + +, luego +\begin_inset Formula $dN_{p}(X_{u}(q))=\frac{\partial(N\circ\alpha)}{\partial u}(0)=\frac{\partial(N\circ X)}{\partial u}(u_{0},v_{0})=N_{u}(u_{0},v_{0})$ +\end_inset + +. + Análogamente +\begin_inset Formula $dN_{p}(X_{v}(q))=N_{v}(u_{0},v_{0})$ +\end_inset + +, por lo que queda ver que +\begin_inset Formula $\langle N_{u},X_{v}\rangle(q)=\langle N_{v},X_{u}\rangle(q)$ +\end_inset + +. + Sabemos que +\begin_inset Formula $\langle N,X_{u}\rangle=\langle N,X_{v}\rangle=0$ +\end_inset + +, y derivando, +\begin_inset Formula $\langle N_{v},X_{u}\rangle+\langle N,X_{uv}\rangle=\langle N_{u},X_{v}\rangle+\langle N,X_{vu}\rangle=0$ +\end_inset + +, pero +\begin_inset Formula $X_{uv}=X_{vu}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Ejemplos: +\end_layout + +\begin_layout Enumerate +Para un plano, +\begin_inset Formula $A_{p}\equiv0$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $N$ +\end_inset + + es fijo, luego +\begin_inset Formula $-dN_{p}\equiv0$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +Para +\begin_inset Formula $\mathbb{S}^{2}(r)$ +\end_inset + + orientada con +\begin_inset Formula $N(p)=\pm\frac{1}{r}p$ +\end_inset + +, +\begin_inset Formula $A_{p}=\mp\frac{1}{r}1_{T_{p}\mathbb{S}^{2}(r)}$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +Para el cilindro +\begin_inset Formula $X(\mathbb{R}^{2})$ +\end_inset + + con +\begin_inset Formula $X(u,v):=(r\cos u,r\sin u,v)$ +\end_inset + +, si +\begin_inset Formula $p\in C$ +\end_inset + + y +\begin_inset Formula $q\in X^{-1}(p)$ +\end_inset + +, +\begin_inset Formula $A_{p}=\text{diag}(-\frac{1}{r},0)$ +\end_inset + + respecto a la base +\begin_inset Formula $(X_{u}(q),X_{v}(q))$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Si +\begin_inset Formula $p=:(x,y,z)$ +\end_inset + + y +\begin_inset Formula $q=:(u,v)$ +\end_inset + +, +\begin_inset Formula $X_{u}(q)=(-r\sin u,r\cos u,0)$ +\end_inset + +, +\begin_inset Formula $X_{v}(q)=(0,0,1)$ +\end_inset + + y, como +\begin_inset Formula $N(x,y,z)=\frac{1}{r}(x,y,0)=(\cos u,\sin u,0)$ +\end_inset + +, +\begin_inset Formula $N_{u}(q)=(-\sin u,\cos u,0)=-\frac{1}{r}X_{u}$ +\end_inset + + y +\begin_inset Formula $N_{v}(q)=0$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +Para el +\series bold +paraboloide hiperbólico +\series default + o +\series bold +silla de montar +\series default +, +\begin_inset Formula $S:=\{y^{2}-x^{2}=z\}=\{(u,v,v^{2}-u^{2})\}_{(u,v)\in\mathbb{R}^{2}}$ +\end_inset + +, +\begin_inset Formula $A_{p}(0)\equiv\text{diag}(-2,2)$ +\end_inset + + respecto a la base +\begin_inset Formula $(X_{u}(0),X_{v}(0))$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $S$ +\end_inset + + es una superficie porque es el grafo de +\begin_inset Formula $f:\mathbb{R}^{2}\to\mathbb{R}$ +\end_inset + + dada por +\begin_inset Formula $f(u,v):=v^{2}-u^{2}$ +\end_inset + +. + Entonces +\begin_inset Formula +\[ +N(u,v)=\frac{(-f_{u},-f_{v},1)}{\sqrt{1+f_{u}^{2}+f_{v}^{2}}}=\frac{(2u,-2v,1)}{\sqrt{1+4u^{2}+4v^{2}}}, +\] + +\end_inset + +luego +\begin_inset Formula +\begin{align*} +N_{u}(u,v) & =\frac{(2(1+4u^{2}+4v^{2})-8u^{2},8uv,-4u)}{(1+4u^{2}+4v^{2})^{3/2}}=\frac{(2(1+4v^{2}),8uv,-4u)}{(1+4u^{2}+4v^{2})^{3/2}},\\ +N_{v}(u,v) & =\frac{(-8uv,-2(1+4u^{2}+4v^{2})+8v^{2},-4v)}{(1+4u^{2}+4v^{2})^{3/2}}=\frac{(-8uv,-2(1+4u^{2}),-4v)}{(1+4u^{2}+4v^{2})^{3/2}}, +\end{align*} + +\end_inset + +y en particular +\begin_inset Formula $N_{u}(0)=(2,0,0)$ +\end_inset + + y +\begin_inset Formula $N_{v}(0)=(0,-2,0)$ +\end_inset + +, pero +\begin_inset Formula $X_{u}(0)=(1,0,0)$ +\end_inset + + y +\begin_inset Formula $X_{v}(0)=(0,1,0)$ +\end_inset + +, luego +\begin_inset Formula $N_{u}(0)=2X_{u}(0)$ +\end_inset + + y +\begin_inset Formula $N_{v}(0)=2X_{v}(0)$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Standard +El operador forma +\begin_inset Formula $A_{p}$ +\end_inset + + lleva asociada unívocamente una forma bilineal simétrica +\begin_inset Formula $\sigma_{p}:T_{p}S\times T_{p}S\to\mathbb{R}$ +\end_inset + + dada por +\begin_inset Formula $\sigma_{p}(v,w):=\langle A_{p}v,w\rangle$ +\end_inset + +, así como una forma cuadrática +\begin_inset Formula ${\cal II}_{p}:T_{p}S\to\mathbb{R}$ +\end_inset + + dada por +\begin_inset Formula ${\cal II}_{p}(v):=\sigma_{p}(v,v)=\langle A_{p}v,v\rangle$ +\end_inset + +. + +\begin_inset Formula ${\cal II}_{p}$ +\end_inset + + es la +\series bold +segunda forma fundamental +\series default + de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las tres formas dan la misma información usando la +\series bold +identidad de polarización: +\series default + +\begin_inset Formula +\[ +\sigma_{p}(v,w)=\frac{1}{2}\left({\cal II}_{p}(v+w)-{\cal II}_{p}(v)-{\cal II}_{p}(w)\right). +\] + +\end_inset + + +\end_layout + +\begin_layout Section +Curvas geodésica y normal +\end_layout + +\begin_layout Standard +Sean +\begin_inset Formula $S$ +\end_inset + + una superficie regular y +\begin_inset Formula $V:\mathbb{R}\to T_{p}S$ +\end_inset + + diferenciable, llamamos +\series bold +derivada covariante +\series default + a +\begin_inset Formula +\[ +\frac{DV}{dt}(t):=\pi_{T_{p}S}V'(t), +\] + +\end_inset + +la proyección de +\begin_inset Formula $V'(t)$ +\end_inset + + en +\begin_inset Formula $T_{p}S$ +\end_inset + +. + Propiedades: Sean +\begin_inset Formula $V,W:\mathbb{R}\to T_{p}S$ +\end_inset + + y +\begin_inset Formula $f:I\subseteq\mathbb{R}\to\mathbb{R}$ +\end_inset + + diferenciables, siendo +\begin_inset Formula $I$ +\end_inset + + un intervalo: +\end_layout + +\begin_layout Enumerate +\begin_inset Formula $\frac{D(fV)}{dt}=f'V+f\frac{DV}{dt}$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Si +\begin_inset Formula $\pi:=\pi_{T_{p}S}$ +\end_inset + +, +\begin_inset Formula $\frac{D(fV)}{dt}=\pi((fV)')=\pi(fV'+f'V)=f\pi V'+f'\pi V=f\frac{DV}{dt}+f'V$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\frac{D(V+W)}{dt}=\frac{DV}{dt}+\frac{DW}{dt}$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $\frac{D(V+W)}{dt}=\pi((V+W)')=\pi V'+\pi W'=\frac{DV}{dt}+\frac{DW}{dt}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\frac{d}{dt}\langle V,W\rangle=\langle\frac{DV}{dt}W\rangle+\langle V,\frac{DW}{dt}\rangle$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $\frac{d}{dt}\langle V,W\rangle=\langle\frac{dV}{dt},W\rangle+\langle V,\frac{dW}{dt}\rangle$ +\end_inset + +, pero dada una base ortonormal +\begin_inset Formula $(v_{1},v_{2},v_{3})$ +\end_inset + + con +\begin_inset Formula $T_{p}S=\text{span}\{v_{1},v_{2}\}$ +\end_inset + +, si +\begin_inset Formula $\frac{dV}{dt}(t)=\sum_{i}x_{i}v_{i}$ +\end_inset + + y +\begin_inset Formula $W(t)=\sum_{i}y_{i}v_{i}$ +\end_inset + +, +\begin_inset Formula $\langle\frac{dV}{dt}(t),W(t)\rangle=\sum_{i=1}^{3}x_{i}y_{i}\overset{y_{3}=0}{=}x_{1}y_{1}+x_{2}y_{2}=\langle\pi_{T_{p}S}\frac{dV}{dt}(t),W(t)\rangle=\langle\frac{DV}{dt}(t),W(t)\rangle$ +\end_inset + +, y análogamente para +\begin_inset Formula $\langle V,\frac{dW}{dt}\rangle$ +\end_inset + +, luego +\begin_inset Formula $\frac{d}{dt}\langle V,W\rangle=\langle\frac{DV}{dt},W\rangle+\langle V,\frac{dW}{dt}\rangle$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Standard +Sean +\begin_inset Formula $S$ +\end_inset + + una superficie regular orientada por +\begin_inset Formula $N$ +\end_inset + + y +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + una curva, entonces +\begin_inset Formula $\alpha'(t)\in T_{\alpha(t)}S$ +\end_inset + + para +\begin_inset Formula $t\in I$ +\end_inset + +, pero en general +\begin_inset Formula $\alpha''(t)\notin T_{\alpha(t)}S$ +\end_inset + +, aunque se escribe de forma única como la suma de una +\series bold +aceleración tangencial +\series default + o +\series bold +intrínseca +\series default + +\begin_inset Formula $\alpha''(t)^{\top}\in T_{\alpha(t)}S$ +\end_inset + + y una +\series bold +aceleración normal +\series default + o +\series bold +extrínseca +\series default + +\begin_inset Formula $\alpha''(t)^{\bot}\in\text{span}\{N(\alpha(t))\}$ +\end_inset + +. + Como +\begin_inset Formula $\alpha''(t)^{\top}=\frac{D\alpha'}{dt}$ +\end_inset + +, +\begin_inset Formula +\[ +\alpha''(t)=\frac{D\alpha'}{dt}(t)+\langle\alpha''(t),N(\alpha(t))\rangle N(\alpha(t)). +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + una curva parametrizada por longitud de arco, el +\series bold +triedro de Darboux +\series default + es la base ortonormal positivamente orientada +\begin_inset Formula $(\alpha'(s),J\alpha'(s):=\alpha'(s)\wedge N(\alpha(s)),N(\alpha(s))\rangle$ +\end_inset + +. + Entonces +\begin_inset Formula $\frac{D\alpha'}{ds}(s)=\kappa_{g}(s)J\alpha'(s)$ +\end_inset + +, donde +\begin_inset Formula $\kappa_{g}:=\langle\alpha'',J\alpha'\rangle:I\to\mathbb{R}$ +\end_inset + +, es la +\series bold +curvatura geodésica +\series default + de +\begin_inset Formula $\alpha$ +\end_inset + +, cuyo signo depende de +\begin_inset Formula $N$ +\end_inset + +. + En efecto, +\begin_inset Formula +\begin{multline*} +\langle\frac{D\alpha'}{ds}(s),\alpha'(s)\rangle=\langle\alpha''(s)-\langle\alpha''(s),N(\alpha(s))\rangle N(\alpha(s)),\alpha'(s)\rangle=\\ +=\langle\alpha''(s),\alpha'(s)\rangle-\langle\alpha''(s),N(\alpha(s))\rangle\langle N(\alpha(s)),\alpha'(s)\rangle=0, +\end{multline*} + +\end_inset + +y +\begin_inset Formula $\kappa_{g}(s)=\langle\frac{D\alpha'}{ds}(s),J\alpha'(s)\rangle=\langle\alpha''(s),J\alpha'(s)\rangle$ +\end_inset + +, pero +\begin_inset Formula $J\alpha'(s)$ +\end_inset + + puede ser un vector o su opuesto según lo sea +\begin_inset Formula $N$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Dada una curva +\begin_inset Formula $\alpha:I\to S$ +\end_inset + +, +\begin_inset Formula ${\cal II}_{\alpha(t)}(\alpha'(t))=\langle\alpha''(t),N(\alpha(t))\rangle$ +\end_inset + +. + En efecto, como +\begin_inset Formula $\alpha'(t)\in T_{\alpha(t)}S$ +\end_inset + + para cada +\begin_inset Formula $t$ +\end_inset + +, +\begin_inset Formula $\langle\alpha'(t),N(\alpha(t))\rangle=0$ +\end_inset + + y, derivando, +\begin_inset Formula $\langle\alpha''(t),N(\alpha(t))\rangle+\langle\alpha'(t),(N\circ\alpha)'(t)\rangle=0$ +\end_inset + +, pero +\begin_inset Formula $(N\circ\alpha)'(t)=dN_{\alpha(t)}(\alpha'(t))$ +\end_inset + +, luego +\begin_inset Formula $\langle\alpha''(t),N(\alpha(t))\rangle=-\langle\alpha'(t),dN_{\alpha(t)}(\alpha'(t))\rangle=\langle\alpha'(t),A_{\alpha(t)}\alpha'(t)\rangle={\cal II}_{\alpha(t)}(\alpha'(t))$ +\end_inset + +. + +\end_layout + +\begin_layout Standard +Entonces, dados +\begin_inset Formula $p\in S$ +\end_inset + + y +\begin_inset Formula $v\in T_{p}S$ +\end_inset + + unitario, llamamos +\series bold +curvatura normal +\series default + de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + en la dirección de +\begin_inset Formula $v$ +\end_inset + + a +\begin_inset Formula $\kappa_{n}(v,p):={\cal II}_{p}(v)=\langle\alpha''(0),N(p)\rangle$ +\end_inset + +, siendo +\begin_inset Formula $\alpha:(-\delta,\delta)\to S$ +\end_inset + + una curva con +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=v$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Ejemplos: +\end_layout + +\begin_layout Enumerate +Un plano tiene curvatura normal 0 en todo punto y dirección. +\end_layout + +\begin_deeper +\begin_layout Standard +Como +\begin_inset Formula $A_{p}=0$ +\end_inset + +, +\begin_inset Formula $\kappa_{n}(v,p)={\cal II}_{p}(v)=\langle A_{p}v,v\rangle=0$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $\mathbb{S}^{2}(r)$ +\end_inset + + tiene curvatura normal constante +\begin_inset Formula $-\frac{1}{r}$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Como +\begin_inset Formula $N(p)=\frac{1}{r}p$ +\end_inset + +, +\begin_inset Formula $\kappa_{n}(v,p)=\langle A_{p}v,v\rangle=\langle-\frac{1}{r}v,v\rangle=-\frac{1}{r}|v|^{2}=-\frac{1}{r}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Standard +Dados +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $v\in T_{p}S$ +\end_inset + + unitario y +\begin_inset Formula $\Pi_{v}:=\text{span}\{v,N(p)\}$ +\end_inset + +, llamamos +\series bold +sección normal +\series default + +\begin_inset Formula $C_{v}$ +\end_inset + + a la curva regular plana resultante de intersecar +\begin_inset Formula $S$ +\end_inset + + con +\begin_inset Formula $\Pi_{v}$ +\end_inset + +. + Sea entonces +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + una parametrización por arco de +\begin_inset Formula $C_{v}$ +\end_inset + + con +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=v$ +\end_inset + +, entonces +\begin_inset Formula $\kappa_{n}(v,p)=\kappa(0)$ +\end_inset + +, siendo +\begin_inset Formula $\kappa$ +\end_inset + + la curvatura de +\begin_inset Formula $\alpha$ +\end_inset + + como curva plana. + En efecto, como +\begin_inset Formula $v\in T_{p}S$ +\end_inset + +, +\begin_inset Formula $v\bot N(p)$ +\end_inset + + y el vector normal es +\begin_inset Formula $\mathbf{n}=J_{\Pi_{v}}v=\pm N(p)$ +\end_inset + +, y como todavía no hemos orientado el plano podemos tomar +\begin_inset Formula $\mathbf{n}=N(p)$ +\end_inset + +, pero entonces +\begin_inset Formula $\kappa_{n}(v,p)=\langle\alpha''(0),N(p)\rangle=\langle\kappa(0)\mathbf{n}(0),N(p)\rangle=\kappa(0)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + es una curva parametrizada por arco, +\begin_inset Formula $\alpha''(s)=\kappa_{g}(s)J\alpha'(s)+\kappa_{n}(s)N(\alpha(s))$ +\end_inset + +, siendo +\begin_inset Formula $\kappa_{n}(s):=\kappa_{n}(\alpha'(s),\alpha(s))=\langle\alpha''(s),N(\alpha(s))\rangle$ +\end_inset + +, luego +\begin_inset Formula +\[ +\kappa(s)^{2}=\kappa_{g}(s)^{2}+\kappa_{n}(s)^{2}. +\] + +\end_inset + + +\end_layout + +\begin_layout Section +Curvaturas principales +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +sremember{AAlG} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Toda matriz simétrica real +\begin_inset Formula $A\in{\cal M}_{m}(\mathbb{R})$ +\end_inset + + admite una matriz ortogonal +\begin_inset Formula $P$ +\end_inset + + tal que +\begin_inset Formula $P^{-1}AP=P^{t}AP$ +\end_inset + + es diagonal. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +eremember +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Dados una superficie regular +\begin_inset Formula $S$ +\end_inset + + orientada y +\begin_inset Formula $p\in S$ +\end_inset + +, existe una base ortonormal +\begin_inset Formula $(e_{1},e_{2})$ +\end_inset + + en la que +\begin_inset Formula $A_{p}$ +\end_inset + + es diagonal, pues +\begin_inset Formula $A_{p}$ +\end_inset + + es simétrica. + Si +\begin_inset Formula $\kappa_{1}(p)$ +\end_inset + + y +\begin_inset Formula $\kappa_{2}(p)$ +\end_inset + + son los valores propios asociados respectivamente a +\begin_inset Formula $e_{1}$ +\end_inset + + y +\begin_inset Formula $e_{2}$ +\end_inset + +, podemos suponer que +\begin_inset Formula $\kappa_{1}(p)\leq\kappa_{2}(p)$ +\end_inset + +, y llamamos +\series bold +curvaturas principales +\series default + de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + a +\begin_inset Formula $\kappa_{1}(p)$ +\end_inset + + y +\begin_inset Formula $\kappa_{2}(p)$ +\end_inset + + y +\series bold +direcciones principales +\series default + a +\begin_inset Formula $e_{1}$ +\end_inset + + y +\begin_inset Formula $e_{2}$ +\end_inset + +, o a todos los vectores unitarios de +\begin_inset Formula $T_{p}S$ +\end_inset + + si +\begin_inset Formula $\kappa_{1}(p)=\kappa_{2}(p)$ +\end_inset + +, pues en tal caso todos los vectores no nulos son propios al ser +\begin_inset Formula $A_{p}$ +\end_inset + + una homotecia. + Se tiene +\begin_inset Formula $\kappa_{1}(p)=\kappa_{n}(e_{1},p)$ +\end_inset + + y +\begin_inset Formula $\kappa_{2}(p)=\kappa_{n}(e_{2},p)$ +\end_inset + +, pues +\begin_inset Formula $\kappa_{n}(e_{i},p)=\langle A_{p}e_{i},e_{i}\rangle=\langle\kappa_{i}(p)e_{i},e_{i}\rangle=\kappa_{i}(p)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Ejemplos: +\end_layout + +\begin_layout Enumerate +Todas las direcciones del plano y la esfera son principales. +\end_layout + +\begin_deeper +\begin_layout Standard +Como +\begin_inset Formula $\kappa_{n}$ +\end_inset + + es constante, +\begin_inset Formula $\kappa_{1}(p)=\kappa_{2}(p)$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +El cilindro +\begin_inset Formula $\{x^{2}+y^{2}=r^{2}\}$ +\end_inset + + tiene como curvaturas principales +\begin_inset Formula $-\frac{1}{r}$ +\end_inset + + y 0. +\end_layout + +\begin_deeper +\begin_layout Standard +Sean +\begin_inset Formula $C:=\{x^{2}+y^{2}=r^{2}\}=\{X(u,v):=(r\cos u,r\sin u,v)\}_{u,v\in\mathbb{R}}$ +\end_inset + +, +\begin_inset Formula $p=(x,y,z)\in C$ +\end_inset + + y la orientación +\begin_inset Formula $N(p):=\frac{1}{r}(x,y,0)$ +\end_inset + +, entonces +\begin_inset Formula $X_{u}=(-r\sin u,r\cos u,0)$ +\end_inset + +, +\begin_inset Formula $X_{v}=e_{3}$ +\end_inset + + y +\begin_inset Formula $N(u,v)=(\cos u,\sin u,0)$ +\end_inset + +, luego +\begin_inset Formula $A_{p}=-(-\sin u,\cos u,0)=-\frac{1}{r}X_{u}$ +\end_inset + + y por tanto +\begin_inset Formula $A_{p}\equiv\text{diag}(-\frac{1}{r},0)$ +\end_inset + + con la base +\begin_inset Formula $(X_{u},X_{v})$ +\end_inset + + de +\begin_inset Formula $T_{p}S$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +La silla de montar tiene curvaturas principales +\begin_inset Formula $-2$ +\end_inset + + y 2 en el origen. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $A_{p}\equiv\text{diag}(-2,2)$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Standard +Una +\series bold +línea de curvatura +\series default + en una superficie regular orientada +\begin_inset Formula $S$ +\end_inset + + es una curva +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + tal que +\begin_inset Formula $\alpha'(t)$ +\end_inset + + es una dirección principal de +\begin_inset Formula $\alpha(t)$ +\end_inset + + para todo +\begin_inset Formula $t\in I$ +\end_inset + +. + Si las curvaturas principales son distintas en todo punto de un abierto + +\begin_inset Formula $V\subseteq S$ +\end_inset + +, por cada +\begin_inset Formula $p\in V$ +\end_inset + + pasan dos únicas líneas de curvatura y estas se cortan de forma ortogonal. +\end_layout + +\begin_layout Standard + +\series bold +Fórmula de Euler: +\series default + Sean +\begin_inset Formula $S$ +\end_inset + + una superficie regular orientada, +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $\kappa_{1}(p)\leq\kappa_{2}(p)$ +\end_inset + + las curvaturas principales de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + +, +\begin_inset Formula $e_{1}$ +\end_inset + + y +\begin_inset Formula $e_{2}$ +\end_inset + + las respectivas direcciones principales, +\begin_inset Formula $v\in T_{p}S$ +\end_inset + + y +\begin_inset Formula $\theta$ +\end_inset + + tal que +\begin_inset Formula $\cos\theta=\langle e_{1},v\rangle$ +\end_inset + +, entonces +\begin_inset Formula $\kappa_{n}(v,p)=\kappa_{1}(p)\cos^{2}\theta+\kappa_{2}(p)\sin^{2}\theta$ +\end_inset + +. + En efecto, sea +\begin_inset Formula $v=:\cos\omega e_{1}+\sin\omega e_{2}$ +\end_inset + +, +\begin_inset Formula $\kappa_{n}(v,p)=\langle A_{p}v,v\rangle=\langle\kappa_{1}(p)\cos\omega e_{1}+\kappa_{2}(p)\cos\omega e_{2},\cos\omega e_{1}+\sin\omega e_{2}\rangle=\kappa_{1}(p)\cos^{2}\omega+\kappa_{2}(p)\sin^{2}\omega$ +\end_inset + +, y aunque +\begin_inset Formula $\omega=\pm\theta+2k\pi$ +\end_inset + + para algún +\begin_inset Formula $k\in\mathbb{Z}$ +\end_inset + +, el coseno y por tanto el cuadrado del seno coinciden. +\end_layout + +\begin_layout Standard +Con esto, +\begin_inset Formula $\kappa_{1}(p)=\min\{\kappa_{n}(v,p)\}_{|v|=1}$ +\end_inset + + y +\begin_inset Formula $\kappa_{2}(p)=\max\{\kappa_{n}(v,p)\}_{|v|=1}$ +\end_inset + +, pues por la fórmula, si +\begin_inset Formula $|v|=1$ +\end_inset + +, +\begin_inset Formula $\kappa_{n}(v,p)=\kappa_{1}(p)(1-\sin^{2}\theta)+\kappa_{2}(p)\sin^{2}\theta$ +\end_inset + + para algún +\begin_inset Formula $\theta$ +\end_inset + +. + Llamamos +\series bold +curvatura mínima +\series default + a +\begin_inset Formula $\kappa_{1}(p)$ +\end_inset + + y +\series bold +curvatura máxima +\series default + a +\begin_inset Formula $\kappa_{2}(p)$ +\end_inset + +. + La +\series bold +curvatura de Gauss +\series default + de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p\in S$ +\end_inset + + es +\begin_inset Formula $K(p):=\det A_{p}=\kappa_{1}(p)\kappa_{2}(p)$ +\end_inset + +, y la +\series bold +curvatura media +\series default + es +\begin_inset Formula $H(p):=\frac{1}{2}\text{tr}A_{p}=\frac{1}{2}(\kappa_{1}(p)+\kappa_{2}(p))$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las curvaturas máxima, mínima y media cambian de signo al cambiar de orientación. + La curvatura de Gauss no, pues es el producto de dos curvaturas que cambian + de signo a la vez. +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $S$ +\end_inset + + una superficie regular, +\begin_inset Formula $p\in S$ +\end_inset + + es +\series bold +elíptico +\series default + si +\begin_inset Formula $K(p)>0$ +\end_inset + +, +\series bold +hiperbólico +\series default + si +\begin_inset Formula $K(p)<0$ +\end_inset + +, +\series bold +parabólico +\series default + si +\begin_inset Formula $K(p)=0$ +\end_inset + + pero +\begin_inset Formula $A_{p}\not\equiv0$ +\end_inset + + y +\series bold +llano +\series default + o +\series bold +plano +\series default + si +\begin_inset Formula $A_{p}\equiv0$ +\end_inset + +. + Ejemplos: +\end_layout + +\begin_layout Enumerate +Los puntos de un plano son planos. +\end_layout + +\begin_layout Enumerate +Los puntos de una esfera son elípticos. +\end_layout + +\begin_deeper +\begin_layout Standard +Si +\begin_inset Formula $r$ +\end_inset + + es el radio, +\begin_inset Formula $K(p)=(-\frac{1}{r})^{2}=\frac{1}{r^{2}}>0$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +El origen en la silla de montar es hiperbólico. +\end_layout + +\begin_deeper +\begin_layout Standard +\begin_inset Formula $A_{p}\equiv\text{diag}(-2,2)$ +\end_inset + + respecto de cierta base, luego +\begin_inset Formula $K(p)=-4$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +Los puntos de un cilindro son parabólicos. +\end_layout + +\begin_deeper +\begin_layout Standard +Si +\begin_inset Formula $r$ +\end_inset + + es el radio, +\begin_inset Formula $A_{p}\equiv\text{diag}(-\frac{1}{r},0)$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +En +\begin_inset Formula $\{z=(x^{2}+y^{2})^{2}\}$ +\end_inset + +, el origen es un punto plano. +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +La superficie es el grafo +\begin_inset Formula $S:=\{X(u,v):=(u,v,(u^{2}+v^{2})^{2}\}_{u,v\in\mathbb{R}}$ +\end_inset + +, de modo que +\begin_inset Formula $X_{u}=(1,0,2(u^{2}+v^{2})u)$ +\end_inset + +, +\begin_inset Formula $X_{v}=(0,1,2(u^{2}+v^{2})v)$ +\end_inset + +, +\begin_inset Formula $N=\frac{(-4(u^{2}+v^{2})u,-4(u^{2}+v^{2})v,1)}{\sqrt{16(u^{2}+v^{2})^{2}+1}}$ +\end_inset + +, +\begin_inset Formula $N_{u}=\frac{(-4(3u^{2}+v^{2})(16(u^{2}+v^{2})^{2}+1)+256(u^{2}+v^{2})^{2}u^{2},-8uv(16(u^{2}+v^{2})^{2}+1)+256(u^{2}+v^{2})^{2}uv,64(u^{2}+v^{2})u)}{(16(u^{2}+v^{2})^{2}+1)^{3/2}}$ +\end_inset + + y entonces +\begin_inset Formula $N_{u}(0,0)=(0,0,0)$ +\end_inset + + y, por simetría, +\begin_inset Formula $N_{v}(0,0)=(0,0,0)$ +\end_inset + +, por lo que +\begin_inset Formula $A_{p}\equiv0$ +\end_inset + +. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +En una superficie regular +\begin_inset Formula $S$ +\end_inset + + orientada, +\begin_inset Formula $p\in S$ +\end_inset + + es un +\series bold +punto umbilical +\series default + si +\begin_inset Formula $\kappa_{1}(p)=\kappa_{2}(p)$ +\end_inset + +. + +\begin_inset Formula $S$ +\end_inset + + es +\series bold +totalmente umbilical +\series default + si todos sus puntos son umbilicales. + Así, el plano y la esfera son totalmente umbilicales. +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, toda superficie regular, orientable con orientación +\begin_inset Formula ${\cal C}^{2}$ +\end_inset + +, conexa y totalmente umbilical es un trozo de esfera o plano. +\end_layout + +\begin_layout Standard + +\series bold +Demostración: +\series default + Sea +\begin_inset Formula $S$ +\end_inset + + la superficie y +\begin_inset Formula $N$ +\end_inset + + una orientación de +\begin_inset Formula $S$ +\end_inset + +, para +\begin_inset Formula $p\in S$ +\end_inset + + es +\begin_inset Formula $H(p)=\kappa_{1}(p)=\kappa_{2}(p)$ +\end_inset + +, luego +\begin_inset Formula $A_{p}\equiv\text{diag}(H(p),H(p))$ +\end_inset + + y +\begin_inset Formula $A_{p}=H(p)1_{T_{p}S}$ +\end_inset + +. + +\begin_inset Formula $H:S\to\mathbb{R}$ +\end_inset + + es diferenciable, y queremos ver que es constante. + Sean +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $(U,X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + +, +\begin_inset Formula $q:=(u_{0},v_{0}):=X^{-1}(p)$ +\end_inset + + y +\begin_inset Formula $\alpha(u):=X(u_{0}+u,v_{0})$ +\end_inset + +, como +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=q$ +\end_inset + +, +\begin_inset Formula $dH_{p}(X_{u}(q))=\frac{d(H\circ\alpha)}{dt}(0)=\frac{d}{dt}(H(X(u_{0}+u,v_{0})))(0)=(H\circ X)_{u}(q)$ +\end_inset + +, y por simetría +\begin_inset Formula $dH_{p}(X_{v}(q))=\frac{\partial(H\circ X)}{\partial v}(q)$ +\end_inset + +. + +\end_layout + +\begin_layout Standard +Como +\begin_inset Formula $A_{p}=H(p)1_{T_{p}S}$ +\end_inset + +, +\begin_inset Formula $(H\circ X)(q)X_{u}(q)=H(p)X_{u}(q)=A_{p}(X_{u}(q))=-dN_{p}(X_{u}(q))=-(N\circ X)(q)$ +\end_inset + +, y como esto es cierto para todo +\begin_inset Formula $q\in U$ +\end_inset + +, +\begin_inset Formula $(N\circ X)_{u}=-(H\circ X)X_{u}$ +\end_inset + +, y por simetría +\begin_inset Formula $(N\circ X)_{v}=-(H\circ X)X_{v}$ +\end_inset + +. + Derivando, +\begin_inset Formula $(N\circ X)_{uv}=-(H\circ X)_{v}X_{u}-(H\circ X)X_{uv}$ +\end_inset + + y +\begin_inset Formula $(N\circ X)_{vu}=-(H\circ X)_{u}X_{v}-(H\circ X)X_{vu}$ +\end_inset + +, y como las derivadas cruzadas coinciden, +\begin_inset Formula $(H\circ X)_{v}X_{u}=(H\circ X)_{u}X_{v}$ +\end_inset + +. + Como +\begin_inset Formula $(X_{u}(q),X_{v}(q))$ +\end_inset + + es una base en cada +\begin_inset Formula $q\in U$ +\end_inset + +, necesariamente +\begin_inset Formula $(H\circ X)_{u},(H\circ X)_{v}\equiv0$ +\end_inset + +, luego +\begin_inset Formula $dH_{p}(X_{u}(q)),dH_{p}(X_{v}(q))=0$ +\end_inset + + y al ser +\begin_inset Formula $S$ +\end_inset + + conexa, +\begin_inset Formula $H\equiv c$ +\end_inset + + para algún +\begin_inset Formula $c\in\mathbb{R}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $c=0$ +\end_inset + +, +\begin_inset Formula $H\equiv0$ +\end_inset + + y +\begin_inset Formula $dN_{p}=-A_{p}\equiv0$ +\end_inset + +, luego +\begin_inset Formula $N$ +\end_inset + + es constante en algún +\begin_inset Formula $a\in\mathbb{R}^{3}$ +\end_inset + +. + Sean ahora +\begin_inset Formula $\phi(p):=\langle p,a\rangle$ +\end_inset + +, +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $v\in T_{p}S$ +\end_inset + + y +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + una curva con +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=v$ +\end_inset + +, entonces +\begin_inset Formula $d\phi_{p}(v)=\frac{d(\phi\circ\alpha)}{dt}(0)=\frac{d}{dt}(\langle\alpha(t),a\rangle)(0)=\langle\alpha'(0),a\rangle=\langle v,a\rangle\overset{a=N(p)}{=}0$ +\end_inset + +, luego +\begin_inset Formula $\phi$ +\end_inset + + es constante en algún +\begin_inset Formula $d\in\mathbb{R}$ +\end_inset + + y +\begin_inset Formula $S\subseteq\{\langle p,a\rangle=d\}=\{\langle p-p',a\rangle=0\}$ +\end_inset + + para algún +\begin_inset Formula $p'$ +\end_inset + + con +\begin_inset Formula $\langle p',a\rangle=d$ +\end_inset + +, pero +\begin_inset Formula $\{\langle p-p',a\rangle=0\}=p'+\langle a\rangle^{\bot}$ +\end_inset + +, luego +\begin_inset Formula $S$ +\end_inset + + esta contenido en un plano. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $c\neq0$ +\end_inset + +, sea +\begin_inset Formula $\phi:S\to\mathbb{R}^{3}$ +\end_inset + + la función diferenciable dada por +\begin_inset Formula $\phi(p):=p+\frac{1}{c}N(p)$ +\end_inset + +, para +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $v\in T_{p}S$ +\end_inset + + y una curva +\begin_inset Formula $\alpha:I\to S$ +\end_inset + + con +\begin_inset Formula $\alpha(0)=p$ +\end_inset + + y +\begin_inset Formula $\alpha'(0)=v$ +\end_inset + +, entonces +\begin_inset Formula +\begin{align*} +d\phi_{p}(v) & =\frac{d(\phi\circ\alpha)}{dt}(0)=\frac{d}{dt}\left(\alpha(t)+\frac{1}{c}N(\alpha(t))\right)(0)=\alpha'(0)+\frac{1}{c}(N\circ\alpha)'(0)\\ + & =v+\frac{1}{c}dN_{p}(v)=v-\frac{1}{c}A_{p}v=v-\frac{1}{c}cv=0, +\end{align*} + +\end_inset + +luego +\begin_inset Formula $\phi$ +\end_inset + + es constante en algún +\begin_inset Formula $a\in\mathbb{R}^{3}$ +\end_inset + +. + Pero para +\begin_inset Formula $p\in S$ +\end_inset + +, +\begin_inset Formula $p-a=-\frac{1}{c}N(p)$ +\end_inset + +, luego +\begin_inset Formula $\Vert p-a\Vert^{2}=\frac{1}{c^{2}}$ +\end_inset + + y todos los puntos de +\begin_inset Formula $S$ +\end_inset + + están en la esfera +\begin_inset Formula $a+\mathbb{S}^{2}(\frac{1}{c^{2}})$ +\end_inset + +. +\end_layout + +\begin_layout Section +Parámetros de la segunda forma fundamental +\end_layout + +\begin_layout Standard +Sean +\begin_inset Formula $S$ +\end_inset + + una superficie regular orientada por +\begin_inset Formula $N$ +\end_inset + + y +\begin_inset Formula $(U,X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S$ +\end_inset + +, los +\series bold +coeficientes de la segunda forma fundamental +\series default + son +\begin_inset Formula $e,f,g:U\to\mathbb{R}$ +\end_inset + + dados por +\begin_inset Formula +\begin{align*} +e & :=\langle N,X_{uu}\rangle=-\langle N_{u},X_{u}\rangle,\\ +f & :=\langle N,X_{uv}\rangle=-\langle N_{v},X_{u}\rangle=-\langle N_{u},X_{v}\rangle,\\ +g & :=\langle N,X_{vv}\rangle=-\langle N_{v},X_{v}\rangle, +\end{align*} + +\end_inset + +y para +\begin_inset Formula $p\in S$ +\end_inset + + y +\begin_inset Formula $v\in T_{p}S$ +\end_inset + +, si +\begin_inset Formula $q:=X^{-1}(p)$ +\end_inset + + y +\begin_inset Formula $v=v_{1}X_{u}(q)+v_{2}X_{v}(q)$ +\end_inset + +, entonces +\begin_inset Formula +\[ +{\cal II}_{p}(v):=v_{1}^{2}e+2v_{1}v_{2}f+v_{2}^{2}g. +\] + +\end_inset + + +\series bold +Demostración: +\series default + +\begin_inset Formula $\langle N,X_{u}\rangle=\langle N,X_{v}\rangle=0$ +\end_inset + +, y derivando se obtiene +\begin_inset Formula $\langle N_{u},X_{u}\rangle+\langle N,X_{uu}\rangle=0$ +\end_inset + +, +\begin_inset Formula $\langle N_{v},X_{u}\rangle+\langle N,X_{uv}\rangle=0$ +\end_inset + +, +\begin_inset Formula $\langle N_{u},X_{v}\rangle+\langle N,X_{vu}\rangle=0$ +\end_inset + + y +\begin_inset Formula $\langle N_{v},X_{v}\rangle+\langle N,X_{vv}\rangle=0$ +\end_inset + +, lo que nos da las igualdades en los coeficientes teniendo en cuenta que + +\begin_inset Formula $\langle N,X_{uv}\rangle=\langle N,X_{vu}\rangle$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $q:=X^{-1}(p)=(u(0),v(0))$ +\end_inset + +, por linealidad +\begin_inset Formula $dN_{p}(v)=v_{1}dN_{p}(X_{u}(q))+v_{2}dN_{p}(X_{v}(q))=v_{1}N_{u}(q)+v_{2}N_{v}(q)$ +\end_inset + +. + Entonces, evaluando las derivadas de +\begin_inset Formula $X$ +\end_inset + + y +\begin_inset Formula $N$ +\end_inset + + en +\begin_inset Formula $q$ +\end_inset + +, d +\begin_inset Formula +\begin{align*} +{\cal II}_{p}(v) & =\langle A_{p}v,v\rangle=-\langle dN_{p}(v),v\rangle=-\langle v_{1}N_{u}+v_{2}N_{v},v_{1}X_{u}+v_{2}X_{v}\rangle\\ + & =v_{1}^{2}\langle N_{u},X_{u}\rangle-v_{1}v_{2}\langle N_{u},X_{v}\rangle-v_{1}v_{2}\langle N_{v},X_{u}\rangle-v_{2}^{2}\langle N_{v},X_{v}\rangle\\ + & =v_{1}^{2}e+v_{1}v_{2}f+v_{2}^{2}g. +\end{align*} + +\end_inset + + +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula +\[ +dN_{p}\equiv\begin{pmatrix}a_{11} & a_{12}\\ +a_{21} & a_{22} +\end{pmatrix} +\] + +\end_inset + +respecto de la base +\begin_inset Formula $(X_{u},X_{v})$ +\end_inset + +, entonces +\begin_inset Formula +\begin{align*} +\begin{pmatrix}-e & -f\\ +-f & -g +\end{pmatrix} & =\begin{pmatrix}a_{11} & a_{21}\\ +a_{12} & a_{22} +\end{pmatrix}\begin{pmatrix}E & F\\ +F & G +\end{pmatrix} +\end{align*} + +\end_inset + + y tenemos las +\series bold +fórmulas de Weingarten: +\series default + +\begin_inset Formula +\begin{align*} +a_{11} & =\frac{fF-eG}{EG-F^{2}}, & a_{12} & =\frac{gF-fG}{EG-F^{2}}, & a_{21} & =\frac{eF-fE}{EG-F^{2}}, & a_{22} & =\frac{fF-gE}{EG-F^{2}}. +\end{align*} + +\end_inset + + +\end_layout + +\begin_layout Standard + +\series bold +Demostración: +\series default + +\begin_inset Formula +\begin{align*} +-e & =\langle N_{u},X_{u}\rangle=\langle a_{11}X_{u}+a_{21}X_{v},X_{u}\rangle=a_{11}E+a_{21}F,\\ +-f & =\langle N_{v},X_{u}\rangle=\langle a_{12}X_{u}+a_{22}X_{v},X_{u}\rangle=a_{12}E+a_{22}F\\ + & =\langle N_{u},X_{v}\rangle=\langle a_{11}X_{u}+a_{21}X_{v},X_{v}\rangle=a_{11}F+a_{21}G,\\ +-g & =\langle N_{v},X_{v}\rangle=\langle a_{12}X_{u}+a_{22}X_{v},X_{v}\rangle=a_{12}F+a_{22}G. +\end{align*} + +\end_inset + +Despejando, +\begin_inset Formula +\[ +\begin{pmatrix}a_{11} & a_{12}\\ +a_{12} & a_{22} +\end{pmatrix}=-\begin{pmatrix}e & f\\ +f & g +\end{pmatrix}\begin{pmatrix}E & F\\ +F & G +\end{pmatrix}^{-1}=-\frac{1}{EG-F^{2}}\begin{pmatrix}e & f\\ +f & g +\end{pmatrix}\begin{pmatrix}G & -F\\ +-F & E +\end{pmatrix}, +\] + +\end_inset + +lo que nos da las fórmulas de Weingarten. +\end_layout + +\begin_layout Standard +De aquí, +\end_layout + +\begin_layout Standard +\begin_inset Formula +\begin{align*} +K(p) & =\frac{eg-f^{2}}{EG-F^{2}}, & H(p) & =\frac{1}{2}\frac{eG+gE-2fF}{EG-F^{2}}, +\end{align*} + +\end_inset + +y las curvaturas principales son +\begin_inset Formula +\[ +\kappa_{i}(p)=H(p)\pm\sqrt{H(p)^{2}-K(p)}. +\] + +\end_inset + + +\end_layout + +\begin_layout Standard + +\series bold +Demostración: +\series default + +\begin_inset Formula +\begin{align*} +K(p) & =\det A_{p}=\det(dN_{p})=\frac{1}{EG-F^{2}}((fF-eG)(fF-gE)-(gF-fG)(eF-fE))\\ + & =\frac{1}{(EG-F^{2})^{2}}(f^{2}F^{2}-fgEF-efFG+egEG-egF^{2}+fgEF+efFG-f^{2}EG)\\ + & =\frac{f^{2}F^{2}+egEG-egF^{2}-f^{2}EG}{(EG-F^{2})^{2}}=\frac{(EG-F^{2})(eg-f^{2})}{(EG-F^{2})^{2}},\\ +H(p) & =\frac{1}{2}\text{tr}A_{p}=-\frac{1}{2}\text{tr}(dN_{p})=-\frac{1}{2}\frac{2fF-eG-gE}{EG-F^{2}}. +\end{align*} + +\end_inset + +Un +\begin_inset Formula $\lambda\in\mathbb{R}$ +\end_inset + + es un valor propio de +\begin_inset Formula $A_{p}$ +\end_inset + + si y sólo si +\begin_inset Formula +\begin{align*} +0 & =\det(\lambda1_{T_{p}S}-A_{p})=\det(dN_{p}+\lambda1_{T_{p}S})=\begin{vmatrix}a_{11}+\lambda & a_{12}\\ +a_{21} & a_{22}+\lambda +\end{vmatrix}\\ + & =\lambda^{2}+(a_{11}+a_{22})\lambda+(a_{11}a_{22}-a_{12}a_{21})=\lambda^{2}-2H(p)+K(p), +\end{align*} + +\end_inset + +si y sólo si +\begin_inset Formula $\lambda=H(p)\pm\sqrt{H(p)^{2}-K(p)}$ +\end_inset + +. +\end_layout + +\begin_layout Section +Isometrías locales +\end_layout + +\begin_layout Standard +Una +\series bold +isometría local +\series default + entre dos superficies regulares +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + es una función diferenciable +\begin_inset Formula $\phi:S_{1}\to S_{2}$ +\end_inset + + tal que para +\begin_inset Formula $p\in S_{1}$ +\end_inset + + y +\begin_inset Formula $v,w\in T_{p}S_{1}$ +\end_inset + + es +\begin_inset Formula $\langle d\phi_{p}(v),d\phi_{p}(w)\rangle=\langle v,w\rangle$ +\end_inset + +, es decir, tal que +\begin_inset Formula $d\phi_{p}:T_{p}S_{1}\to T_{\phi(p)}S_{2}$ +\end_inset + + es una isometría lineal. + Entonces +\begin_inset Formula $\phi$ +\end_inset + + conserva ángulos, longitudes y áreas de +\begin_inset Formula $S_{1}$ +\end_inset + + a +\begin_inset Formula $S_{2}$ +\end_inset + +, pero su existencia no implica que exista una isometría lineal +\begin_inset Formula $\psi:S_{2}\to S_{1}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Una +\series bold +isometría +\series default + ( +\series bold +global +\series default +) entre +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + es una isometría local que es un difeomorfismo. + +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + son ( +\series bold +globalmente +\series default +) +\series bold +isométricas +\series default + si existe una isometría global entre ellas, y son +\series bold +localmente isométricas +\series default + si para cada +\begin_inset Formula $p\in S_{1}$ +\end_inset + + hay un entorno +\begin_inset Formula $V\subseteq S_{1}$ +\end_inset + + de +\begin_inset Formula $p$ +\end_inset + + y una isometría global +\begin_inset Formula $\phi:V\to\phi(V)\subseteq S_{2}$ +\end_inset + + y para cada +\begin_inset Formula $q\in S_{2}$ +\end_inset + + hay un entorno +\begin_inset Formula $W\subseteq S_{2}$ +\end_inset + + de +\begin_inset Formula $p$ +\end_inset + + y una isometría global +\begin_inset Formula $\psi:W\to\phi(W)\subseteq S_{1}$ +\end_inset + +. + Si existe una isometría local entre +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + +, +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + son localmente isométricos. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +sremember{TS} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Formula $(\pi_{1}(X,x),*)$ +\end_inset + + es un grupo, llamado +\series bold +grupo fundamental +\series default + [...] de +\begin_inset Formula $X$ +\end_inset + + relativo al +\series bold +punto base +\series default + +\begin_inset Formula $x$ +\end_inset + + [...] +\begin_inset Formula $X$ +\end_inset + + es +\series bold +simplemente conexo +\series default + si es conexo por caminos y +\begin_inset Formula $\pi_{1}(X,x)$ +\end_inset + + es el grupo trivial [...] para todo +\begin_inset Formula $x\in X$ +\end_inset + +. + [...] Todo subespacio estrellado de +\begin_inset Formula $\mathbb{R}^{n}$ +\end_inset + + es simplemente conexo. + [...] El grupo fundamental de +\begin_inset Formula $\mathbb{S}^{1}$ +\end_inset + + es isomorfo a +\begin_inset Formula $(\mathbb{Z},+)$ +\end_inset + +. + [...] +\begin_inset Formula $\pi_{1}(X\times Y,(x,y))\cong\pi_{1}(X,x)\times\pi_{1}(Y,y)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +eremember +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Existe una isometría local entre el plano +\begin_inset Formula $\Pi:=\{z=0\}$ +\end_inset + + y el cilindro +\begin_inset Formula $C:=\mathbb{S}^{1}\times\mathbb{R}$ +\end_inset + +, pero las superficies no son globalmente isométricas. + +\series bold +Demostración: +\series default + Como el plano es estrellado, su grupo fundamental es el grupo trivial, + y como el cilindro es +\begin_inset Formula $\mathbb{S}^{1}\times\mathbb{R}$ +\end_inset + +, su grupo fundamental es +\begin_inset Formula $\pi_{1}(\mathbb{S}^{1}\times\mathbb{R},e_{1})\cong\pi_{1}(\mathbb{S}_{1},e_{1})\times\pi_{1}(\mathbb{R},0)\cong(\mathbb{Z},+)\times1\cong(\mathbb{Z},+)$ +\end_inset + +. + Como los grupos fundamentales no son isomorfos, +\begin_inset Formula $\Pi$ +\end_inset + + y +\begin_inset Formula $C$ +\end_inset + + no son homeomorfos y por tanto tampoco isométricos. + Sea ahora +\begin_inset Formula $\phi:\Pi\to C$ +\end_inset + + dada por +\begin_inset Formula $\phi(x,y,0):=(\cos x,\sin x,y)$ +\end_inset + +, que es diferenciable. + Para +\begin_inset Formula $p=(x,y,0)\in\Pi$ +\end_inset + +, +\begin_inset Formula $T_{p}S=\Pi$ +\end_inset + +, y si +\begin_inset Formula $v=(v_{1},v_{2},0)\in T_{p}S$ +\end_inset + +, sea +\begin_inset Formula $\alpha:I\to\Pi$ +\end_inset + + dada por +\begin_inset Formula $\alpha(t):=p+tv$ +\end_inset + +, +\begin_inset Formula +\[ +d\phi_{p}(v)=\frac{d(\phi\circ\alpha)}{dt}(0)=\frac{d}{dt}(\cos(x+tv_{1}),\sin(x+tv_{1}),y+tv_{2})(0)=(-v_{1}\sin x,v_{1}\cos x,v_{2}). +\] + +\end_inset + +Para ver que +\begin_inset Formula $\phi$ +\end_inset + + conserva el producto escalar, basta ver que conserva módulos, pero +\begin_inset Formula $|d\phi_{p}(v)|^{2}=v_{1}^{2}+v_{2}^{2}=|v|^{2}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, sea +\begin_inset Formula $\phi:S_{1}\to S_{2}$ +\end_inset + + una isometría local entre superficies regulares, para todo +\begin_inset Formula $p\in S_{1}$ +\end_inset + + existen parametrizaciones +\begin_inset Formula $(U,X)$ +\end_inset + + de +\begin_inset Formula $S_{1}$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + y +\begin_inset Formula $(U,\overline{X})$ +\end_inset + + de +\begin_inset Formula $S_{2}$ +\end_inset + + en +\begin_inset Formula $\phi(p)$ +\end_inset + + con los mismos parámetros de la primera forma fundamental. + +\series bold +Demostración: +\series default + Sean +\begin_inset Formula $(\tilde{U},X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S_{1}$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + y +\begin_inset Formula $\overline{X}:\phi\circ X:\tilde{U}\to S_{2}$ +\end_inset + +, como +\begin_inset Formula $\phi$ +\end_inset + + es un difeomorfismo local, existe un entorno +\begin_inset Formula $V\subseteq S_{1}$ +\end_inset + + de +\begin_inset Formula $p$ +\end_inset + + en el que +\begin_inset Formula $\phi:V\to\phi(V)$ +\end_inset + + es un difeomorfismo, por lo que si +\begin_inset Formula $U:=X^{-1}(V)\subseteq\tilde{U}$ +\end_inset + +, restringiendo +\begin_inset Formula $\overline{X}$ +\end_inset + + a +\begin_inset Formula $U$ +\end_inset + +, +\begin_inset Formula $(U,\overline{X})$ +\end_inset + + es una parametrización de +\begin_inset Formula $S_{2}$ +\end_inset + + en +\begin_inset Formula $\phi(p)$ +\end_inset + +. + Entonces, si +\begin_inset Formula $q:=X^{-1}(p)$ +\end_inset + +, +\begin_inset Formula $d\overline{X}_{q}=d(\phi\circ X)_{q}=d\phi_{p}\circ dX_{q}$ +\end_inset + +, luego +\begin_inset Formula $\overline{X}_{u}(q)=d\phi_{p}(X_{u}(q))$ +\end_inset + + y +\begin_inset Formula $\overline{X}_{v}(q)=d\phi_{p}(X_{v}(q))$ +\end_inset + +. + Con esto, como +\begin_inset Formula $\phi$ +\end_inset + + es una isometría local, +\begin_inset Formula $\overline{E}=\langle\overline{X}_{u}(q),\overline{X}_{u}(q)\rangle=\langle d\phi_{p}(X_{u}(q)),d\phi(X_{u}(q))\rangle=\langle X_{u}(q),X_{u}(q)\rangle=E$ +\end_inset + +, y análogamente +\begin_inset Formula $\overline{F}=F$ +\end_inset + + y +\begin_inset Formula $\overline{G}=G$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, dadas dos superficies regulares +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + y dos parametrizaciones +\begin_inset Formula $(U,X)$ +\end_inset + + de +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $(U,\overline{X})$ +\end_inset + + de +\begin_inset Formula $S_{2}$ +\end_inset + + con los mismos parámetros de la primera forma fundamental, entonces +\begin_inset Formula $\phi:=\overline{X}\circ X^{-1}:X(U)\to\overline{X}(U)$ +\end_inset + + es una isometría. + +\series bold +Demostración: +\series default + Es un difeomorfismo por ser composición de difeomorfismos, y queda ver + que conserva productos escalares. + Sean +\begin_inset Formula $q\in U$ +\end_inset + + y +\begin_inset Formula $p:=X(q)$ +\end_inset + +, +\begin_inset Formula $d\phi_{p}\circ dX_{q}=d(\phi\circ X)_{q}=d\overline{X}_{q}$ +\end_inset + + por la regla de la cadena, por lo que +\begin_inset Formula $d\phi_{p}(X_{u}(q))=\overline{X}_{u}(q)$ +\end_inset + + y +\begin_inset Formula $d\phi_{p}(X_{v}(q))=\overline{X}_{v}(q)$ +\end_inset + +. + Por tanto, en +\begin_inset Formula $q$ +\end_inset + +, +\begin_inset Formula $\langle d\phi_{p}(X_{u}),d\phi_{p}(X_{u})\rangle=\langle\overline{X}_{u},\overline{X}_{u}\rangle=\overline{E}=E=\langle X_{u},X_{u}\rangle$ +\end_inset + +, y de forma análoga +\begin_inset Formula $\langle d\phi_{p}(X_{u}),d\phi_{p}(X_{v})\rangle=\langle X_{u},X_{v}\rangle$ +\end_inset + + y +\begin_inset Formula $\langle d\phi_{p}(X_{v}),d\phi_{p}(X_{v})\rangle=\langle X_{v},X_{v}\rangle$ +\end_inset + +, pero +\begin_inset Formula $(X_{u},X_{v})$ +\end_inset + + es una base de +\begin_inset Formula $T_{p}S$ +\end_inset + +, luego +\begin_inset Formula $d\phi_{p}$ +\end_inset + + conserva productos escalares. +\end_layout + +\begin_layout Section + +\lang latin +Theorema Egregium +\lang spanish + de Gauss +\end_layout + +\begin_layout Standard +Sean +\begin_inset Formula $S$ +\end_inset + + una superficie regular orientada por +\begin_inset Formula $N$ +\end_inset + + y +\begin_inset Formula $(U,X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S$ +\end_inset + + con la base +\begin_inset Formula $(X_{u},X_{v},N)$ +\end_inset + + de +\begin_inset Formula $\mathbb{R}^{3}$ +\end_inset + + positivamente orientada. + Las +\series bold +fórmulas de Gauss +\series default + son +\begin_inset Formula +\[ +\left\{ \begin{aligned}X_{uu} & =\Gamma_{11}^{1}X_{u}+\Gamma_{11}^{2}X_{v}+eN,\\ +X_{uv} & =\Gamma_{12}^{1}X_{u}+\Gamma_{12}^{2}X_{v}+fN,\\ +X_{vu} & =\Gamma_{21}^{1}X_{u}+\Gamma_{21}^{2}X_{v}+fN,\\ +X_{vv} & =\Gamma_{22}^{1}X_{u}+\Gamma_{22}^{2}X_{v}+gN, +\end{aligned} +\right. +\] + +\end_inset + +donde los +\begin_inset Formula $\Gamma_{ij}^{k}$ +\end_inset + + son los +\series bold +símbolos de Christoffel +\series default +, y se basan en que +\begin_inset Formula $\langle X_{uu},N\rangle=e$ +\end_inset + +, +\begin_inset Formula $\langle X_{uv},N\rangle=\langle X_{vu},N\rangle=f$ +\end_inset + + y +\begin_inset Formula $\langle X_{vv},N\rangle=g$ +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Formula $\Gamma_{12}^{1}=\Gamma_{21}^{1}$ +\end_inset + + y +\begin_inset Formula $\Gamma_{12}^{2}=\Gamma_{22}^{2}$ +\end_inset + +, pues +\begin_inset Formula $X_{uv}=X_{vu}$ +\end_inset + +. + Además, +\begin_inset Formula +\[ +\begin{pmatrix}\Gamma_{11}^{1} & \Gamma_{12}^{1} & \Gamma_{22}^{1}\\ +\Gamma_{11}^{2} & \Gamma_{12}^{2} & \Gamma_{22}^{2} +\end{pmatrix}=\frac{1}{EG-F^{2}}\begin{pmatrix}G & -F\\ +-F & E +\end{pmatrix}\begin{pmatrix}\frac{E_{u}}{2} & \frac{E_{v}}{2} & F_{v}-\frac{G_{u}}{2}\\ +F_{u}-\frac{E_{v}}{2} & \frac{G_{u}}{2} & \frac{G_{v}}{2} +\end{pmatrix}. +\] + +\end_inset + + +\series bold +Demostración: +\series default + Multiplicando escalarmente las ecuaciones de Gauss por +\begin_inset Formula $X_{u}$ +\end_inset + + y +\begin_inset Formula $X_{v}$ +\end_inset + +, +\begin_inset Formula +\begin{align*} +\langle X_{uu},X_{u}\rangle & =\Gamma_{11}^{1}E+\Gamma_{11}^{2}F, & \langle X_{uu},X_{v}\rangle & =\Gamma_{11}^{1}F+\Gamma_{11}^{2}G,\\ +\langle X_{uv},X_{u}\rangle & =\Gamma_{12}^{1}E+\Gamma_{12}^{2}F, & \langle X_{uv},X_{v}\rangle & =\Gamma_{12}^{1}F+\Gamma_{12}^{2}G,\\ +\langle X_{vv},X_{u}\rangle & =\Gamma_{22}^{1}E+\Gamma_{22}^{2}F, & \langle X_{vv},X_{v}\rangle & =\Gamma_{22}^{1}F+\Gamma_{22}^{2}G. +\end{align*} + +\end_inset + +Derivando +\begin_inset Formula $E$ +\end_inset + +, +\begin_inset Formula $F$ +\end_inset + + y +\begin_inset Formula $G$ +\end_inset + + respecto a +\begin_inset Formula $u$ +\end_inset + + y +\begin_inset Formula $v$ +\end_inset + +, +\begin_inset Formula +\begin{align*} +E_{u} & =2\langle X_{uu},X_{u}\rangle, & F_{u} & =\langle X_{uu},X_{v}\rangle+\langle X_{u},X_{vu}\rangle, & G_{u} & =2\langle X_{vu},X_{v}\rangle,\\ +E_{v} & =2\langle X_{uv},X_{u}\rangle, & F_{v} & =\langle X_{uv},X_{v}\rangle+\langle X_{u},X_{vv}\rangle, & G_{v} & =2\langle X_{vv},X_{v}\rangle, +\end{align*} + +\end_inset + +por lo que +\begin_inset Formula +\begin{align*} +\langle X_{uu},X_{u}\rangle & =\frac{E_{u}}{2}, & \langle X_{uv},X_{u}\rangle & =\frac{E_{v}}{2}, & \langle X_{vv},X_{u}\rangle & =F_{v}-\langle X_{uv},X_{v}\rangle=F_{v}-\frac{G_{u}}{2},\\ +\langle X_{uv},X_{v}\rangle & =\frac{G_{u}}{2}, & \langle X_{vv},X_{v}\rangle & =\frac{G_{v}}{2}, & \langle X_{uu},X_{v}\rangle & =F_{u}-\langle X_{u},X_{vu}\rangle=F_{u}-\frac{E_{v}}{2}. +\end{align*} + +\end_inset + +Igualando queda el sistema +\begin_inset Formula +\[ +\left\{ \begin{aligned}E\Gamma_{11}^{1}+F\Gamma_{11}^{2} & =\frac{1}{2}E_{u}, & E\Gamma_{12}^{1}+F\Gamma_{12}^{2} & =\frac{1}{2}E_{v}, & E\Gamma_{22}^{1}+F\Gamma_{22}^{2} & =F_{v}-\frac{1}{2}G_{u},\\ +F\Gamma_{11}^{1}+G\Gamma_{11}^{2} & =F_{u}-\frac{1}{2}E_{v}, & F\Gamma_{12}^{1}+G\Gamma_{12}^{2} & =\frac{1}{2}G_{u}, & F\Gamma_{22}^{1}+G\Gamma_{22}^{2} & =\frac{1}{2}G_{v}, +\end{aligned} +\right. +\] + +\end_inset + +que se divide en tres sistemas disjuntos de izquierda a derecha. + Para el primero, +\begin_inset Formula +\[ +\begin{pmatrix}\Gamma_{11}^{1}\\ +\Gamma_{12}^{2} +\end{pmatrix}=\begin{pmatrix}E & F\\ +F & G +\end{pmatrix}^{-1}\begin{pmatrix}\frac{1}{2}E_{u}\\ +F_{u}-\frac{E_{v}}{2} +\end{pmatrix}=\frac{1}{EG-F^{2}}\begin{pmatrix}G & -F\\ +-F & E +\end{pmatrix}\begin{pmatrix}\frac{1}{2}E_{u}\\ +F_{u}-\frac{E_{v}}{2} +\end{pmatrix}, +\] + +\end_inset + +y para los otros dos es análogo. +\end_layout + +\begin_layout Standard +La +\series bold +ecuación de Gauss +\series default + es +\begin_inset Formula +\[ +\Gamma_{11}^{1}\Gamma_{12}^{2}+(\Gamma_{11}^{2})_{v}+\Gamma_{11}^{2}\Gamma_{22}^{2}-\Gamma_{12}^{1}\Gamma_{11}^{2}-(\Gamma_{12}^{2})_{u}-\Gamma_{12}^{2}\Gamma_{12}^{2}=EK, +\] + +\end_inset + +la primera +\series bold +ecuación de Mainardi-Codazzi +\series default + es +\begin_inset Formula +\[ +e\Gamma_{12}^{1}+f(\Gamma_{12}^{2}-\Gamma_{11}^{1})-g\Gamma_{11}^{2}=e_{v}-f_{u} +\] + +\end_inset + +y, además, +\begin_inset Formula +\begin{align*} +(\Gamma_{11}^{1})_{v}+\Gamma_{11}^{2}\Gamma_{22}^{1}-(\Gamma_{12}^{1})_{u}-\Gamma_{12}^{2}\Gamma_{12}^{1} & =-FK. +\end{align*} + +\end_inset + + +\series bold +Demostración: +\series default + +\begin_inset Formula $X_{uuv}=X_{uvu}$ +\end_inset + +, y sustituyendo +\begin_inset Formula $X_{uu}$ +\end_inset + + y +\begin_inset Formula $X_{vv}$ +\end_inset + + según las fórmulas de Gauss, +\begin_inset Formula +\begin{multline*} +0=X_{uuv}-X_{uvu}=(\Gamma_{11}^{1})_{v}X_{u}+\Gamma_{11}^{1}X_{uv}+(\Gamma_{11}^{2})_{v}X_{v}+\Gamma_{11}^{2}X_{vv}+e_{v}N+eN_{v}-\\ +-(\Gamma_{12}^{1})_{u}X_{u}-\Gamma_{12}^{1}X_{uu}-(\Gamma_{12}^{2})_{u}X_{v}-\Gamma_{12}^{2}X_{vu}-f_{u}N-fN_{u}. +\end{multline*} + +\end_inset + +Sustituyendo con las fórmulas de Gauss, +\begin_inset Formula +\begin{multline*} +0=(\Gamma_{11}^{1})_{v}X_{u}+\Gamma_{11}^{1}(\Gamma_{12}^{1}X_{u}+\Gamma_{12}^{2}X_{v}+fN)+(\Gamma_{11}^{2})_{v}X_{v}+\Gamma_{11}^{2}(\Gamma_{22}^{1}X_{u}+\Gamma_{22}^{2}X_{v}+gN)-\\ +-(\Gamma_{12}^{1})_{u}X_{u}-\Gamma_{12}^{1}(\Gamma_{11}^{1}X_{u}+\Gamma_{11}^{2}X_{v}+eN)-(\Gamma_{12}^{2})_{u}X_{v}-\Gamma_{12}^{2}(\Gamma_{12}^{1}X_{u}+\Gamma_{12}^{2}X_{v}+fN)+\\ ++e_{v}N+e(a_{12}X_{u}+a_{22}X_{v})-f_{u}N-f(a_{11}X_{u}+a_{21}X_{v})=:A_{1}X_{u}+B_{1}X_{v}+C_{1}N. +\end{multline*} + +\end_inset + +Como +\begin_inset Formula $(X_{u},X_{v},N)$ +\end_inset + + es base de +\begin_inset Formula $\mathbb{R}^{3}$ +\end_inset + +, +\begin_inset Formula $A_{1},B_{1},C_{1}=0$ +\end_inset + +. + Como +\begin_inset Formula $B_{1}=0$ +\end_inset + +, usando las fórmulas de Weingarten, +\begin_inset Formula +\begin{multline*} +\Gamma_{11}^{1}\Gamma_{12}^{2}+(\Gamma_{11}^{2})_{v}X_{v}+\Gamma_{11}^{2}\Gamma_{22}^{2}-\Gamma_{12}^{1}\Gamma_{11}^{2}-(\Gamma_{12}^{2})_{u}-\Gamma_{12}^{2}\Gamma_{12}^{2}=fa_{21}-ea_{22}=\\ +=f\frac{eF-fE}{EG-F^{2}}-e\frac{fF-gE}{EG-F^{2}}=\frac{efF-f^{2}E-efF+egE}{EG-F^{2}}=E\frac{eg-f^{2}}{EG-F^{2}}=EK. +\end{multline*} + +\end_inset + + +\begin_inset Formula $C_{1}=0$ +\end_inset + + nos da +\begin_inset Formula +\begin{multline*} +\Gamma_{11}^{1}f+\Gamma_{11}^{2}g-\Gamma_{12}^{1}e-\Gamma_{12}^{1}f+e_{v}-f_{u}=0, +\end{multline*} + +\end_inset + +de donde se obtiene directamente la primera ecuación de Mainardi-Codazzi, + y +\begin_inset Formula $A_{1}=0$ +\end_inset + + nos da +\begin_inset Formula +\begin{multline*} +(\Gamma_{11}^{1})_{v}+\Gamma_{11}^{1}\Gamma_{12}^{1}+\Gamma_{11}^{2}\Gamma_{22}^{1}-(\Gamma_{12}^{1})_{u}-\Gamma_{12}^{1}\Gamma_{11}^{1}-\Gamma_{12}^{2}\Gamma_{12}^{1}=(\Gamma_{11}^{1})_{v}+\Gamma_{11}^{2}\Gamma_{22}^{1}-(\Gamma_{12}^{1})_{u}-\Gamma_{12}^{2}\Gamma_{12}^{1}=\\ +=fa_{11}-ea_{12}=f\frac{fF-eG}{EG-F^{2}}-e\frac{gF-fG}{EG-F^{2}}=\frac{f^{2}F-egF}{EG-F^{2}}=-FK. +\end{multline*} + +\end_inset + + +\end_layout + +\begin_layout Standard +La curvatura de Gauss depende solo de la primera forma fundamental, pues + como +\begin_inset Formula $EG-F^{2}>0$ +\end_inset + +, +\begin_inset Formula $E\neq0$ +\end_inset + + y por la ecuación de Gauss +\begin_inset Formula $K$ +\end_inset + + se puede obtener de +\begin_inset Formula $E$ +\end_inset + + y los símbolos de Christoffel, que dependen solo de la primera forma fundamenta +l. +\end_layout + +\begin_layout Standard + +\series bold +\lang latin +Theorema Egregium +\lang spanish + de Gauss: +\series default + La curvatura de Gauss de una superficie regular es invariante por isometrías + locales. + +\series bold +Demostración: +\series default + Sean +\begin_inset Formula $\phi:S_{1}\to S_{2}$ +\end_inset + + una isometría local entre superficies regulares, +\begin_inset Formula $p\in S_{1}$ +\end_inset + + y +\begin_inset Formula $(U,X)$ +\end_inset + + una parametrización de +\begin_inset Formula $S_{1}$ +\end_inset + + en +\begin_inset Formula $p$ +\end_inset + + con +\begin_inset Formula $U$ +\end_inset + + lo suficientemente pequeña para que +\begin_inset Formula $\phi|_{V:=X(U)}:V\to\phi(V)$ +\end_inset + + sea un difeomorfismo, entonces +\begin_inset Formula $(U,\overline{X}:=\phi\circ X)$ +\end_inset + + es una parametrización de +\begin_inset Formula $S_{2}$ +\end_inset + + en +\begin_inset Formula $\phi(p)$ +\end_inset + +. + Entonces, como los coeficientes de la primera forma fundamental son los + mismos para ambas parametrizaciones y la curvatura de Gauss solo depende + de estos, las curvaturas de Gauss coinciden para el mismo punto de +\begin_inset Formula $U$ +\end_inset + + y en particular +\begin_inset Formula $K_{1}(p)=K_{2}(\phi(p))$ +\end_inset + +, donde +\begin_inset Formula $K_{1}$ +\end_inset + + y +\begin_inset Formula $K_{2}$ +\end_inset + + son las curvaturas de Gauss respectivas de +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +En general un difeomorfismo local que conserva la curvatura no es una isometría + local. + +\series bold +Demostración: +\series default + Sean +\begin_inset Formula $S_{1}$ +\end_inset + + y +\begin_inset Formula $S_{2}$ +\end_inset + + parametrizadas por +\begin_inset Formula $X(u,v):=(u\cos v,u\sin v,\log u)$ +\end_inset + + y +\begin_inset Formula $\overline{X}(u,v):=(u\cos v,u\sin v,v)$ +\end_inset + +, entonces +\begin_inset Formula +\begin{align*} +X_{u} & =(\cos v,\sin v,\tfrac{1}{u}), & \overline{X}_{u} & =(\cos v,\sin v,0),\\ +X_{v} & =(-u\sin v,u\cos v,0), & \overline{X}_{v} & =(-u\sin v,u\cos v,1),\\ +N & =\frac{(-\cos v,-\sin v,u)}{\sqrt{1+u^{2}}}, & \overline{N} & =\frac{(\sin v,-\cos v,u)}{\sqrt{1+u^{2}}}, +\end{align*} + +\end_inset + +luego +\begin_inset Formula $N$ +\end_inset + + y +\begin_inset Formula $\overline{N}$ +\end_inset + + se diferencian en alguna transformación ortogonal. + Si +\begin_inset Formula $\overline{N}=O\circ N$ +\end_inset + + para una transformación ortogonal +\begin_inset Formula $O$ +\end_inset + +, entonces +\begin_inset Formula $d\overline{N}_{q}=dO_{N(q)}\circ dN_{q}=O\circ dN_{q}$ +\end_inset + +, luego +\begin_inset Formula $d\overline{N}_{q}$ +\end_inset + + y +\begin_inset Formula $dN_{q}$ +\end_inset + + se diferencian por +\begin_inset Formula $O$ +\end_inset + + y por tanto tienen igual determinante, que será la curvatura de Gauss. + Sin embargo, +\begin_inset Formula $\phi:=\overline{X}\circ X^{-1}=((x,y,z)\mapsto(x,y,e^{z}))$ +\end_inset + + no es una isometría. +\end_layout + +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +\begin_inset Formula +\begin{align*} +a_{11} & =\frac{fF-eG}{EG-F^{2}}, & a_{12} & =\frac{gF-fG}{EG-F^{2}}, & a_{21} & =\frac{eF-fE}{EG-F^{2}}, & a_{22} & =\frac{fF-gE}{EG-F^{2}}. +\end{align*} + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +La segunda +\series bold +ecuación de Mainardi-Codazzi +\series default + es +\begin_inset Formula +\[ +f_{v}-g_{u}=e\Gamma_{22}^{1}+f(\Gamma_{22}^{2}-\Gamma_{12}^{1})-g\Gamma_{12}^{2}. +\] + +\end_inset + + +\series bold +Demostración: +\series default + Como +\begin_inset Formula $X_{vvu}=X_{vuv}$ +\end_inset + +, aplicando las fórmulas de Gauss, +\begin_inset Note Comment +status open + +\begin_layout Plain Layout + +\lang english +\begin_inset Formula $gN_{u}$ +\end_inset + + is not Unix. +\end_layout + +\end_inset + + +\begin_inset Formula +\begin{multline*} +0=X_{vvu}-X_{vuv}=(\Gamma_{22}^{1})_{u}X_{u}+\Gamma_{22}^{1}X_{uu}+(\Gamma_{22}^{2})_{u}X_{v}+\Gamma_{22}^{2}X_{vu}+g_{u}N+gN_{u}-\\ +-(\Gamma_{21}^{1})_{v}X_{u}-\Gamma_{21}^{1}X_{uv}-(\Gamma_{21}^{2})_{v}X_{v}-\Gamma_{21}^{2}X_{vv}-f_{v}N-fN_{v}, +\end{multline*} + +\end_inset + +y sustituyendo de nuevo, +\begin_inset Formula +\begin{multline*} +0=(\Gamma_{22}^{1})_{u}X_{u}+\Gamma_{22}^{1}(\Gamma_{11}^{1}X_{u}+\Gamma_{11}^{2}X_{v}+eN)+(\Gamma_{22}^{2})_{u}X_{v}+\Gamma_{22}^{2}(\Gamma_{12}^{2}X_{u}+\Gamma_{12}^{2}X_{v}+fN)-\\ +-(\Gamma_{12}^{1})_{v}X_{u}-\Gamma_{12}^{1}(\Gamma_{12}^{1}X_{u}+\Gamma_{12}^{2}X_{v}+fN)-(\Gamma_{12}^{2})_{v}X_{v}-\Gamma_{12}^{2}(\Gamma_{22}^{1}X_{u}+\Gamma_{22}^{2}X_{v}+gN)+\\ ++g_{u}N+g(a_{11}X_{u}+a_{21}X_{v})-f_{v}N-f(a_{12}X_{u}+a_{22}X_{v})=:A_{2}X_{u}+B_{2}X_{v}+C_{2}N. +\end{multline*} + +\end_inset + +Como antes, +\begin_inset Formula $A_{2},B_{2},C_{2}=0$ +\end_inset + +, luego como +\begin_inset Formula $C_{2}=0$ +\end_inset + +, +\begin_inset Formula $e\Gamma_{22}^{1}+f\Gamma_{22}^{2}-f\Gamma_{12}^{1}-g\Gamma_{12}^{2}=f_{v}-g_{u}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las +\series bold +ecuaciones de compatibilidad +\series default + son la ecuación de Gauss y las dos ecuaciones de Mainardi-Codazzi. + +\series bold +Teorema de Bonnet: +\series default + Sean +\begin_inset Formula $E,F,G,e,f,g:V\to\mathbb{R}$ +\end_inset + + funciones diferenciables en un abierto +\begin_inset Formula $V\subseteq\mathbb{R}^{2}$ +\end_inset + + con +\begin_inset Formula $E>0$ +\end_inset + +, +\begin_inset Formula $G>0$ +\end_inset + +, +\begin_inset Formula $EG-F^{2}>0$ +\end_inset + + y que verifican las ecuaciones de compatibilidad, entonces existen un abierto + +\begin_inset Formula $U\subseteq V$ +\end_inset + + y un difeomorfismo +\begin_inset Formula $X:U\to X(U)\subseteq\mathbb{R}^{3}$ +\end_inset + + tales que +\begin_inset Formula $(U,X)$ +\end_inset + + es una parametrización de la superficie regular +\begin_inset Formula $X(U)$ +\end_inset + + en la que los coeficientes de la primera y segunda formas fundamentales + son +\begin_inset Formula $E,F,G$ +\end_inset + + y +\begin_inset Formula $e,f,g$ +\end_inset + +, respectivamente, y si +\begin_inset Formula $U$ +\end_inset + + es conexo y +\begin_inset Formula $\overline{X}:U\to\overline{X}(U)$ +\end_inset + + es otro difeomorfismo con los mismos coeficientes de las formas fundamentales + primera y segunda, entonces existe un movimiento rígido +\begin_inset Formula $M$ +\end_inset + + en +\begin_inset Formula $\mathbb{R}^{3}$ +\end_inset + + tal que +\begin_inset Formula $\overline{X}=M\circ X$ +\end_inset + +. +\end_layout + +\end_body +\end_document @@ -169,10 +169,38 @@ https://en.wikipedia.org/ \lang english Borůvka's algorithm \emph default -\lang spanish +, +\emph on +Christofides algorithm +\emph default . \end_layout +\begin_layout Itemize +Richard C. + Larson & Amadeo R. + Odoni (1999). + +\emph on +\lang english +Urban Operations Research +\emph default +, chapter 6.4.4 +\lang spanish + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +http://web.mit.edu/urban_or_book/www/book/chapter6/6.4.4.html +\end_layout + +\end_inset + +). +\end_layout + \begin_layout Chapter Grafos \end_layout @@ -215,5 +243,19 @@ filename "n3.lyx" \end_layout +\begin_layout Chapter +Algoritmos en grafos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n4.lyx" + +\end_inset + + +\end_layout + \end_body \end_document diff --git a/graf/n4.lyx b/graf/n4.lyx new file mode 100644 index 0000000..ec6340b --- /dev/null +++ b/graf/n4.lyx @@ -0,0 +1,2075 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Caminos más cortos +\end_layout + +\begin_layout Standard +Dada una red +\begin_inset Formula $(V,E,\ell)$ +\end_inset + + y un camino +\begin_inset Formula $P:=v_{0}e_{1}v_{1}\cdots e_{k}v_{k}$ +\end_inset + + en +\begin_inset Formula $(V,E)$ +\end_inset + +, llamamos +\series bold +longitud +\series default + de +\begin_inset Formula $P$ +\end_inset + + a +\begin_inset Formula +\[ +\ell(P):=\sum_{i=1}^{k}\ell(e_{i}). +\] + +\end_inset + +El problema del +\series bold +camino más corto +\series default + entre dos vértices +\begin_inset Formula $u,v\in V$ +\end_inset + + es el de minimizar +\begin_inset Formula $\ell(P)$ +\end_inset + + siendo +\begin_inset Formula $P$ +\end_inset + + un camino que une +\begin_inset Formula $u$ +\end_inset + + con +\begin_inset Formula $v$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $v_{0}v_{1}\cdots v_{k}$ +\end_inset + + es el camino más corto de +\begin_inset Formula $v_{0}$ +\end_inset + + a +\begin_inset Formula $v_{k}$ +\end_inset + +, +\begin_inset Formula $v_{i}v_{i+1}\cdots v_{j}$ +\end_inset + + es el camino más corto de +\begin_inset Formula $v_{i}$ +\end_inset + + a +\begin_inset Formula $v_{j}$ +\end_inset + + para +\begin_inset Formula $0\leq i<j\leq k$ +\end_inset + +, pues si no fuera el más corto, existiría un camino más corto de +\begin_inset Formula $v_{i}$ +\end_inset + + a +\begin_inset Formula $v_{j}$ +\end_inset + + y al sustituir este en +\begin_inset Formula $v_{0}\cdots v_{k}$ +\end_inset + + se tendría un camino más corto de +\begin_inset Formula $v_{0}$ +\end_inset + + a +\begin_inset Formula $v_{k}\#$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, sean +\begin_inset Formula $(V:=\{1,\dots,n\},E,\ell)$ +\end_inset + + una red conexa, +\begin_inset Formula $s\in\{1,\dots,n\}$ +\end_inset + + y +\begin_inset Formula $d\in\mathbb{R}^{n}$ +\end_inset + + tal que todo +\begin_inset Formula $d_{i}$ +\end_inset + + es la longitud de algún camino de +\begin_inset Formula $i$ +\end_inset + + a +\begin_inset Formula $s$ +\end_inset + + y +\begin_inset Formula $d_{s}=0$ +\end_inset + +, entonces: +\end_layout + +\begin_layout Enumerate +Cada +\begin_inset Formula $d_{i}$ +\end_inset + + es la longitud del camino más corto de +\begin_inset Formula $i$ +\end_inset + + a +\begin_inset Formula $s$ +\end_inset + + si y sólo si +\begin_inset Formula $d_{j}-d_{i}\leq\ell(i,j)$ +\end_inset + + para todo +\begin_inset Formula $(i,j)\in E$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Sea +\begin_inset Formula $P$ +\end_inset + + un camino más corto de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $i$ +\end_inset + +, entonces +\begin_inset Formula $Pj$ +\end_inset + + es un camino de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $j$ +\end_inset + + y +\begin_inset Formula $\ell(Pj)=\ell(P)+\ell(i,j)=d_{i}+\ell(i,j)\geq d_{j}$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Sea +\begin_inset Formula $P:=si_{1}\cdots i_{k}$ +\end_inset + + un camino, y queremos ver que +\begin_inset Formula $d_{i_{k}}\leq\ell(P)$ +\end_inset + +. + Si +\begin_inset Formula $k=0$ +\end_inset + + esto se da por hipótesis, y supuesto esto probado para caminos de longitud + +\begin_inset Formula $k-1$ +\end_inset + +, como +\begin_inset Formula $d_{i_{k}}-d_{i_{k-1}}\leq\ell(i_{k-1},i_{k})$ +\end_inset + +, +\begin_inset Formula $\ell(P)=\ell(si_{1}\cdots i_{k-1})+\ell(i_{k-1},i_{k})\geq d_{i_{k-1}}+d_{i_{k}}-d_{i_{k-1}}=d_{i_{k}}$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +Si +\begin_inset Formula $\ell(e)\geq0$ +\end_inset + + para todo +\begin_inset Formula $e\in E$ +\end_inset + +, sea +\begin_inset Formula $R\subseteq V\setminus\{s\}$ +\end_inset + + tal que, para +\begin_inset Formula $i\notin R$ +\end_inset + +, +\begin_inset Formula $d_{i}$ +\end_inset + + es la longitud de un camino más corto de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $i$ +\end_inset + + y, para +\begin_inset Formula $i\in R$ +\end_inset + +, +\begin_inset Formula $d_{i}=\min_{j\in N(i)\setminus R}(d_{j}+\ell(j,i))$ +\end_inset + +, sea +\begin_inset Formula $j\in R$ +\end_inset + + con +\begin_inset Formula $d_{j}=\min_{i\in R}d_{i}$ +\end_inset + +, entonces +\begin_inset Formula $d_{j}$ +\end_inset + + es la longitud de un camino más corto de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $j$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Sean +\begin_inset Formula $P:=st_{1}\cdots t_{p}j$ +\end_inset + + un camino de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $j$ +\end_inset + + e +\begin_inset Formula $i$ +\end_inset + + tal que +\begin_inset Formula $s,t_{1},\dots,t_{i}\notin R$ +\end_inset + + y +\begin_inset Formula $t_{k:=i+1},\dots,t_{p},j\in R$ +\end_inset + +, entonces +\begin_inset Formula $P':=st_{1}\cdots t_{i}t_{k}$ +\end_inset + + cumple +\begin_inset Formula $d_{i}+\ell(i,k)\leq\ell(P')\leq\ell(P)$ +\end_inset + +, pero por hipótesis +\begin_inset Formula $d_{k}=\min_{j\in N(i)\setminus R}(d_{j}+\ell(j,i))\leq d_{i}+\ell(i,k)$ +\end_inset + +, luego +\begin_inset Formula $d_{k}$ +\end_inset + + es cota inferior de las longitudes de caminos de +\begin_inset Formula $s$ +\end_inset + + a +\begin_inset Formula $j$ +\end_inset + + y por tanto +\begin_inset Formula $d_{j}$ +\end_inset + + también. +\end_layout + +\end_deeper +\begin_layout Standard +Esto justifica el +\series bold +algoritmo de Dijkstra +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:dijkstra" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +). + Otro algoritmo para calcular longitudes mínimas es el +\series bold +algoritmo de Dantzig +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:dantzig" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +). +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Red $( +\backslash +{1, +\backslash +dots,n +\backslash +},E, +\backslash +ell)$ con $ +\backslash +ell(E) +\backslash +in +\backslash +mathbb{R}^{ +\backslash +geq0}$ y $s +\backslash +in +\backslash +{1, +\backslash +dots,n +\backslash +}$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Tuplas $(d_1, +\backslash +dots,d_n)$ y $(p_1, +\backslash +dots,p_n)$ tales que, para cada $i$, $d_i$ es la longitud de un camino más + corto de $s$ a $i$ y, para $i +\backslash +neq s$, $p_i$ es el penúltimo nodo de dicho camino.} +\end_layout + +\begin_layout Plain Layout + +$d +\backslash +gets(+ +\backslash +infty, +\backslash +dots,+ +\backslash +infty)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$p +\backslash +gets(0, +\backslash +dots,0)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$R +\backslash +gets +\backslash +{1, +\backslash +dots,n +\backslash +} +\backslash +setminus +\backslash +{s +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$d_s +\backslash +gets0$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lPara{$i +\backslash +in N(s)$}{$p_i +\backslash +gets s$} +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$R +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Tomar $j +\backslash +in R$ con $d_j$ mínimo +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $R +\backslash +gets R +\backslash +setminus +\backslash +{j +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i +\backslash +in N(j) +\backslash +cap R$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +SSi{$d_j+ +\backslash +ell(j,i)<d_i$}{ +\end_layout + +\begin_layout Plain Layout + + $d_i +\backslash +gets d_j+ +\backslash +ell(j,i)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $p_i +\backslash +gets j$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:dijkstra" + +\end_inset + +Algoritmo de Dijkstra. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Red $(V:= +\backslash +{1, +\backslash +dots,n +\backslash +},E, +\backslash +ell)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Matrices $D +\backslash +in{ +\backslash +cal M}_n( +\backslash +mathbb R +\backslash +cup +\backslash +{+ +\backslash +infty +\backslash +})$ y $P +\backslash +in{ +\backslash +cal M}_n(V)$ tales que para $i,j +\backslash +in V$, si $i$ y $j$ están desconectados, $D_{ij}=+ +\backslash +infty$, y si están conectados, $D_{ij}$ es la longitud de un camino más + corto de $i$ a $j$ y $P_{ij}$ es su penúltimo nodo, o $i$ si $i=j$ y el + camino es el trivial.} +\end_layout + +\begin_layout Plain Layout + +% +\end_layout + +\begin_layout Plain Layout + +% N.B.: La idea del algoritmo es que, en cada iteración de $k$, calcula las +\end_layout + +\begin_layout Plain Layout + +% distancias a $k$ en el subgrafo generado por $ +\backslash +{1, +\backslash +dots,k +\backslash +}$ a partir de +\end_layout + +\begin_layout Plain Layout + +% las distancias entre nodos en el subgrafo generado por $ +\backslash +{1, +\backslash +dots,k-1 +\backslash +}$, +\end_layout + +\begin_layout Plain Layout + +% y a continuación actualiza las distancias entre los nodos $1, +\backslash +dots,k-1$ +\end_layout + +\begin_layout Plain Layout + +% comprobando si hay un camino más corto pasando por $k$. +\end_layout + +\begin_layout Plain Layout + +% +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i,j +\backslash +in V$}{ +\end_layout + +\begin_layout Plain Layout + + $P_{ij} +\backslash +gets i$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$i=j$}{$D_{ij} +\backslash +gets0$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCaso{$D_{ij} +\backslash +gets+ +\backslash +infty$} +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$k +\backslash +gets 2$ +\backslash +KwA $n$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i +\backslash +gets 1$ +\backslash +KwA $k-1$}{ +\end_layout + +\begin_layout Plain Layout + + Tomar $j +\backslash +in +\backslash +{1, +\backslash +dots,k-1 +\backslash +}$ con $D_{ij}+ +\backslash +ell(j,k)$ mínimo (si $(j,k) +\backslash +notin E$, $ +\backslash +ell(j,k):=+ +\backslash +infty$) +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $D_{ki} +\backslash +gets D_{ik} +\backslash +gets D_{ij}+ +\backslash +ell(j,k)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $P_{ik} +\backslash +gets j$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$j=i$}{$P_{ki} +\backslash +gets k$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCaso{$P_{ki} +\backslash +gets P_{ji}$} +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i,j +\backslash +gets 1$ +\backslash +KwA $k-1$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +SSi{$D_{ij}>D_{ik}+D_{kj}$}{ +\end_layout + +\begin_layout Plain Layout + + $D_{ij} +\backslash +gets D_{ik}+D_{kj}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $P_{ij} +\backslash +gets P_{kj}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:dantzig" + +\end_inset + +Algoritmo de Dantzig. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section +Tours eulerianos +\end_layout + +\begin_layout Standard +Dado un grafo +\begin_inset Formula $G=(V,E)$ +\end_inset + +, un +\series bold +tour +\series default + o +\series bold +recorrido euleriano +\series default + es un paseo cerrado que atraviesa cada eje del grafo exactamente una vez. + Un grafo es +\series bold +euleriano +\series default + si admite un recorrido euleriano. + Como +\series bold +teorema +\series default +, un grafo conexo es euleriano si y solo si todos los vértices tiene orden + par, en cuyo caso se puede obtener un tour euleriano con el +\series bold +algoritmo de Hierholzer +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:hierholzer" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +). +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Sean +\begin_inset Formula $T$ +\end_inset + + un tour euleriano, +\begin_inset Formula $v\in V$ +\end_inset + + y +\begin_inset Formula $e_{1},\dots,e_{k}$ +\end_inset + + los ejes adyacentes a +\begin_inset Formula $v$ +\end_inset + +, cada eje está en +\begin_inset Formula $T$ +\end_inset + + exactamente una vez y puede ser entrante (el siguiente nodo es +\begin_inset Formula $v$ +\end_inset + +) o saliente (lo es el anterior), pero a todo eje entrante le sigue uno + saliente y a todo saliente le precede uno entrante (podemos suponer que + +\begin_inset Formula $T$ +\end_inset + + no empieza por +\begin_inset Formula $v$ +\end_inset + +), luego el número de entrantes y salientes es el mismo y +\begin_inset Formula $k$ +\end_inset + + es par. +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Claramente el algoritmo de Hierholzer toma cada eje exactamente una vez, + crea un paseo cerrado y termina, y queda ver que no da errores. + Si queda algún eje por tomar, alguno debe ser adyacente a un nodo en +\begin_inset Formula $P$ +\end_inset + +, pues de lo contrario los nodos y ejes de +\begin_inset Formula $P$ +\end_inset + + formarían una componente conexa y, al haber más ejes, +\begin_inset Formula $G$ +\end_inset + + sería disconexo. +\begin_inset Formula $\#$ +\end_inset + + Respecto al paso de tomar un eje, en la primera iteración hemos tomado + un nodo de forma que se pueda, y en el resto hemos tomado un número par + de ejes adyacentes a +\begin_inset Formula $i$ +\end_inset + + como ejes entrantes y salientes más el nodo usado para entrar, y como el + orden es par, debe quedar otro eje sin añadir a +\begin_inset Formula $P$ +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Grafo $G=(V,E)$ conexo en el que todos los vértices tienen orden + par.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Tour euleriano $P$ de $G$.} +\end_layout + +\begin_layout Plain Layout + +Elegir $s +\backslash +in V$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$P +\backslash +gets(s)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$E +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Tomar un nodo $i$ en $P$ adyacente a algún eje +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $k +\backslash +gets i$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $P_0 +\backslash +gets(i)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Repetir{$i=k$}{ +\end_layout + +\begin_layout Plain Layout + + Sacar un $(i,j)$ de $E$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $P_0 +\backslash +gets P_0j$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets j$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + Con $P=:P_1kP_2$, hacer $P +\backslash +gets P_1P_0P_2$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:hierholzer" + +\end_inset + +Algoritmo de Hierholzer. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +También se puede obtener un tour euleriano con el +\series bold +algoritmo de Fleury +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:fleury" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +). + +\series bold +Demostración: +\series default + Es claro que si el algoritmo funciona genera un tour euleriano. + Sea +\begin_inset Formula $s$ +\end_inset + + el nodo inicial, cuando +\begin_inset Formula $o(s)>0$ +\end_inset + +, +\begin_inset Formula $P$ +\end_inset + + es un paseo que no repite ejes, por lo que todos los nodos salvo el primero + y el último tienen orden par (por ser +\begin_inset Formula $G$ +\end_inset + + euleriano) y, como estos dos tienen orden impar, se puede salir del último + añadiendo otro eje al camino en cada paso hasta llegar a +\begin_inset Formula $s$ +\end_inset + + y no poder salir, momento en que queremos ver que +\begin_inset Formula $E=\emptyset$ +\end_inset + +. + Si no fuera así, al final existiría un +\begin_inset Formula $e\in E$ +\end_inset + + en una componente conexa de +\begin_inset Formula $G$ +\end_inset + + distinta a la de +\begin_inset Formula $s$ +\end_inset + +, pero la conexión con +\begin_inset Formula $s$ +\end_inset + + salvo en nodos aislados es un invariante del bucle. + En efecto, al principio de una iteración, +\begin_inset Formula $i$ +\end_inset + + conecta con +\begin_inset Formula $s$ +\end_inset + + porque no es aislado y solo se rompe la conexión si se quita un eje de + corte, pero entonces todos los ejes adyacentes a +\begin_inset Formula $i$ +\end_inset + +, +\begin_inset Formula $(i,j_{1}),\dots,(i,j_{k})$ +\end_inset + +, serían de corte y +\begin_inset Formula $G-i$ +\end_inset + + tendría +\begin_inset Formula $k$ +\end_inset + + componentes conexas. + Sea entonces +\begin_inset Formula $V_{p}$ +\end_inset + + la componente conexa con +\begin_inset Formula $j_{p}$ +\end_inset + +, si fuera +\begin_inset Formula $s\notin V_{p}$ +\end_inset + +, como todos los nodos de +\begin_inset Formula $V_{p}$ +\end_inset + + tienen orden par salvo +\begin_inset Formula $j_{p}$ +\end_inset + + que tendría orden impar al haber eliminado +\begin_inset Formula $(i,j_{p})$ +\end_inset + +, la suma de los órdenes sería impar +\begin_inset Formula $\#$ +\end_inset + +, luego +\begin_inset Formula $s\in V_{p}$ +\end_inset + + y, como +\begin_inset Formula $V_{1},\dots,V_{k}$ +\end_inset + + es una partición, +\begin_inset Formula $k=1$ +\end_inset + +. + Por tanto +\begin_inset Formula $i$ +\end_inset + + es un nodo hoja y eliminar el eje de corte deja a +\begin_inset Formula $i$ +\end_inset + + aislado. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Grafo euleriano conexo $G=(V,E)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Tour euleriano $P$ de $G$.} +\end_layout + +\begin_layout Plain Layout + +Tomar $i +\backslash +in V$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$P +\backslash +gets(i)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$E +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{existe $(i,j) +\backslash +in E$ que no sea de corte}{sacar $(i,j)$ de $E$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCaso{sacar un $(i,j)$ de $E$} +\end_layout + +\begin_layout Plain Layout + + $P +\backslash +gets Pj$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets j$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:fleury" + +\end_inset + +Algoritmo de Fleury. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section +Problema del cartero chino +\end_layout + +\begin_layout Standard +Dada una red +\begin_inset Formula $(V,E,\ell)$ +\end_inset + +, el +\series bold +problema del cartero chino +\series default + consiste en obtener un paseo cerrado de longitud mínima que incluya todos + los ejes al menos una vez. + Para resolverlo: +\end_layout + +\begin_layout Enumerate +Calculamos la longitud de los caminos más cortos entre cada par de nodos, + por ejemplo con el algoritmo de Dantzig. +\end_layout + +\begin_layout Enumerate +Identificamos los nodos de orden impar, de los que habrá un número par, + y los emparejamos minimizando la suma de las longitudes de los caminos + más cortos entre cada par. +\end_layout + +\begin_layout Enumerate +Duplicamos los ejes de un camino más corto entre cada par, obteniendo un + grafo euleriano. +\end_layout + +\begin_layout Enumerate +Obtenemos un tour euleriano, que será la solución. +\end_layout + +\begin_layout Section +Grafos hamiltonianos +\end_layout + +\begin_layout Standard +Dado un grafo +\begin_inset Formula $G=(V,E)$ +\end_inset + +, un camino es +\series bold +hamiltoniano +\series default + si contiene a todos los vértices. + Un grafo es hamiltoniano si admite un ciclo hamiltoniano. +\end_layout + +\begin_layout Standard +El +\series bold +grafo clausura +\series default + de +\begin_inset Formula $G$ +\end_inset + +, +\begin_inset Formula $[G]$ +\end_inset + +, es el grafo resultante de añadir a +\begin_inset Formula $G$ +\end_inset + + los +\begin_inset Formula $(u,v)\in E^{\complement}$ +\end_inset + + con +\begin_inset Formula $o(u)+o(v)\geq|V|$ +\end_inset + + hasta que no quede ningún +\begin_inset Formula $(u,v)\in E^{\complement}$ +\end_inset + + que cumpla la condición. + Como +\series bold +teorema +\series default +, +\begin_inset Formula $G$ +\end_inset + + es hamiltoniano si y sólo si lo es +\begin_inset Formula $[G]$ +\end_inset + +. +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\implies]$ +\end_inset + + +\end_layout + +\end_inset + +Trivial. +\end_layout + +\begin_layout Itemize +\begin_inset Argument item:1 +status open + +\begin_layout Plain Layout +\begin_inset Formula $\impliedby]$ +\end_inset + + +\end_layout + +\end_inset + +Si +\begin_inset Formula $G$ +\end_inset + + no fuera hamiltoniano y, para obtener +\begin_inset Formula $[G]$ +\end_inset + +, le hubiéramos añadido los ejes +\begin_inset Formula $e_{1},\dots,e_{n}$ +\end_inset + + en ese orden, existiría un +\begin_inset Formula $e_{k}=:(u,v)$ +\end_inset + + tal que +\begin_inset Formula $G_{i}:=(V,E_{i}):=G+\{e_{1},\dots,e_{i}\}$ +\end_inset + + es hamiltoniano si y sólo si +\begin_inset Formula $i>k$ +\end_inset + +, por lo que existe un camino hamiltoniano +\begin_inset Formula $(u=:u_{1})u_{2}\cdots(u_{n}:=v)$ +\end_inset + + en +\begin_inset Formula $G_{k}$ +\end_inset + +, con +\begin_inset Formula $n:=|V|$ +\end_inset + +. + Sean ahora +\begin_inset Formula $X:=\{i\in\{2,\dots,n-2\}:(u_{i},v)\in E_{k}\}$ +\end_inset + + e +\begin_inset Formula $Y:=\{i\in\{2,\dots,n-2\}:(u_{i+1},u)\in E_{k}\}$ +\end_inset + +, se tiene +\begin_inset Formula $|X|=o(u)-1$ +\end_inset + + e +\begin_inset Formula $|Y|=o(v)-1$ +\end_inset + +, pero como +\begin_inset Formula $o(u)+o(v)\geq n$ +\end_inset + + en +\begin_inset Formula $G_{k}$ +\end_inset + +, +\begin_inset Formula $|X|+|Y|=o(u)+o(v)\geq n-2>n-1=|\{2,\dots,n-2\}|$ +\end_inset + + y existe +\begin_inset Formula $j\in X\cap Y$ +\end_inset + +, con lo que +\begin_inset Formula $u_{1}u_{k}u_{k+1}\cdots u_{n}u_{k-1}u_{k-2}\cdots u_{1}$ +\end_inset + + es un ciclo hamiltoniano en +\begin_inset Formula $G_{j}\#$ +\end_inset + +. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Una +\series bold +sucesión hamiltoniana +\series default + es una tupla +\begin_inset Formula $(a_{1},\dots,a_{n})$ +\end_inset + + de naturales tal que todo grafo +\begin_inset Formula $(\{1,\dots,n\},E)$ +\end_inset + + con +\begin_inset Formula $o(1)\leq\dots\leq o(n)$ +\end_inset + + y +\begin_inset Formula $o(i)\geq a_{i}$ +\end_inset + + para cada +\begin_inset Formula $i$ +\end_inset + + es hamiltoniano. + Como +\series bold +teorema +\series default +, para +\begin_inset Formula $n\geq3$ +\end_inset + +, +\begin_inset Formula $(a_{1},\dots,a_{n})$ +\end_inset + + con +\begin_inset Formula $a_{1}\leq\dots\leq a_{n}<n$ +\end_inset + + es una sucesión hamiltoniana si y sólo si para +\begin_inset Formula $i<\frac{n}{2}$ +\end_inset + + con +\begin_inset Formula $a_{i}\leq i$ +\end_inset + + es +\begin_inset Formula $a_{n-1}\geq n-i$ +\end_inset + +. +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\begin_inset Note Note +status open + +\begin_layout Plain Layout +¿Debería añadir la demostración de esto? En plan, solo ha explicado una + parte y más bien mal y para la otra ha puesto un ejemplo. + ¿El examen lo escribe Pulido o Pascual? +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +El +\series bold +problema del viajero +\series default + o +\series bold +del viajante +\series default + en una red +\begin_inset Formula $(V,E,\ell)$ +\end_inset + + consiste en encontrar el ciclo hamiltoniano de longitud mínima. + Se puede aproximar con el +\series bold +algoritmo de Christofides +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:christofides" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +, 1976). +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Red $(V,E, +\backslash +ell)$ completa en la que $ +\backslash +ell$ cumple la desigualdad triangular.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Ciclo hamiltoniano $C$ con longitud a lo sumo $3 +\backslash +over 2$ de la del ciclo hamiltoniano de longitud mínima en la red.} +\end_layout + +\begin_layout Plain Layout + +Encontrar un árbol generador minimal $T$ de $(V,E)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$O +\backslash +gets +\backslash +{v +\backslash +in V:o(v) +\backslash +text{ impar en }T +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +Obtener un emparejamiento $M$ de los vértices de $O$ con $ +\backslash +sum_{e +\backslash +in M} +\backslash +ell(e)$ mínimo +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$H +\backslash +gets(V,T +\backslash +amalg M)$ +\backslash +tcp*{{ +\backslash +rm $H$ es un multigrafo euleriano.}} +\end_layout + +\begin_layout Plain Layout + +Encontrar un ciclo euleriano $C$ en $H$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +Borrar de $C$ los nodos repetidos +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:christofides" + +\end_inset + +Algoritmo de Christofides. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/mne/n.lyx b/mne/n.lyx new file mode 100644 index 0000000..9a9e5d7 --- /dev/null +++ b/mne/n.lyx @@ -0,0 +1,198 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\input{../defs} +\end_preamble +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize 10 +\spacing single +\use_hyperref false +\papersize a5paper +\use_geometry true +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 0.2cm +\topmargin 0.7cm +\rightmargin 0.2cm +\bottommargin 0.7cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle empty +\listings_params "basicstyle={\ttfamily}" +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Métodos Numéricos de las Ecuaciones Diferenciales +\end_layout + +\begin_layout Date +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +def +\backslash +cryear{2020} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "../license.lyx" + +\end_inset + + +\end_layout + +\begin_layout Standard +Bibliografía: +\end_layout + +\begin_layout Itemize +F. + Esquembre (2020). + Notas de clase. +\end_layout + +\begin_layout Itemize + +\lang english +Wikipedia, the Free Encyclopedia +\lang spanish + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://en.wikipedia.org/ +\end_layout + +\end_inset + +). + +\emph on +\lang english +Runge-Kutta methods +\emph default +\lang spanish +. +\end_layout + +\begin_layout Chapter +Introducción +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n1.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Métodos de paso fijo +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n2.lyx" + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/mne/n1.lyx b/mne/n1.lyx new file mode 100644 index 0000000..bc4abd2 --- /dev/null +++ b/mne/n1.lyx @@ -0,0 +1,462 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Un +\series bold +problema de valores iniciales +\series default + real es uno de la forma +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{x} & =f(t,x),\\ +x(t_{0}) & =x_{0}, +\end{aligned} +\right. +\] + +\end_inset + +dado por +\begin_inset Formula $f:\Omega\subseteq\mathbb{R}\times\mathbb{R}^{n}\to\mathbb{R}^{n}$ +\end_inset + + con +\begin_inset Formula $\Omega$ +\end_inset + + abierto y +\begin_inset Formula $(t_{0},x_{0})\in\Omega$ +\end_inset + +, y donde +\begin_inset Formula $x:I\subseteq\mathbb{R}\to\mathbb{R}^{n}$ +\end_inset + + es la incógnita, siendo +\begin_inset Formula $I$ +\end_inset + + un entorno de +\begin_inset Formula $t_{0}$ +\end_inset + +. + +\end_layout + +\begin_layout Standard +El problema está +\series bold +bien planteado +\series default + en un intervalo +\begin_inset Formula $[a,b]\subseteq I$ +\end_inset + + si tiene solución única en +\begin_inset Formula $[a,b]$ +\end_inset + + y para todo +\begin_inset Formula $\varepsilon>0$ +\end_inset + + existe un +\begin_inset Formula $\delta>0$ +\end_inset + + tal que si +\begin_inset Formula $c\in(-\varepsilon,\varepsilon)$ +\end_inset + + y +\begin_inset Formula $e:[a,b]\to\mathbb{R}^{n}$ +\end_inset + + es tal que +\begin_inset Formula $|e(t)|<\varepsilon$ +\end_inset + + para todo +\begin_inset Formula $t\in[a,b]$ +\end_inset + +, entonces el +\series bold +problema perturbado +\series default + +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{z} & =f(t,z)+e(t),\\ +z(t_{0}) & =x_{0}+c, +\end{aligned} +\right. +\] + +\end_inset + +tiene solución única. +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, si +\begin_inset Formula $D:=[a,b]\times\mathbb{R}$ +\end_inset + +, +\begin_inset Formula $t_{0}\in[a,b]$ +\end_inset + + y +\begin_inset Formula $f:D\to\mathbb{R}$ +\end_inset + + es continua y lipschitziana en la segunda variable en todo +\begin_inset Formula $D$ +\end_inset + +, entonces +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{x} & =f(t,x),\\ +x(t_{0}) & =x_{0} +\end{aligned} +\right. +\] + +\end_inset + +está bien planteado. +\end_layout + +\begin_layout Standard +En adelante supondremos que el dominio de +\begin_inset Formula $x$ +\end_inset + + incluye un intervalo +\begin_inset Formula $[a,b]$ +\end_inset + + y +\begin_inset Formula $t_{0}=a$ +\end_inset + +. + No siempre se puede resolver un problema de valores iniciales de forma + analítica, por lo que usamos métodos de resolución numérica, que aproximan + +\begin_inset Formula $x|_{[a,b]}$ +\end_inset + + creando una partición +\begin_inset Formula $a=t_{0}<\dots<t_{n}=c$ +\end_inset + +, para un cierto +\begin_inset Formula $c\geq b$ +\end_inset + + con +\begin_inset Formula $[a,c]$ +\end_inset + + en el dominio de +\begin_inset Formula $x$ +\end_inset + +, y obtienen una secuencia +\begin_inset Formula $(\omega_{i})_{i=0}^{n}$ +\end_inset + + que aproxima +\begin_inset Formula $(x(t_{i}))_{i=0}^{n}$ +\end_inset + + con un error +\begin_inset Formula $\max_{i=0}^{n}\Vert x(t_{i})-\omega_{i}\Vert$ +\end_inset + + aceptable. + Los valores de +\begin_inset Formula $x$ +\end_inset + + en el resto de puntos de +\begin_inset Formula $[a,b]$ +\end_inset + + se obtienen por interpolación. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +sremember{CN} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Si el polinomio interpolador de +\begin_inset Formula $f$ +\end_inset + + en +\begin_inset Formula $x_{0},\dots,x_{n}$ +\end_inset + + es +\begin_inset Formula $P(x)=a_{n}x^{n}+\dots+a_{0}$ +\end_inset + +, llamamos +\begin_inset Formula $f[x_{0},\dots,x_{n}]:=a_{n}$ +\end_inset + +. + [...] +\begin_inset Formula $f[x]=f(x)$ +\end_inset + +. + [...] Para +\begin_inset Formula $n\geq1$ +\end_inset + +, +\begin_inset Formula +\[ +f[x_{0},\dots,x_{n}]=\frac{f[x_{1},\dots,x_{n}]-f[x_{0},\dots,x_{n-1}]}{x_{n}-x_{0}}. +\] + +\end_inset + +[...] Una forma de hallar +\begin_inset Formula $f[x_{0},\dots,x_{n}]$ +\end_inset + + es usando una tabla triangular que se va llenando por columnas, donde la + primera columna contiene los +\begin_inset Formula $x_{k}$ +\end_inset + +, la segunda, los +\begin_inset Formula $f(x_{k})$ +\end_inset + +, [...], y la +\begin_inset Formula $j$ +\end_inset + +-ésima, los +\begin_inset Formula $f[x_{k-j+1},\dots,x_{k}]$ +\end_inset + +, llegando a +\begin_inset Formula $f[x_{0},\dots,x_{n}]$ +\end_inset + + en la +\begin_inset Formula $(n+1)$ +\end_inset + +-ésima fila. +\end_layout + +\begin_layout Standard +[...] +\series bold +Forma de Newton +\series default + del polinomio interpolador, [...] +\begin_inset Formula +\[ +f[x_{0}]+f[x_{0},x_{1}](x-x_{0})+\dots+f[x_{0},\dots,x_{n}](x-x_{0})\cdots(x-x_{n-1}). +\] + +\end_inset + +Para cálculo computacional es más apropiada la forma anidada, +\begin_inset Formula +\[ +f[x_{0}]+(x-x_{0})(f[x_{0},x_{1}]+(x-x_{1})(f[x_{0},x_{1},x_{2}]+\dots)). +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +[...] Un +\series bold +problema de Hermite +\series default + consiste en hallar un polinomio +\begin_inset Formula $P$ +\end_inset + + de grado +\begin_inset Formula $N$ +\end_inset + + tal que, para +\begin_inset Formula $k\in\{0,\dots,m\}$ +\end_inset + + y +\begin_inset Formula $x\in S_{k}$ +\end_inset + +, +\begin_inset Formula $P^{(k)}(x)=f^{(k)}(x)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Existe un único polinomio de grado máximo +\begin_inset Formula $\sum_{k=0}^{m}|S_{k}|$ +\end_inset + + que cumpla las condiciones, y podemos hallarlo mediante +\series bold +diferencias divididas generalizadas +\series default +. + Si +\begin_inset Formula $x_{0}\leq\dots\leq x_{n}$ +\end_inset + +, [...] +\begin_inset Formula +\[ +f[x_{0},\dots,x_{n}]:=\begin{cases} +\frac{f[x_{1},\dots,x_{n}]-f[x_{0},\dots,x_{n-1}]}{x_{n}-x_{0}}, & x_{0}<x_{n};\\ +\frac{f^{(n)}(x_{0})}{n!}, & x_{0}=\dots=x_{n}. +\end{cases} +\] + +\end_inset + +Creamos una tabla de diferencias divididas en la que cada elemento +\begin_inset Formula $x\in S_{0}$ +\end_inset + + aparece tantas veces como conjuntos de entre +\begin_inset Formula $S_{0},\dots,S_{m}$ +\end_inset + + lo contienen, y expresamos el polinomio resultante [...] en forma de Newton. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +eremember +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/mne/n2.lyx b/mne/n2.lyx new file mode 100644 index 0000000..8442b0d --- /dev/null +++ b/mne/n2.lyx @@ -0,0 +1,994 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Dado un problema de valores iniciales +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{x} & =f(t,x),\\ +x(a) & =x_{0}, +\end{aligned} +\right. +\] + +\end_inset + +los +\series bold +métodos de paso fijo +\series default + toman un +\series bold +paso +\series default + +\begin_inset Formula $h>0$ +\end_inset + + y particionan +\begin_inset Formula $[a,b]$ +\end_inset + + con +\begin_inset Formula $t_{i}:=a+hi$ +\end_inset + +, aunque esto se suele calcular como +\begin_inset Formula $t_{0}=a$ +\end_inset + + y +\begin_inset Formula $t_{i}=t_{i-1}+h$ +\end_inset + + para +\begin_inset Formula $i\geq1$ +\end_inset + +. +\end_layout + +\begin_layout Section +Método de Euler +\end_layout + +\begin_layout Standard +El +\series bold +método de Euler +\series default + viene dado por +\begin_inset Formula $\omega_{0}:=x_{0}$ +\end_inset + + y +\begin_inset Formula $\omega_{i+1}:=\omega_{i}+hf(t_{i},\omega_{i})$ +\end_inset + +. + Para obtener el valor para un +\begin_inset Formula $t\in(t_{i-1},t_{i})$ +\end_inset + +, podemos interpolar con el propio método, lo que si se hace desde +\begin_inset Formula $t_{i-1}$ +\end_inset + + equivale a una interpolación lineal o una interpolación de Newton en los + puntos +\begin_inset Formula $(t_{i-1},\omega_{i-1})$ +\end_inset + + y +\begin_inset Formula $(t_{i},\omega_{i})$ +\end_inset + +. +\end_layout + +\begin_layout Standard + +\series bold +Teorema de convergencia del método de Euler: +\series default + Sean +\begin_inset Formula $a,b\in\mathbb{R}$ +\end_inset + + con +\begin_inset Formula $a<b$ +\end_inset + +, +\begin_inset Formula $D\subseteq\mathbb{R}^{2}$ +\end_inset + + un abierto conexo, +\begin_inset Formula $x_{0}\in\mathbb{R}$ +\end_inset + + con +\begin_inset Formula $(a,x_{0})\in D$ +\end_inset + +, +\begin_inset Formula $f:D\to\mathbb{R}$ +\end_inset + + lipschitziana en +\begin_inset Formula $D$ +\end_inset + + en la segunda variable con constante de lipschitzianidad +\begin_inset Formula $K\geq0$ +\end_inset + +, +\begin_inset Formula $n\in\mathbb{N}^{*}$ +\end_inset + +, +\begin_inset Formula $h:=\frac{b-a}{n}$ +\end_inset + +, +\begin_inset Formula $x:[a,b]\to\mathbb{R}$ +\end_inset + + una solución de +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{x} & =f(t,x),\\ +x(a) & =x_{0} +\end{aligned} +\right. +\] + +\end_inset + +con +\begin_inset Formula $\ddot{x}(D)$ +\end_inset + + acotada por un +\begin_inset Formula $C\geq0$ +\end_inset + +, +\begin_inset Formula $(t_{i},\omega_{i})_{i=0}^{n}$ +\end_inset + + los puntos dados por el método de Euler con paso +\begin_inset Formula $h$ +\end_inset + + para dicho problema con redondeo, dado por +\begin_inset Formula +\[ +\left\{ \begin{aligned}\omega_{0} & :=x_{0}+\delta_{0},\\ +\omega_{i+1} & :=\omega_{i}+hf(t_{i},\omega_{i})+\delta_{i+1}, +\end{aligned} +\right. +\] + +\end_inset + +con cada +\begin_inset Formula $|\delta_{i}|<\delta$ +\end_inset + + para un cierto +\begin_inset Formula $\delta\geq0$ +\end_inset + +, y +\begin_inset Formula $x_{i}:=x(t_{i})$ +\end_inset + + para cada +\begin_inset Formula $i$ +\end_inset + +, entonces +\begin_inset Formula +\[ +\max_{0\leq i\leq n}|x_{i}-\omega_{i}|\leq e^{(b-a)K}\delta+\left(\frac{e^{(b-a)K}-1}{K}\right)\left(\frac{1}{2}Ch+\frac{\delta}{h}\right). +\] + +\end_inset + +En particular, sin redondeo el método de Euler tiene una precisión de +\begin_inset Formula $O(h)$ +\end_inset + +. + +\series bold +Demostración: +\series default + Por Taylor, +\begin_inset Formula +\[ +x_{i+1}=x(t_{i}+h)=x(t_{i})+h\dot{x}(t_{i})+\frac{1}{2}h^{2}\ddot{x}(\xi_{i})=x_{i}+hf(t_{i},x_{i})+\frac{1}{2}h^{2}\ddot{x}(\xi_{i}) +\] + +\end_inset + + para algún +\begin_inset Formula $\xi_{i}\in[t_{i},t_{i+1}]$ +\end_inset + +. + Queremos ver que, para +\begin_inset Formula $i\in\{0,\dots,n\}$ +\end_inset + +, +\begin_inset Formula +\[ +|x_{i}-\omega_{i}|\leq(1+hK)^{i}\delta+\sum_{j=0}^{i-1}(1+hK)^{j}\left(\frac{1}{2}Ch^{2}+\delta\right). +\] + +\end_inset + +Para +\begin_inset Formula $i=0$ +\end_inset + + esto es obvio, y supuesto esto probado para un +\begin_inset Formula $i\in\{0,\dots,n-1\}$ +\end_inset + +, +\begin_inset Formula +\begin{align*} +|y_{i+1}-\omega_{i+1}| & =\left|(y_{i}-\omega_{i})+h(f(t_{i},y_{i})-f(t_{i},\omega_{i}))+\frac{1}{2}h^{2}\ddot{y}(\xi_{i})-\delta_{i+1}\right|\\ + & \leq|y_{i}-\omega_{i}|+h|f(t_{i},y_{i})-f(t_{i},\omega_{i})|+\frac{1}{2}h^{2}|\ddot{y}(\xi_{i})|+|\delta_{i+1}|\\ + & \leq(1+hK)|y_{i}-\omega_{i}|+\frac{1}{2}Ch^{2}+\delta\\ + & \leq(1+hK)\left((1+hK)^{i}\delta+\sum_{j=0}^{i-1}(1+hK)^{j}\left(\frac{1}{2}Ch^{2}+\delta\right)\right)+\frac{1}{2}Ch^{2}+\delta\\ + & =(1+hK)^{i+1}\delta+\sum_{j=0}^{i}(1+hK)^{j}\left(\frac{1}{2}Ch^{2}+\delta\right). +\end{align*} + +\end_inset + +Ahora bien, +\begin_inset Formula $\sum_{j=0}^{i}(1+hK)^{j}=\frac{(1+hK)^{i+1}-1}{(1+hK)-1}=\frac{(1+hK)^{i+1}-1}{hK}$ +\end_inset + +, y para +\begin_inset Formula $t\in\mathbb{R}$ +\end_inset + +, existe +\begin_inset Formula $\xi$ +\end_inset + + con +\begin_inset Formula $e^{t}=1+t+\frac{t^{2}}{2}e^{\xi}\geq1+t$ +\end_inset + + y por tanto +\begin_inset Formula $(1+t)^{n}\leq e^{nt}$ +\end_inset + +, luego en particular +\begin_inset Formula $(1+hK)^{i+1}\leq(1+hK)^{n}\leq e^{hKn}=e^{(b-a)K}$ +\end_inset + + y +\begin_inset Formula +\[ +|y_{i}-\omega_{i}|\leq e^{(b-a)K}+\frac{e^{(b-a)K}-1}{hK}\left(\frac{1}{2}Ch^{2}+\delta\right). +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $x:[a,b]\to\mathbb{R}$ +\end_inset + + es de clase +\begin_inset Formula ${\cal C}^{3}$ +\end_inset + +, +\begin_inset Formula $\frac{\partial f}{\partial x}$ +\end_inset + + y +\begin_inset Formula $\frac{\partial^{2}f}{\partial x^{2}}$ +\end_inset + + son continuas y +\begin_inset Formula $(t_{i},\omega_{i})_{i=0}^{n}$ +\end_inset + + son los puntos dados por el método de Euler en +\begin_inset Formula $[a,b]$ +\end_inset + + con paso +\begin_inset Formula $h$ +\end_inset + +, +\begin_inset Formula $x_{i}-\omega_{i}=hD(t_{i})+O(h^{2})$ +\end_inset + +, donde +\begin_inset Formula $D$ +\end_inset + + es la solución del problema +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{D}(t) & =\frac{\partial f}{\partial x}(t,x(t))D(t)+\frac{1}{2}\ddot{x}(t),\\ +D(t_{0}) & =0. +\end{aligned} +\right. +\] + +\end_inset + +De aquí, si +\begin_inset Formula $(t_{i},\xi_{i})_{i=0}^{2n}$ +\end_inset + + son los puntos dados por el método de Euler en +\begin_inset Formula $[a,b]$ +\end_inset + + con paso +\begin_inset Formula $\frac{h}{2}$ +\end_inset + +, +\end_layout + +\begin_layout Enumerate +\begin_inset Formula $|x_{i}-\xi_{2i}|=(\xi_{2i}-\omega_{i})+O(h^{2})$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Como +\begin_inset Formula $x_{i}-\omega_{i}=hD(t)+O(h^{2})$ +\end_inset + + y +\begin_inset Formula $x_{i}-\xi_{2i}=\frac{h}{2}D(t)+O(h^{2})$ +\end_inset + +, despejando, +\begin_inset Formula $x_{i}-2\xi_{i}+\omega_{i}=O(h^{2})$ +\end_inset + +. +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula $y_{i}:=2\xi_{2i}-\omega_{i}$ +\end_inset + + es un método de paso fijo +\begin_inset Formula $h$ +\end_inset + + de orden +\begin_inset Formula $O(h^{2})$ +\end_inset + +. +\end_layout + +\begin_layout Section +Métodos de Taylor +\end_layout + +\begin_layout Standard +El +\series bold +método de Taylor +\series default + de orden +\begin_inset Formula $p\in\mathbb{N}^{*}$ +\end_inset + + es el dado por +\begin_inset Formula $\omega_{0}=x_{0}$ +\end_inset + + y +\begin_inset Formula +\[ +\omega_{i+1}=\omega_{i}+h\left(f(t_{i},\omega_{i})+\frac{h}{2}f'(t_{i},\omega_{i})+\dots+\frac{h^{p-1}}{p!}f^{(p-1)}(t_{i},\omega_{i})\right), +\] + +\end_inset + +donde +\begin_inset Formula $f^{(p)}(t_{i},\omega_{i})$ +\end_inset + + se define como +\begin_inset Formula $x^{(p+1)}(t_{i})$ +\end_inset + + en el problema con la misma e.d.o. + pero condición inicial +\begin_inset Formula $x(t_{i})=\omega_{i}$ +\end_inset + +. + Por ejemplo, +\begin_inset Formula +\begin{align*} +f'(t_{i}) & =\ddot{x}(t_{i})=\frac{\partial f}{\partial t}(t,x(t))+\frac{\partial f}{\partial x}(t,x(t))\dot{x}(t)=\frac{\partial f}{\partial t}(t_{i},\omega_{i})+\frac{\partial f}{\partial x}(t_{i},\omega_{i})f(t_{i},\omega_{i}), +\end{align*} + +\end_inset + +El método de Euler es el método de Taylor de orden 1. +\end_layout + +\begin_layout Standard +Dado un método de paso fijo de la forma +\begin_inset Formula $\omega_{0}:=\alpha$ +\end_inset + +, +\begin_inset Formula $\omega_{i+1}:=\omega_{i}+hØ(t_{i},\omega_{i})$ +\end_inset + +, llamamos +\series bold +error local de truncamiento +\series default + en +\begin_inset Formula $i\in\{1,\dots,n\}$ +\end_inset + + a +\begin_inset Formula +\[ +\tau_{i}(h):=\frac{x(t_{i})-x(t_{i-1})}{h}-Ø(t_{i-1},x_{i-1}). +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, si +\begin_inset Formula $x\in{\cal C}^{(p+1)}[a,b]$ +\end_inset + +, el error local de truncamiento del método de Taylor de orden +\begin_inset Formula $p$ +\end_inset + + es +\begin_inset Formula $O(h^{p})$ +\end_inset + +. + +\series bold +Demostración: +\series default + +\begin_inset Formula +\[ +x(t_{i+1})=x(t_{i}+h)=x(t_{i})+h\dot{x}(t_{i})+\dots+\frac{h^{p}}{p!}x^{(p)}(t_{i})+\frac{h^{p+1}}{(p+1)!}x^{(p+1)}(\xi_{i}) +\] + +\end_inset + +para un cierto +\begin_inset Formula $\xi_{i}\in[t_{i},t_{i+1}]$ +\end_inset + +, luego +\begin_inset Formula +\[ +\tau_{i+1}(h)=\frac{x(t_{i+1})-x(t_{i})}{h}-\left(\dot{x}(t_{i})+\frac{h}{2}\ddot{x}(t_{i})+\dots+\frac{h^{p-1}}{p!}x^{(p)}(t_{i})\right)=\frac{h^{p}}{(p+1)!}x^{(p+1)}(\xi_{i}), +\] + +\end_inset + +pero +\begin_inset Formula $[a,b]$ +\end_inset + + es compacto y por tanto +\begin_inset Formula $x^{(p+1)}([a,b])$ +\end_inset + + es acotado, digamos, por +\begin_inset Formula $M$ +\end_inset + +, por lo que +\begin_inset Formula $|\tau_{i+1}(h)|\leq\frac{M}{(p+1)!}h^{p}=O(h^{p})$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Decimos que un método de paso fijo es de orden +\begin_inset Formula $p$ +\end_inset + + si su error local de truncamiento con +\begin_inset Formula $f\in{\cal C}^{\infty}$ +\end_inset + + es +\begin_inset Formula $O(h^{p})$ +\end_inset + +. +\end_layout + +\begin_layout Section +Métodos de Runge-Kutta +\end_layout + +\begin_layout Standard +Los métodos de Taylor tienen mucha precisión, pero requieren trabajo previo + y son difíciles de reutilizar, por lo que intentamos +\begin_inset Quotes cld +\end_inset + +imitar +\begin_inset Quotes crd +\end_inset + + la precisión de estos con operaciones que no requieran derivar +\begin_inset Formula $f$ +\end_inset + +. + Los +\series bold +métodos de Runge-Kutta +\series default + tienen la forma +\begin_inset Formula +\begin{align*} +\omega_{i+1} & :=\omega_{i}+h\sum_{j=1}^{s}b_{j}k_{j}, & k_{1} & :=f(t_{i},\omega_{i}), & k_{j>1} & :=(t_{i}+c_{j}h,\omega_{i}+h(a_{j,1}k_{1}+\dots+a_{j,j-1}k_{j-1})), +\end{align*} + +\end_inset + +para ciertos +\begin_inset Formula $s\in\mathbb{N}$ +\end_inset + + y +\begin_inset Formula $(a_{ij})_{1\leq j<i\leq s},(b_{j})_{j=1}^{s},(c_{i})_{i=2}^{s}$ +\end_inset + + reales. + Estos métodos se pueden representar con una +\series bold +tabla de Butcher +\series default +: +\begin_inset Formula +\[ +\begin{array}{c|ccccc} +c_{2} & a_{21}\\ +c_{3} & a_{31} & a_{32}\\ +\vdots & \vdots & \vdots & \ddots\\ +c_{s} & a_{s1} & a_{s2} & \cdots & a_{s,s-1}\\ +\hline & b_{1} & b_{2} & \cdots & b_{s-1} & b_{s} +\end{array} +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +El +\series bold +método del punto medio +\series default + tiene tabla +\begin_inset Formula +\[ +\begin{array}{c|cc} +\frac{1}{2} & \frac{1}{2}\\ +\hline & 0 & 1 +\end{array}, +\] + +\end_inset + + y es de orden 2. + +\series bold +Demostración: +\series default + Por Taylor, +\begin_inset Formula +\begin{align*} +f(t+\tfrac{h}{2},x+\tfrac{h}{2}f(t,x))= & f(t,x)+\frac{h}{2}\frac{\partial f}{\partial t}(t,x)+\frac{h}{2}f(t,x)\frac{\partial f}{\partial x}(t,x)+\\ + & +\frac{h^{2}}{8}\frac{\partial^{2}f}{\partial t^{2}}(\xi_{1},\mu_{1})+\frac{h^{2}}{4}f(t,x)\frac{\partial^{2}f}{\partial t\partial x}(\xi_{2},\mu_{2})+\frac{h^{2}}{8}f(t,x)^{2}\frac{\partial^{2}f}{\partial x^{2}}(\xi_{3},\mu_{3}). +\end{align*} + +\end_inset + +El método de Taylor de orden 2 viene dado por +\begin_inset Formula $\omega_{i+1}=\omega_{i}+h(f(t_{i},\omega_{i})+\frac{h}{2}f'(t_{i},\omega_{i}))$ +\end_inset + +, pero +\begin_inset Formula +\[ +f(t,x)+\frac{h}{2}f'(t,x)=f(t,x)+\frac{h}{2}\frac{\partial f}{\partial t}(t,x)+\frac{h}{2}f(t,x)\frac{\partial f}{\partial x}(t,x), +\] + +\end_inset + +luego como las dobles derivadas parciales son continuas y por tanto su imagen + por +\begin_inset Formula $[a,b]$ +\end_inset + + es compacta, la diferencia de error local entre ambos métodos es +\begin_inset Formula $O(h^{2})$ +\end_inset + +, que se suma al error de +\begin_inset Formula $O(h^{2})$ +\end_inset + + del método de Taylor de orden 2. +\end_layout + +\begin_layout Standard +No existe un método de Runge-Kutta de orden 3 con solo 2 evaluaciones de + +\begin_inset Formula $f$ +\end_inset + +. + +\end_layout + +\begin_layout Standard + +\series bold +Demostración: +\series default + Como +\begin_inset Formula +\begin{align*} +f' & =\frac{\partial f}{\partial t}+f\frac{\partial f}{\partial x},\\ +f'' & =\frac{\partial f'(t,x(t))}{\partial t}=\frac{\partial^{2}f}{\partial t^{2}}+f\frac{\partial^{2}f}{\partial x\partial t}+\left(\frac{\partial f}{\partial t}+f\frac{\partial f}{\partial x}\right)\frac{\partial f}{\partial x}+f\left(\frac{\partial^{2}f}{\partial x\partial t}+f\frac{\partial^{2}f}{\partial x^{2}}\right)\\ + & =\frac{\partial^{2}f}{\partial t^{2}}+\frac{\partial f}{\partial t}\frac{\partial f}{\partial x}+f\left(\frac{\partial f}{\partial x}\right)^{2}+2f\frac{\partial^{2}f}{\partial x\partial t}+f^{2}\frac{\partial^{2}f}{\partial x^{2}}, +\end{align*} + +\end_inset + +el método de Taylor de orden 3 es +\begin_inset Formula $\omega_{i+1}=\omega_{i}+hØ(t_{i},\omega_{i})$ +\end_inset + +, con +\begin_inset Formula +\begin{align*} +Ø(t,x) & =f(t,x)+\frac{h}{2}f'(t,x)+\frac{h^{2}}{6}f''(t,x)\\ + & =f+\frac{h}{2}\left(\frac{\partial f}{\partial t}+f\frac{\partial f}{\partial x}\right)+\frac{h^{2}}{6}\left(\frac{\partial^{2}f}{\partial t^{2}}+\frac{\partial f}{\partial t}\frac{\partial f}{\partial x}+f\left(\frac{\partial f}{\partial x}\right)^{2}+2f\frac{\partial^{2}f}{\partial x\partial t}+f^{2}\frac{\partial^{2}f}{\partial x^{2}}\right), +\end{align*} + +\end_inset + +pero los métodos de 2 evaluaciones tienen la forma +\begin_inset Formula +\begin{multline*} +b_{1}f(t,x)+b_{2}f(t+c_{2},x+a_{21}f(t,x))=\\ +=b_{1}f+b_{2}f+b_{2}c_{2}\frac{\partial f}{\partial t}+b_{2}a_{21}f\frac{\partial f}{\partial x}+b_{2}\frac{a_{21}^{2}}{2}\frac{\partial^{2}f}{\partial t^{2}}+b_{2}c_{2}a_{21}f\frac{\partial^{2}f}{\partial t\partial x}+b_{2}\frac{a_{21}^{2}}{2}f^{2}\frac{\partial^{2}f}{\partial x^{2}}+O(h^{3}). +\end{multline*} + +\end_inset + +Para que ambas coincidieran en los términos hasta el orden 2, la última + fórmula debería tener un término proporcional a +\begin_inset Formula $f\left(\frac{\partial f}{\partial x}\right)^{2}$ +\end_inset + +, pero no lo tiene. +\end_layout + +\begin_layout Standard +Otros métodos son el +\series bold +método de Euler modificado +\series default +, con tabla +\begin_inset Formula +\[ +\begin{array}{c|cc} +1 & 1\\ +\hline & \frac{1}{2} & \frac{1}{2} +\end{array}, +\] + +\end_inset + +y el +\series bold +método de Heun +\series default +, con tabla +\begin_inset Formula +\[ +\begin{array}{c|cc} +\frac{2}{3} & \frac{2}{3}\\ +\hline & \frac{1}{4} & \frac{3}{4} +\end{array}, +\] + +\end_inset + +ambos de orden 2. +\end_layout + +\begin_layout Standard +El método de Runge-Kutta más usado es el de orden 4 ( +\series bold +RK4 +\series default +): +\end_layout + +\begin_layout Standard +\begin_inset Formula +\[ +\begin{array}{c|cccc} +\frac{1}{2} & \frac{1}{2}\\ +\frac{1}{2} & 0 & \frac{1}{2}\\ +1 & 0 & 0 & 1\\ +\hline & \frac{1}{6} & \frac{1}{3} & \frac{1}{3} & \frac{1}{6} +\end{array} +\] + +\end_inset + +La siguiente tabla muestra el máximo orden alcanzable con métodos de Runge-Kutta + en función del número de evaluaciones de +\begin_inset Formula $f$ +\end_inset + +: +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="2" columns="5"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Evaluaciones ( +\begin_inset Formula $s$ +\end_inset + +) +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\leq4$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +5–7 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +8–9 +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\geq10$ +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Mejor orden +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $s$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $s-1$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $s-2$ +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $s-3$ +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\end_body +\end_document @@ -9,6 +9,9 @@ \input{../defs} \end_preamble \use_default_options true +\begin_modules +algorithm2e +\end_modules \maintain_unincluded_children false \language spanish \language_package default @@ -139,7 +142,29 @@ Diapositivas de clase, Universidad de Murcia. \end_layout \begin_layout Itemize -Wikipedia, the Free Encyclopedia ( + +\lang english +Stuart +\lang spanish + J. + +\lang english +Russell +\lang spanish + & Peter Norvig (2010). + +\emph on +\lang english +Artificial Intelligence, A Modern Approach. + Third Edition. +\end_layout + +\begin_layout Itemize + +\lang english +Wikipedia, the Free Encyclopedia +\lang spanish + ( \begin_inset Flex URL status open @@ -153,6 +178,7 @@ https://en.wikipedia.org/ ). \emph on +\lang english Semantic Networks \emph default , @@ -163,9 +189,66 @@ Frame (artificial intelligence) \emph on And–or tree \emph default +, +\emph on +Formal system +\emph default . \end_layout +\begin_layout Itemize + +\lang english +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +G. + Veera Raghavaiah +\lang spanish + (2010). + +\emph on +\lang english +Problem Reduction with AO* Algorithm +\emph default +\lang spanish + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://artificialintelligence-notes.blogspot.com/2010/07/problem-reduction-with-a +o-algorithm.html +\end_layout + +\end_inset + +). +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + \begin_layout Chapter Introducción \end_layout @@ -194,5 +277,75 @@ filename "n2.lyx" \end_layout +\begin_layout Chapter +Estrategias de búsqueda +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n3.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Búsqueda no clásica +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n4.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Representación del conocimiento +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n5.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Planificación +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n6.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Aprendizaje computacional +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n7.lyx" + +\end_inset + + +\end_layout + \end_body \end_document @@ -182,31 +182,124 @@ subproblema alternativo \end_layout \begin_layout Standard -Podemos tratar la representación como un +Un +\series bold +grafo YO +\series default + es un par +\begin_inset Formula $(V,A)$ +\end_inset + + donde +\begin_inset Formula $V$ +\end_inset + + es un conjunto de nodos y +\begin_inset Formula $A\subseteq V\times{\cal P}(V)$ +\end_inset + + es un conjunto de \series bold -grafo Y-O +hiperarcos \series default -, un grafo dirigido en que cada nodo es de uno de los 3 tipos, los primitivos - no son el inicial de ningún arco y los Y son el inicial de algún arco. - Dibujamos los nodos primitivos con un doble círculo y los nodos Y con un - arco, cóncavo hacia el propio nodo, que cruza las flechas que lo unen con - los sucesores, generalmente sin pasarse de las flechas de los extremos. - Del mismo modo podemos usar un + o \series bold -árbol Y-O +conectores \series default . - + Si +\begin_inset Formula $(a,S)$ +\end_inset + + es un conector, +\begin_inset Formula $a$ +\end_inset + + es su +\series bold +antecesor +\series default + y los nodos de +\begin_inset Formula $S$ +\end_inset + + son sus +\series bold + sucesores +\series default +. + Un +\series bold + +\begin_inset Formula $k$ +\end_inset + +-conector +\series default + es un conector con +\begin_inset Formula $k$ +\end_inset + + sucesores. + Para dibujar un grafo YO, dibujamos un punto con una etiqueta, o un círculo, + para cada nodo, y para cada hiperarco trazamos flechas del antecesor a + cada sucesor. + Si hay al menos dos sucesores, hacemos un arco, cóncavo hacia el antecesor, + que une las flechas, y si no hay ninguno en vez de esto representamos el + nodo antecesor con un doble círculo. + Un nodo es +\series bold +resoluble +\series default + si es antecesor de un hiperarco cuyos sucesores son todos resolubles. \end_layout \begin_layout Standard -Un nodo es +Un \series bold -resoluble +grafo Y/O +\series default + o +\series bold +Y-O +\series default + es un grafo YO en que para cada +\begin_inset Formula $u\in V$ +\end_inset + +, +\begin_inset Formula $\{S\subseteq V:(u,S)\in A\}$ +\end_inset + + es unipuntual o todos sus hiperarcos tienen un único sucesor. + Si es unipuntual con al menos dos sucesores, es un nodo +\series bold +Y \series default - si es primitivo; es Y y todos sus sucesores son resolubles, o es O y al - menos uno de sus sucesores es resoluble, entendiéndose una recursión bien - fundada. +; si tiene algún hiperarco con un único sucesor, es un nodo +\series bold +O +\series default +, y de lo contrario es un +\series bold +terminal +\series default +, en cuyo caso es una +\series bold +primitiva +\series default + si es antecesor de un hiperarco sin sucesores. + Así, un nodo es resoluble si es una primitiva, es de tipo Y con todos sus + sucesores resolubles o es de tipo O con algún sucesor resoluble. + Un +\series bold +árbol Y/O +\series default + es un grafo Y/O para el que el grafo no dirigido +\begin_inset Formula $(V,\{(u,v)\in V\times V:\exists(u,S)\in A:v\in S\})$ +\end_inset + + es acíclico. \end_layout \end_deeper @@ -255,12 +348,16 @@ dirigida por datos \series default , \emph on +\lang english forward \emph default +\lang spanish o \emph on +\lang english bottom-up \emph default +\lang spanish si parte de la situación inicial y aplica los operadores hasta llegar al objetivo, y es \series bold @@ -272,12 +369,16 @@ dirigida por objetivos \series default , \emph on +\lang english backward \emph default +\lang spanish o \emph on +\lang english top-down \emph default +\lang spanish si parte de la situación final y aplica operadores al revés hasta llegar a la situación inicial. También existen estrategias de búsqueda bidireccionales. @@ -327,8 +428,10 @@ exploración \series default , haciendo algún tipo de \emph on +\lang english backtracking \emph default +\lang spanish sobre el grafo o el árbol de representación. En general esto es lento, pero es un método universal y se puede combinar con técnicas heurísticas. diff --git a/si/n3.lyx b/si/n3.lyx new file mode 100644 index 0000000..4198637 --- /dev/null +++ b/si/n3.lyx @@ -0,0 +1,2280 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\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). + 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. + También podemos almacenar el coste del camino y la profundidad (longitud + del camino) desde el nodo raíz. + Un método de búsqueda es +\series bold +completo +\series default + si siempre que exista una solución la encuentra, y es +\series bold +óptimo +\series default + si además la solución encontrada es de coste mínimo. +\end_layout + +\begin_layout Standard +El entorno es +\series bold +observable +\series default + si siempre conocemos todo el estado, +\series bold +determinista +\series default + si sabemos el resultado de cualquier secuencia de acciones desde un estado, + +\series bold +estático +\series default + si, al encontrar un camino solución, podemos ejecutarlo sin observar los + cambios y llegar a la solución, y +\series bold +discreto +\series default + si solo hay un número finito de acciones posibles desde cada estado. + Suponemos un entorno observable, determinista, estático y discreto, y omitimos + aspectos como el tiempo límite para obtener la solución, el gasto en combustibl +e, la presión en el brazo robot, etc. +\end_layout + +\begin_layout Section +Estrategias en un espacio de estados +\end_layout + +\begin_layout Standard +Podemos representar un problema de búsqueda en un espacio de estados como + una tupla +\begin_inset Formula $(V,A,\omega,s,F)$ +\end_inset + + donde +\begin_inset Formula $(V,A,\omega)$ +\end_inset + + es una red dirigida de tamaño contable en la que queremos minimizar el + peso del camino y, para todo +\begin_inset Formula $v\in V$ +\end_inset + +, +\begin_inset Formula $\{w\in V:(v,w)\in A\}$ +\end_inset + + es finito y recursivamente enumerable a partir de +\begin_inset Formula $v$ +\end_inset + +; un estado inicial +\begin_inset Formula $s\in V$ +\end_inset + +, y un conjunto computable de estados finales +\begin_inset Formula $F\subseteq V$ +\end_inset + +. + Entonces una solución es un camino de +\begin_inset Formula $s$ +\end_inset + + a un estado de +\begin_inset Formula $F$ +\end_inset + +, y los algoritmos de búsqueda tienen la forma del algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:search-generic" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +, con ligeras variaciones. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Problema de búsqueda en espacio de estados $(V,A, +\backslash +omega,s,F)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Camino solución o $ +\backslash +emptyset$.} +\end_layout + +\begin_layout Plain Layout + +$L +\backslash +gets((s))$ +\backslash +tcp*{Lista de caminos { +\backslash +bf frontera}.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$L +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Extraer último elemento $P$ de $L$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +uSSi{$(i:= +\backslash +text{final}(P)) +\backslash +in F$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $P$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +EnOtroCaso{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$j +\backslash +in V:(i,j) +\backslash +in A$}{ +\end_layout + +\begin_layout Plain Layout + + Insertar $Pj$ en $L$ en orden dado por la estrategia +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $ +\backslash +emptyset$ +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:search-generic" + +\end_inset + +Algoritmo genérico de búsqueda en árboles. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Llamamos +\series bold +nodos cerrados +\series default + a los nodos del árbol o grafo de búsqueda que han sido considerados y expandido +s (se han calculado sus nodos hijo) y +\series bold +nodos frontera +\series default + a los que han sido generados pero no expandidos. +\end_layout + +\begin_layout Subsection +Búsqueda a ciegas +\end_layout + +\begin_layout Standard +Algunas estrategias son: +\end_layout + +\begin_layout Itemize + +\series bold +Primero en anchura +\series default +: Los nodos se insertan al principio en una cola, explorando sucesivamente + cada nivel del árbol. + Es completa pero no óptima, con complejidad en tiempo y espacio +\begin_inset Formula $O(b^{d+1})$ +\end_inset + +, donde +\begin_inset Formula $d$ +\end_inset + + es la profundidad de la solución y +\begin_inset Formula $b$ +\end_inset + + es el +\series bold +factor de ramificación +\series default +, el número de hijos por nodo no hoja. +\end_layout + +\begin_layout Itemize + +\series bold +De costo uniforme +\series default +: Los nodos se insertan de menor a mayor peso del camino. + Si +\begin_inset Formula $\omega(A)$ +\end_inset + + tiene una cota inferior +\begin_inset Formula $\delta>0$ +\end_inset + +, es completa, óptima y con complejidad en tiempo y espacio +\begin_inset Formula $O(b^{c/\delta})$ +\end_inset + +, donde +\begin_inset Formula $c$ +\end_inset + + es el peso del camino a la solución óptima. +\end_layout + +\begin_layout Itemize + +\series bold +Primero en profundidad +\series default +: Los nodos se insertan al final en una pila. + No es completa ni óptima, y tiene complejidad en tiempo +\begin_inset Formula $O(b^{h})$ +\end_inset + +, siendo +\begin_inset Formula $h$ +\end_inset + + la altura del árbol, y en espacio +\begin_inset Formula $O(bh)$ +\end_inset + +. +\end_layout + +\begin_layout Itemize + +\series bold +De profundidad limitada +\series default +: Como la búsqueda primero en profundidad pero limitando la profundidad + a un cierto +\begin_inset Formula $p$ +\end_inset + +. + No es óptima, y es completa si y sólo si hay una solución en un nivel menor + o igual a +\begin_inset Formula $p$ +\end_inset + +. + La complejidad es +\begin_inset Formula $O(b^{p})$ +\end_inset + + en tiempo y +\begin_inset Formula $O(bp)$ +\end_inset + + en espacio. +\end_layout + +\begin_layout Itemize + +\series bold +Primero en profundidad con profundidad iterativa +\series default +: Se parte de búsqueda de profundidad limitada (a 0) y se repite la búsqueda + con un límite mayor (en 1) hasta encontrar la solución. + Es completa pero no óptima, con complejidad en tiempo +\begin_inset Formula $O(b^{d})$ +\end_inset + + y en espacio +\begin_inset Formula $O(bd)$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Si el árbol tiene muchos estados repetidos es preferible operar sobre el + grafo de búsqueda, manteniendo una lista de estados visitados para no volver + a insertarlos en la frontera y en su lugar, opcionalmente, sustituir los + caminos a estos en los nodos frontera por otros de menor peso. +\end_layout + +\begin_layout Subsection +Búsqueda heurística +\end_layout + +\begin_layout Standard +Podemos usar heurísticas específicas al problema para decidir el siguiente + nodo a expandir e, incluso, qué nodos no tener en cuenta, podando el árbol + de búsqueda. +\end_layout + +\begin_layout Standard +Suponemos +\begin_inset Formula $\omega(A)\subseteq\mathbb{R}^{\geq0}$ +\end_inset + +.Una +\series bold +función heurística +\series default +, +\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 + forma que +\begin_inset Formula $h(F)=\{0\}$ +\end_inset + +. + +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula ${\cal P}_{s,V}$ +\end_inset + + el conjunto de caminos de +\begin_inset Formula $s$ +\end_inset + + a un estado en +\begin_inset Formula $V$ +\end_inset + +, una +\series bold +función de evaluación +\series default + +\begin_inset Formula $f:{\cal P}_{s,V}\to\mathbb{R}$ +\end_inset + + asigna un menor valor a los nodos más prometedores para expandir, y podemos + ordenar los nodos de menor a mayor valor de +\begin_inset Formula $f$ +\end_inset + + en una cola con prioridad. +\end_layout + +\begin_layout Standard +Algunos algoritmos de búsqueda heurísticos: +\end_layout + +\begin_layout Itemize + +\series bold +Búsqueda avara +\series default +, +\series bold +voraz +\series default + o +\series bold +primero el mejor +\series default +: +\begin_inset Formula $f(P)=h(\text{final}(P))$ +\end_inset + +. + La complejidad en tiempo y espacio es +\begin_inset Formula $O(b^{m})$ +\end_inset + +, pero con una buena +\begin_inset Formula $h$ +\end_inset + + el consumo de tiempo y espacio disminuye mucho. +\end_layout + +\begin_layout Itemize + +\series bold +A* +\series default +: +\begin_inset Formula $f(P)=\omega(P)+h(\text{final}(P))$ +\end_inset + +, el coste del camino del inicio al nodo más el coste estimado del nodo + al objetivo. +\end_layout + +\begin_layout Standard +Una heurística +\begin_inset Formula $h$ +\end_inset + + es +\series bold +admisible +\series default + u +\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})$ +\end_inset + +, y es +\series bold +pesimista +\series default + en otro caso. + Si +\begin_inset Formula $h$ +\end_inset + + es admisible y +\begin_inset Formula $\omega(A)$ +\end_inset + + tiene una cota inferior positiva, la búsqueda A* guiada por +\begin_inset Formula $h$ +\end_inset + + es óptima. + +\series bold +Demostración: +\series default + Sea +\begin_inset Formula $c$ +\end_inset + + el coste de las soluciones óptimas, toda solución no óptima +\begin_inset Formula $Q$ +\end_inset + + cumple +\begin_inset Formula $f(Q)=\omega(Q)+h(\text{final}(Q))=\omega(Q)+0>c$ +\end_inset + +, y todo prefijo +\begin_inset Formula $R$ +\end_inset + + de una solución óptima +\begin_inset Formula $RS$ +\end_inset + + 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, +\] + +\end_inset + + por lo que siempre se procesa antes una solución óptima que una no óptima. + Sea ahora +\begin_inset Formula $p:=\inf\omega(A)>0$ +\end_inset + +, todo +\begin_inset Formula $Q\in{\cal P}_{s,V}$ +\end_inset + + con +\begin_inset Formula $f(Q)\leq c$ +\end_inset + + cumple +\begin_inset Formula $\omega(Q)\leq 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 +\begin_inset Formula $c$ +\end_inset + + y termina. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $h$ +\end_inset + + es admisible y +\begin_inset Formula $\omega(A)$ +\end_inset + + tiene cota inferior positiva, A* guiado por +\begin_inset Formula $h$ +\end_inset + + sobre el grafo de búsqueda es óptimo si, cuando se encuentra un estado + repetido por un camino con coste menor al que teníamos antes, sustituimos + el camino anterior por el nuevo en los nodos cerrados y frontera que lo + tengan como prefijo. + Si esto no se hace, el algoritmo no garantiza optimalidad, pues puede ignorar + el camino óptimo si en este aparece un estado repetido. +\end_layout + +\begin_layout Standard +Una heurística +\begin_inset Formula $h$ +\end_inset + + es +\series bold +consistente +\series default + si para +\begin_inset Formula $u,v\in V$ +\end_inset + + tales que existe un camino de +\begin_inset Formula $u$ +\end_inset + + a +\begin_inset Formula $v$ +\end_inset + +, +\begin_inset Formula $h(u)\leq\min\omega({\cal P}_{u,v})+h(v)$ +\end_inset + +, y es +\series bold +monótona +\series default + si para +\begin_inset Formula $(u,v)\in A$ +\end_inset + +, +\begin_inset Formula $h(u)\leq\omega(u,v)+h(v)$ +\end_inset + +. + Estas condiciones son equivalentes y más fuertes que la admisibilidad. +\end_layout + +\begin_layout Standard +Si +\begin_inset Formula $h$ +\end_inset + + es consistente, +\begin_inset Formula $f$ +\end_inset + + es la función de evaluación de A* guiado por +\begin_inset Formula $h$ +\end_inset + + y +\begin_inset Formula $v_{0}\cdots v_{n}$ +\end_inset + + es un camino en +\begin_inset Formula $(V,A)$ +\end_inset + +, +\begin_inset Formula $(f(v_{0}\cdots v_{i}))_{i=0}^{n}$ +\end_inset + + es monótona creciente. + En efecto, sea +\begin_inset Formula $P_{i}:=v_{0}\cdots v_{i}$ +\end_inset + +, para +\begin_inset Formula $i<j$ +\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})$ +\end_inset + +. +\end_layout + +\begin_layout Subsection +Métodos limitados en memoria +\end_layout + +\begin_layout Standard +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: +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Problema de búsqueda en espacio de estados $(V,A, +\backslash +omega,s,F)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Camino solución o $ +\backslash +emptyset$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{RBFS}{{}RBFS} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwProg{Func}{función}{}{fin} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Func{ +\backslash +RBFS{$(P,f_0),f_{ +\backslash +text{limit}}$}}{ +\end_layout + +\begin_layout Plain Layout + + $u:= +\backslash +text{final}(P)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$u +\backslash +in F$}{ +\backslash +Devolver{$P$}} +\end_layout + +\begin_layout Plain Layout + + $N:= +\backslash +{v +\backslash +in V:(u,v) +\backslash +in A +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$N= +\backslash +emptyset$}{ +\backslash +Devolver fallo($+ +\backslash +infty$)} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lPara{$v +\backslash +in N$}{$f_v +\backslash +gets +\backslash +max +\backslash +{ +\backslash +omega(Pv)+h(v), f_0 +\backslash +}$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Repetir{$r$ no sea un fallo}{ +\end_layout + +\begin_layout Plain Layout + + Elegir $b +\backslash +in N$ con $f_b$ mínimo +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$f_b > f_{ +\backslash +text{limit}}$}{ +\backslash +Devolver fallo($f_b$)} +\end_layout + +\begin_layout Plain Layout + + Elegir el menor $a +\backslash +in +\backslash +{f_v +\backslash +}_{v +\backslash +in N +\backslash +setminus +\backslash +{b +\backslash +}}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $r +\backslash +gets +\backslash +text{ +\backslash +RBFS{ +\backslash +ensuremath{(Pb, f_b),a}}}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$ +\backslash +text{ +\backslash +rm fallo}(t):=r$}{$b +\backslash +gets t$} +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $r$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +RBFS{$((s),h(s)),+ +\backslash +infty$} +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:rbfs" + +\end_inset + +Búsqueda primero el mejor recursiva. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Itemize + +\series bold +Búsqueda primero el mejor recursiva +\series default + o +\series bold +con memoria acotada +\series default +: Algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:rbfs" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +. + Al inspeccionar un nodo, calcula los valores de +\begin_inset Formula $f$ +\end_inset + + para sus hijos y expande el que tenga el menor valor, pero poniendo como + límite el valor del siguiente mejor para evitar expandir nodos por encima + de ese valor. + Además, cuando no se encuentra una solución suficientemente buena a partir + de un hijo, su valor +\begin_inset Formula $f$ +\end_inset + + se actualiza al del mejor hijo de este. +\end_layout + +\begin_deeper +\begin_layout Standard +El método es óptimo para las mismas condiciones que A*. + Su complejidad en espacio es +\begin_inset Formula $O(bd)$ +\end_inset + +, pero en tiempo es peor que A* y dependiendo de la exactitud de la función + heurística tendrá que reevaluar más o menos nodos. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +A*MS +\series default + o +\series bold +A* con memoria acotada simplificado +\series default +: Como A* pero, cuando la memoria se llena, elimina el nodo con mayor valor + de +\begin_inset Formula $f$ +\end_inset + +. +\begin_inset Foot +status open + +\begin_layout Plain Layout +Concretamente se elimina el nodo más antiguo dentro de los de mayor valor + de +\begin_inset Formula $f$ +\end_inset + + y se procesa el nodo más nuevo dentro de los de menor valor de +\begin_inset Formula $f$ +\end_inset + +. + 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 + y no es representable en memoria. +\end_layout + +\end_inset + + Entonces guarda en el nodo padre el valor del hijo eliminado para reiniciar + desde ahí cuando el resto de caminos sean peores. +\end_layout + +\begin_layout Standard +Una heurística +\begin_inset Formula $h$ +\end_inset + + es +\series bold + +\begin_inset Formula $\varepsilon$ +\end_inset + +-admisible +\series default + para un +\begin_inset Formula $\varepsilon>0$ +\end_inset + + si para +\begin_inset Formula $v\in V$ +\end_inset + + es +\begin_inset Formula $h(v)\leq\min\omega({\cal P}_{v,F})+\varepsilon$ +\end_inset + +. + Para ciertos problemas solo podemos diseñar de forma efectiva heurísticas + no admisibles, pero una heurística +\begin_inset Formula $\varepsilon$ +\end_inset + +-admisible nos permite obtener una solución que queda a +\begin_inset Formula $\varepsilon$ +\end_inset + + de una solución óptima. +\end_layout + +\begin_layout Section +Estrategias en un problema de reducción +\end_layout + +\begin_layout Standard +Podemos representar un problema de reducción como una tupla +\begin_inset Formula $(V,A,\omega,s)$ +\end_inset + + donde +\begin_inset Formula $(V,A)$ +\end_inset + + es un grafo YO acíclico con +\begin_inset Formula $\{(u,S):u\in V\}$ +\end_inset + + 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 +\begin_inset Formula $s\in V$ +\end_inset + + es la situación inicial. +\end_layout + +\begin_layout Standard +Entonces, si +\begin_inset Formula $s$ +\end_inset + + es resoluble en +\begin_inset Formula $(V,A)$ +\end_inset + +, dado un +\begin_inset Formula $c:=(s,\{v_{1},\dots,v_{n}\})\in A$ +\end_inset + + tal que todos los +\begin_inset Formula $v_{i}$ +\end_inset + + son resolubles, un +\series bold +grafo solución +\series default + de +\begin_inset Formula $(V,A,\omega,s)$ +\end_inset + + es +\begin_inset Formula $(V',A'):=(\{s,v_{1},\dots,v_{n}\}\cup\bigcup_{i}V_{i},c\cup\bigcup_{i}A_{i})$ +\end_inset + +, donde +\begin_inset Formula $(V_{i},A_{i})$ +\end_inset + + es el grafo solución de +\begin_inset Formula $v_{i}$ +\end_inset + +, y el coste de la solución es +\begin_inset Formula $\omega(V',A'):=\omega(c)+\sum_{i}\omega(V_{i},A_{i})$ +\end_inset + +. + Nótese que esta definición puede contar el coste de alguno de los conectores + más de una vez. +\end_layout + +\begin_layout Subsection +Búsqueda a ciegas +\end_layout + +\begin_layout Standard +Los algoritmos tienen la forma del algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:search-generic-yo" +plural "false" +caps "false" +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. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Problema de reducción $(V,A, +\backslash +omega,s)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Solución o $ +\backslash +emptyset$.} +\end_layout + +\begin_layout Plain Layout + +$F +\backslash +gets +\backslash +{(s) +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$I +\backslash +gets +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$R +\backslash +gets +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$F +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Extraer último $P=u_0 +\backslash +cdots u_n$ de $F$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $N +\backslash +gets +\backslash +bigcup +\backslash +{S +\backslash +subseteq V:(u_n,S) +\backslash +in A +\backslash +}$ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lPara{$v +\backslash +in N$}{insertar $Pv$ en $F$ en orden dado por la estrategia} +\end_layout + +\begin_layout Plain Layout + + +\backslash +uSSi{$N= +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets n$; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Repetir{exista $(u_i,S) +\backslash +in A$ con $S$ disjunto de $I$}{ +\end_layout + +\begin_layout Plain Layout + + Añadir $u_i$ a $I$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$i=0$}{ +\backslash +Devolver $ +\backslash +emptyset$} +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets i-1$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + Borrar de $F$ los nodos que contienen un vértice de $I$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$v +\backslash +in N:(v, +\backslash +emptyset) +\backslash +in A$}{ +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets n$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Repetir{$ +\backslash +forall(u_i,S) +\backslash +in A,S +\backslash +nsubseteq R$}{ +\end_layout + +\begin_layout Plain Layout + + Añadir $u_i$ a $R$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$i=0$}{ +\end_layout + +\begin_layout Plain Layout + + $A' +\backslash +gets +\backslash +{ +\backslash +text{todos los hiperarcos del camino }P +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $V' +\backslash +gets +\backslash +text{vértices referenciados por }A'$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver{$(V',A')$} +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets i-1$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + Borrar de $F$ los nodos que contienen un vértice de $R$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $ +\backslash +emptyset$ +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:search-generic-yo" + +\end_inset + +Algoritmo genérico de búsqueda en árboles Y/O. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Algunas estrategias son: +\end_layout + +\begin_layout Itemize + +\series bold +Primero en anchura +\series default +: Inserta los nodos al principio en una cola. +\end_layout + +\begin_layout Itemize + +\series bold +Primero en profundidad +\series default +: Inserta los nodos al final en una pila. +\end_layout + +\begin_layout Itemize + +\series bold +De profundidad limitada +\series default +: Como la búsqueda en profundidad pero con un límite de profundidad. +\end_layout + +\begin_layout Subsection +Búsqueda heurística +\end_layout + +\begin_layout Standard +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. + Si +\begin_inset Formula $h$ +\end_inset + + es monótona y existe un grafo solución del problema, el método +\series bold +YO* +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:yo-star" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +) es óptimo. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Problema de reducción $(V,A, +\backslash +omega,s)$, heurística $h:V +\backslash +to +\backslash +mathbb{R}^{ +\backslash +geq0}$ y valor futilidad $F>0$, de modo que si el coste estimado de las + soluciones supera $M$ la búsqueda termina.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Grafo solución o $ +\backslash +emptyset$.} +\end_layout + +\begin_layout Plain Layout + +$R +\backslash +gets +\backslash +{s +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$C +\backslash +gets +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$w_s +\backslash +gets h(s)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lPara{$v +\backslash +in V$}{$b_s +\backslash +gets +\backslash +emptyset$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$s$ es primitiva}{$C +\backslash +gets +\backslash +{s +\backslash +}$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$s +\backslash +notin C +\backslash +land c_s +\backslash +leq F$}{ +\end_layout + +\begin_layout Plain Layout + + Tomar $n +\backslash +in R$ con $b_n= +\backslash +emptyset$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $N +\backslash +gets +\backslash +{S +\backslash +in{ +\backslash +cal P}(V):(n,S) +\backslash +in A$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +uSSi{$N= +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + $w_n +\backslash +gets F$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +EnOtroCaso{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$u +\backslash +in +\backslash +bigcup N$}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +uSSi{$u$ es primitiva}{ +\end_layout + +\begin_layout Plain Layout + + $C +\backslash +gets C +\backslash +cup +\backslash +{u +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $w_u +\backslash +gets0$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +EnOtroCasoSi{$u +\backslash +notin R$}{ +\end_layout + +\begin_layout Plain Layout + + $w_u +\backslash +gets h(u)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + $R +\backslash +gets R +\backslash +cup +\backslash +{u +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + $P +\backslash +gets +\backslash +{u +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$P +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Tomar $u +\backslash +in P$ y sacarlo de $P$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + Tomar el $S:(u,S) +\backslash +in A$ con mínimo $ +\backslash +omega(u,S)+ +\backslash +sum_{v +\backslash +in S}c_v$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $w_u +\backslash +gets +\backslash +omega(u,S)+ +\backslash +sum_{v +\backslash +in S}c_v$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $b_u +\backslash +gets S$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$S +\backslash +subseteq C$}{$C +\backslash +gets C +\backslash +cup +\backslash +{Pu +\backslash +}$} +\end_layout + +\begin_layout Plain Layout + + Añadir a $P$ los antecesores $v$ con $u +\backslash +in b_v$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\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 +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:yo-star" + +\end_inset + +Método YO*. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\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 + 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. +\end_layout + +\begin_layout Section +Funciones heurísticas +\end_layout + +\begin_layout Standard +Si un problema tiene solución a profundidad +\begin_inset Formula $d$ +\end_inset + + y un método la encuentra tras generar +\begin_inset Formula $N$ +\end_inset + + nodos (no se cuenta 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$ +\end_inset + + nodos con altura máxima +\begin_inset Formula $d$ +\end_inset + +, 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 + +. + +\end_layout + +\begin_layout Standard +Una buena heurística debería producir valores de +\begin_inset Formula $b^{*}$ +\end_inset + + lo más bajos posible, teniendo en cuenta que siempre es +\begin_inset Formula $b^{*}\geq1$ +\end_inset + +. + Una forma de obtener +\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. +\end_layout + +\begin_layout Standard +Dadas dos heurísticas +\begin_inset Formula $h_{1},h_{2}:V\to\mathbb{R}^{\geq0}$ +\end_inset + +, +\begin_inset Formula $h_{1}$ +\end_inset + + +\series bold +domina +\series default + a +\begin_inset Formula $h_{2}$ +\end_inset + + si +\begin_inset Formula $h_{1}(v)\geq h_{2}(v)$ +\end_inset + + para todo +\begin_inset Formula $v\in V$ +\end_inset + +. + Entonces A* nunca expandirá más nodos con +\begin_inset Formula $h_{1}$ +\end_inset + + que con +\begin_inset Formula $h_{2}$ +\end_inset + +, por lo que será más rápido con +\begin_inset Formula $h_{1}$ +\end_inset + + si el tiempo de ejecución de +\begin_inset Formula $h_{1}$ +\end_inset + + es razonable. +\end_layout + +\begin_layout Standard +El +\series bold +problema 8-puzzle +\series default + tiene como estado una ordenación de 8 piezas numeradas en una cuadrícula + de +\begin_inset Formula $3\times3$ +\end_inset + +, 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 + del 1 al 8 en orden, con la casilla libre al principio o al final según + el modo de juego. +\end_layout + +\begin_layout Standard +Algunas heurísticas son el número de piezas mal colocadas y la suma de las + distancias Manhattan de cada pieza a su posición objetivo. + La segunda domina a la primera y ambas son monótonas y mucho mejores que + la búsqueda a ciegas. +\end_layout + +\begin_layout Standard +Dado un problema por espacio de estados +\begin_inset Formula $(V,A,\omega,s,F)$ +\end_inset + +, un +\series bold +problema relajado +\series default + es un problema +\begin_inset Formula $(V',A',\omega',s,F')$ +\end_inset + + con +\begin_inset Formula $V\subseteq V'$ +\end_inset + +, +\begin_inset Formula $A\subseteq A'$ +\end_inset + +, +\begin_inset Formula $F\subseteq F'$ +\end_inset + + y +\begin_inset Formula $\omega'|_{V}=\omega$ +\end_inset + +, con lo que el coste de una solución óptima en el problema relajado es + una heurística admisible para el problema original. + Las heurísticas anteriores se han obtenido así, la segunda permitiendo + que las piezas se puedan mover a cualquier casilla adyacente aunque esté + ocupada y la primera permitiendo además que las piezas se puedan mover + a cualquier casilla. + Escribir un problema en lenguaje formal permite construir problemas relajados + de forma automática eliminando restricciones. +\end_layout + +\begin_layout Standard +Dadas las heurísticas +\begin_inset Formula $h_{1},\dots,h_{m}$ +\end_inset + + para un mismo problema, +\begin_inset Formula $h(v):=\max_{i=1}^{m}h_{i}$ +\end_inset + + es una heurística que domina a todas las +\begin_inset Formula $h_{i}$ +\end_inset + +, es admisible si las +\begin_inset Formula $h_{i}$ +\end_inset + + lo son y es consistente si las +\begin_inset Formula $h_{i}$ +\end_inset + + lo son. +\end_layout + +\end_body +\end_document diff --git a/si/n4.lyx b/si/n4.lyx new file mode 100644 index 0000000..458941f --- /dev/null +++ b/si/n4.lyx @@ -0,0 +1,1378 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\usepackage{amssymb} +\end_preamble +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Búsqueda local +\end_layout + +\begin_layout Standard +En muchos problemas, como en diseño de circuitos u optimización de redes, + solo importa el estado objetivo, no cómo se llega a él. +\end_layout + +\begin_layout Standard +Los métodos que veremos operan con un único estado actual, no suelen recordar + los caminos, usan muy poca memoria y pueden encontrar soluciones razonables + en espacios de estados grandes o continuos en que los algoritmos clásicos + no son adecuados. +\end_layout + +\begin_layout Standard +Podemos considerar el espacio de estados como un paisaje donde la posición + es un estado y la elevación viene dada por una función objetivo a maximizar + o minimizar; supondremos que maximizar. +\end_layout + +\begin_layout Standard +Por ejemplo, en el +\series bold +problema de las 8 reinas +\series default +, consistente en situar 8 reinas en un tablero de ajedrez de forma que ninguna + esté en jaque, como cada reina debe estar en una columna, podemos representar + los estados como una tupla con la fila en la que está cada reina; cada + estado tendría 56 vecinos correspondientes a cambiar la posición de una + reina y la función a minimizar sería el número de jaques, que habría que + bajar a 0. +\end_layout + +\begin_layout Subsection +Búsqueda local avara o ascensión de colinas +\end_layout + +\begin_layout Standard +Se mueve en cada paso al vecino del estado actual con el valor objetivo + más alto. + A menudo se atasca en máximos locales; +\series bold +crestas +\series default +, secuencias de máximos locales que dificultan mucho la navegación, y sobre + todo en +\series bold +mesetas +\series default + o +\series bold +terrazas +\series default +, áreas donde la función objetivo es plana. +\end_layout + +\begin_layout Standard +Para evitar que se atasque en terrazas, se puede permitir un movimiento + lateral aleatorio cuando no hay ningún movimiento ascendente. + Esto lleva a un bucle infinito si el método alcanza un máximo local plano, + por lo que se suele limitar el número de movimientos laterales consecutivos. +\end_layout + +\begin_layout Standard +La +\series bold +ascensión de colinas de reinicio aleatorio +\series default + consiste en ejecutar la ascensión de colinas repetidamente con distintos + estados iniciales. + Es completa con probabilidad 1, aunque no garantiza terminar, en espacios + de estados finitos +\begin_inset Foot +status open + +\begin_layout Plain Layout +En general cuando caer en un estado final tiene probabilidad no nula y ascender + infinitamente tiene probabilidad nula. +\end_layout + +\end_inset + +, y es muy eficaz. +\end_layout + +\begin_layout Subsection +Temple simulado +\end_layout + +\begin_layout Standard +Para templar metal, este se calienta mucho para favorecer el movimiento + de las partículas y se enfría gradualmente para que estas se estabilicen + en estructuras cristalinas de baja energía. + Para tratar de colar una bola en el hueco más profundo de una superficie + con agujeros, esta se agita mucho para favorecer escapar de depresiones + locales y se reduce gradualmente la fuerza para que la bola se estabilice + en huecos profundos. +\end_layout + +\begin_layout Standard +Esta idea la usa el algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:sim-annealing" +plural "false" +caps "false" +noprefix "false" + +\end_inset + + para resolver problemas. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Problema de espacio de estados sin costes $(V,A,s,F)$, función objetivo + $f:V +\backslash +to +\backslash +mathbb R$ y { +\backslash +bf esquema} de temperaturas $e: +\backslash +mathbb N +\backslash +to +\backslash +mathbb{R}^{ +\backslash +geq0}$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Solución $s +\backslash +in V$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{rand}{rand} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$t +\backslash +gets1$ en adelante}{ +\end_layout + +\begin_layout Plain Layout + + $T +\backslash +gets e(t)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$T=0$}{ +\backslash +Devolver $s$} +\end_layout + +\begin_layout Plain Layout + + $ +\backslash +{n_0, +\backslash +dots,n_{k-1} +\backslash +} +\backslash +gets +\backslash +{v +\backslash +in V:(s,v) +\backslash +in A +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i +\backslash +gets0$ +\backslash +KwA $k-1$}{ +\end_layout + +\begin_layout Plain Layout + + $c +\backslash +gets n_{ +\backslash +lfloor k +\backslash +rand{} +\backslash +rfloor}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $ +\backslash +Delta E +\backslash +gets f(c)-f(e)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$ +\backslash +Delta E>0 +\backslash +lor +\backslash +rand{}<e^{ +\backslash +Delta E/T}$}{$s +\backslash +gets c$} +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:sim-annealing" + +\end_inset + +Temple simulado. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Subsection +Haz local +\end_layout + +\begin_layout Standard +Se empieza con +\begin_inset Formula $k$ +\end_inset + + estados elegidos aleatoriamente y, en cada paso, se generan los sucesores + de cada estado, se comprueba si alguno es objetivo para terminar y, si + ninguno lo es, se toman los +\begin_inset Formula $k$ +\end_inset + + mejores sucesores de entre todos. + Si hay poca diversidad entre los +\begin_inset Formula $k$ +\end_inset + + estados, esto no es mucho mejor que la ascensión de colinas, por lo que + los nuevos estados se suelen elegir de forma estocástica. +\end_layout + +\begin_layout Subsection +Algoritmos genéticos +\end_layout + +\begin_layout Standard +Son una variante de la búsqueda de haz local estocástica. + Cada estado, +\series bold +individuo +\series default + o +\series bold +cromosoma +\series default + se codifica como una cadena, normalmente de longitud finita, de un alfabeto + finito, en la que cada símbolo es un +\series bold +gen +\series default +. + Las codificaciones más usadas son +\series bold +binaria +\series default + mediante cadenas de dígitos binarios, +\series bold +entera +\series default + mediante cadenas de enteros de algún conjunto finito, y +\series bold +de orden +\series default +, en que la cadena es una permutación. +\end_layout + +\begin_layout Standard +En cada paso hay una +\series bold +población +\series default + de +\begin_inset Formula $k$ +\end_inset + + estados generados aleatoriamente. + Mediante un algoritmo de +\series bold +selección +\series default +, se escogen +\begin_inset Formula $k$ +\end_inset + + individuos de la población, posiblemente repetidos, que podrán reproducirse. + Estos se emparejan y cada pareja, con una probabilidad +\begin_inset Formula $p_{c}$ +\end_inset + +, se sustituye por dos individuos hijos mediante un algoritmo de +\series bold +cruce +\series default +. + Finalmente, se usa un algoritmo de +\series bold +mutación +\series default + para mutar cada gen de cada individuo con una probabilidad +\begin_inset Formula $p_{m}$ +\end_inset + +, y el resultado es la nueva población. + Esto se repite hasta que haya un individuo en la población suficientemente + bueno o pase bastante tiempo. +\end_layout + +\begin_layout Standard +Los +\series bold +operadores genéticos +\series default + son los algoritmos de selección, cruce y mutación. + Algunos algoritmos de selección: +\end_layout + +\begin_layout Itemize + +\series bold +Ruleta +\series default +: Para cada uno de los +\begin_inset Formula $k$ +\end_inset + + puestos, se elige un individuo con probabilidad proporcional a su valor + por la función objetivo, su +\series bold +idoneidad +\series default + o +\series bold +\emph on +\lang english +fitness +\series default +\emph default +\lang spanish +. +\end_layout + +\begin_layout Itemize + +\series bold +Torneo +\series default +: Se eligen +\begin_inset Formula $2k$ +\end_inset + + parejas por un algoritmo como la ruleta y se toma el de mayor idoneidad + en cada una. +\end_layout + +\begin_layout Standard +Algunos algoritmos de cruce: +\end_layout + +\begin_layout Itemize + +\series bold +Por un punto +\series default +: Se elige una posición al azar de las cadenas de los padres. + Un hijo adopta la parte a la izquierda de un padre y la parte a la derecha + del otro y el otro hijo al revés. +\end_layout + +\begin_layout Itemize + +\series bold +Por dos puntos +\series default +: Se eligen dos posiciones. + Un hijo adopta los extremos de un padre y el centro del otro y el otro + hijo al revés. +\end_layout + +\begin_layout Standard +Algunos de mutación: +\end_layout + +\begin_layout Itemize +Cambio de un gen aleatorio de un individuo por otro valor. +\end_layout + +\begin_layout Itemize +Intercambio de dos genes del individuo. +\end_layout + +\begin_layout Section +Búsqueda entre adversarios +\end_layout + +\begin_layout Standard +Un +\series bold +juego +\series default + o +\series bold +problema de búsqueda entre adversarios +\series default + es un entorno competitivo en que los objetivos de distintos agentes están + en conflicto. + Se deben considerar las decisiones de los otros agentes, pero su imprevisibilid +ad puede generar muchas contingencias. +\end_layout + +\begin_layout Standard +Consideramos juegos de suma cero (la suma del valor objetivo de cada agente + es 0), de dos jugadores, por turnos, determinista y de información perfecta + (entorno totalmente observable). + Los jugadores son +\family typewriter +max +\family default +, que mueve primero e intenta maximizar una cierta función utilidad +\begin_inset Formula $u$ +\end_inset + + de los estados terminales, y +\family typewriter +min +\family default +, que intenta minimizar +\begin_inset Formula $u$ +\end_inset + + +\end_layout + +\begin_layout Standard +Podemos representar un juego por una tupla +\begin_inset Formula $(V,A,M,s,F,u)$ +\end_inset + +, donde +\begin_inset Formula $(V,A)$ +\end_inset + + es un grafo como el de la búsqueda clásica de espacios de estados pero + en el que todos los nodos hoja son terminales; +\begin_inset Formula $M\subseteq V$ +\end_inset + + es un conjunto computable de +\series bold +estados +\family typewriter +max +\family default +\series default + (en los que el turno es de +\family typewriter +max +\family default +), cuyo complementario es el conjunto de +\series bold +estados +\family typewriter +min +\family default +\series default + y tal que los sucesores de un estado +\family typewriter +max +\family default + son estados +\family typewriter +min +\family default + y viceversa; +\begin_inset Formula $s\in M$ +\end_inset + + es el estado inicial; +\begin_inset Formula $F\subseteq V$ +\end_inset + + es un conjunto computable de estados finales, y +\begin_inset Formula $u:F\to\mathbb{R}$ +\end_inset + + es una función de utilidad. +\end_layout + +\begin_layout Subsection +Minimax +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Juego $(V,A,M,s,F,u)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Sucesor $s'$ óptimo.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwProg{Fn}{función}{}{fin} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{minimax}{minimax} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Fn{ +\backslash +minimax{$n$}}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$n +\backslash +in F$}{ +\backslash +Devolver $u(n)$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCasoSi{$n +\backslash +in M$}{ +\backslash +Devolver$ +\backslash +max +\backslash +{ +\backslash +minimax{v} +\backslash +}_{(n,v) +\backslash +in A}$} +\end_layout + +\begin_layout Plain Layout + + +\backslash +lEnOtroCaso{ +\backslash +Devolver$ +\backslash +min +\backslash +{ +\backslash +minimax{v} +\backslash +}_{(n,v) +\backslash +in A}$} +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $s'$ con $(s,s') +\backslash +in A$ y $ +\backslash +minimax{s'}$ máximo +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:minimax" + +\end_inset + +Algoritmo minimax. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +El +\series bold +minimax +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:minimax" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +) intenta maximizar el valor final de +\begin_inset Formula $u$ +\end_inset + + anticipándose a que el oponente intentará minimizarlo, y es óptimo. + Su complejidad en tiempo es +\begin_inset Formula $O(b^{m})$ +\end_inset + +, y su complejidad en espacio es +\begin_inset Formula $O(bm)$ +\end_inset + + si se generan todos los sucesores de un nodo a la vez u +\begin_inset Formula $O(m)$ +\end_inset + + si se generan uno a uno, donde +\begin_inset Formula $b$ +\end_inset + + es el factor de ramificación y +\begin_inset Formula $m$ +\end_inset + + es la profundidad máxima del árbol de búsqueda. +\end_layout + +\begin_layout Standard +El algoritmo se puede extender a juegos de más de dos jugadores; en este + caso la utilidad sería de la forma +\begin_inset Formula $V\to\mathbb{R}^{n}$ +\end_inset + +, donde +\begin_inset Formula $n$ +\end_inset + + es el número de jugadores y +\begin_inset Formula $u(n_{i})$ +\end_inset + + es el valor objetivo del nodo +\begin_inset Formula $u$ +\end_inset + + para el jugador +\begin_inset Formula $i$ +\end_inset + +, y en vez de +\begin_inset Formula $M$ +\end_inset + + tendríamos una función computable +\begin_inset Formula $J:V\to\{1,\dots,n\}$ +\end_inset + + que indica de quién es el turno y tal que para +\begin_inset Formula $(i,j)\in A$ +\end_inset + +, +\begin_inset Formula $J(j)\equiv J(i)+1\bmod n$ +\end_inset + +. + Entonces, en cada nodo +\begin_inset Formula $u$ +\end_inset + + no terminal, nos quedaríamos con el valor minimax de los sucesores con + coordenada +\begin_inset Formula $J(u)$ +\end_inset + +-ésima máxima, y el algoritmo seguiría siendo óptimo aun cuando el juego + no fuera de suma cero. +\end_layout + +\begin_layout Subsection +Poda alfa-beta +\end_layout + +\begin_layout Standard +Es posible acelerar el algoritmo minimax con +\series bold +poda alfa-beta +\series default + (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:alpha-beta" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +). + La idea es que +\begin_inset Formula $\alpha$ +\end_inset + + es el mayor valor encontrado para +\family typewriter +max +\family default + y +\begin_inset Formula $\beta$ +\end_inset + + es el menor valor encontrado para +\family typewriter +min +\family default +. + Entonces, si +\family typewriter +MinValor +\family default + encuentra un +\begin_inset Formula $v\leq\alpha$ +\end_inset + +, el valor que devuelva será no mayor a +\begin_inset Formula $\alpha$ +\end_inset + + porque está minimizando, y no merece la pena seguir porque +\family typewriter +MaxValor +\family default +, que llamó a +\family typewriter +MinValor +\family default +, descartaría el valor. + Del mismo modo, si +\family typewriter +MaxValor +\family default + encuentra un +\begin_inset Formula $v\geq\beta$ +\end_inset + +, termina porque su valor de retorno sería descartado por +\family typewriter +MinValor +\family default +. +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Juego $(V,A,M,s,F,u)$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Sucesor $s'$ óptimo.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwProg{Fn}{función}{}{fin} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{MaxValor}{MaxValor} +\end_layout + +\begin_layout Plain Layout + + +\backslash +SetKwFunction{MinValor}{MinValor} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Fn{ +\backslash +MaxValor{$n, +\backslash +alpha, +\backslash +beta$}}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$n +\backslash +in F$}{ +\backslash +Devolver $n$} +\end_layout + +\begin_layout Plain Layout + + $v +\backslash +gets- +\backslash +infty$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i:(n,i) +\backslash +in A$}{ +\end_layout + +\begin_layout Plain Layout + + $v +\backslash +gets +\backslash +max +\backslash +{v, +\backslash +MinValor{$i, +\backslash +alpha, +\backslash +beta$} +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$v +\backslash +geq +\backslash +beta$}{ +\backslash +Devolver $i$} +\end_layout + +\begin_layout Plain Layout + + $ +\backslash +alpha +\backslash +gets +\backslash +max +\backslash +{ +\backslash +alpha,v +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $v$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Fn{ +\backslash +MinValor{$n, +\backslash +alpha, +\backslash +beta$}}{ +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$n +\backslash +in F$}{ +\backslash +Devolver $n$} +\end_layout + +\begin_layout Plain Layout + + $v +\backslash +gets+ +\backslash +infty$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Para{$i:(n,i) +\backslash +in A$}{ +\end_layout + +\begin_layout Plain Layout + + $i +\backslash +gets +\backslash +min +\backslash +{i, +\backslash +MaxValor{$i, +\backslash +alpha, +\backslash +beta$} +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +lSSi{$v +\backslash +leq +\backslash +alpha$}{ +\backslash +Devolver $v$} +\end_layout + +\begin_layout Plain Layout + + $ +\backslash +beta +\backslash +gets +\backslash +min +\backslash +{ +\backslash +beta,v +\backslash +}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + + +\backslash +Devolver $v$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + +Tomar el sucesor $s'$ de $s$ asociado al resultado de +\backslash +MaxValor{$n,- +\backslash +infty,+ +\backslash +infty$} +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:alpha-beta" + +\end_inset + +Minimax con poda alfa-beta. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +La eficiencia de minimax con poda alfa-beta es +\begin_inset Formula $O(b^{m/2})$ +\end_inset + + en el caso mejor y +\begin_inset Formula $O(b^{m})$ +\end_inset + + en el caso peor, y la diferencia es muy dependiente del orden en que se + examinan los sucesores de cada nodo. + En el caso medio tenemos +\begin_inset Formula $O(b^{3m/4})$ +\end_inset + +. +\end_layout + +\begin_layout Subsection +Heurísticas +\end_layout + +\begin_layout Standard +Buscar hasta los estados terminales no suele ser práctico porque los movimientos + deben hacerse en una cantidad razonable de tiempo, por lo que se usan heurístic +as +\begin_inset Formula $h:V\to\mathbb{R}$ +\end_inset + + para sustituir a +\begin_inset Formula $u$ +\end_inset + + y un test de corte +\begin_inset Formula $D\subseteq V\times\mathbb{N}$ +\end_inset + + (computable) que decide cuándo parar la búsqueda y aplicar +\begin_inset Formula $h$ +\end_inset + + según el estado y la profundidad. + +\end_layout + +\begin_layout Standard +Una opción es parar a una profundidad fija, elegida para que el tiempo usado + no exceda lo permitido por las reglas del juego. + Un test más sofisticado solo para cuando encuentra una posición suficientemente + estable, en la que sea de esperar que la heurística sea buena. +\end_layout + +\begin_layout Subsection +Juegos estocásticos +\end_layout + +\begin_layout Standard +Muchos juegos incluyen un elemento aleatorio. + Esto se puede modelar como que entre un nivel de nodos +\family typewriter +max +\family default + y uno de nodos +\family typewriter +min +\family default +, y viceversa, hay un nivel de nodos de posibilidad cuyos sucesores son + posibles alternativas, y en minimax, en esos nodos, en vez de tomar el + máximo o el mínimo, tomamos la media ponderada a la probabilidad de cada + suceso. +\end_layout + +\end_body +\end_document diff --git a/si/n5.lyx b/si/n5.lyx new file mode 100644 index 0000000..fe6616b --- /dev/null +++ b/si/n5.lyx @@ -0,0 +1,989 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\usepackage{amssymb} +\end_preamble +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +El +\series bold +conocimiento +\series default + consiste en descripciones declarativas explícitas formadas por conceptos + y relaciones entre los conceptos específicos a un dominio de aplicación, + y en métodos genéricos de resolución de problemas, formados por +\series bold +técnicas de razonamiento +\series default + que usan las relaciones entre conceptos para inferir conclusiones y una + estructura de control para aplicar las técnicas. + Por ejemplo, se puede representar el conocimiento por cláusulas de lógica + de predicados de primer orden, y entonces una técnica de razonamiento es + el principio de resolución. +\end_layout + +\begin_layout Standard +Algunos tipos de conocimiento: +\end_layout + +\begin_layout Itemize + +\series bold +De entidades +\series default +: Propiedades y estructura física de entes del mundo real. +\end_layout + +\begin_layout Itemize + +\series bold +De conducta +\series default +: Comportamiento o forma de proceder de los entes. +\end_layout + +\begin_layout Itemize + +\series bold +De eventos +\series default +: Secuencias de eventos, distribución temporal y relaciones causales. +\end_layout + +\begin_layout Itemize + +\series bold +Procedimental +\series default +: Cómo realizar determinados procesos. +\end_layout + +\begin_layout Itemize + +\series bold +Sobre incertidumbre +\series default +: Nivel de certeza asociada a hechos. +\end_layout + +\begin_layout Itemize + +\series bold +Meta-conocimiento +\series default +: Conocimiento sobre el propio conocimiento, sus propiedades y cómo usarlo. +\end_layout + +\begin_layout Standard +Los sistemas inteligentes son +\series bold +intensivos en datos +\series default + si minan grandes cantidades de datos para obtener conclusiones e +\series bold +intensivos en conocimiento +\series default + ( +\series bold +sistemas basados en conocimiento +\series default +) si aplican gran cantidad de conocimiento a los datos. +\end_layout + +\begin_layout Standard + +\series bold +Diagnosticar +\series default + es encontrar una causa para un comportamiento observado distinto a lo normal, + partiendo de hallazgos normales y anormales y dando uno o más diagnósticos, + puede que ordenados por grado de certeza, que explican los hallazgos anormales + sin contradecir los normales. + Con sistemas basados en conocimiento, esto requiere de las siguientes fases: +\end_layout + +\begin_layout Enumerate + +\series bold +Adquisición +\series default + de conocimiento de alguna fuente, sea un experto o un proceso de prueba + y error mediante técnicas de aprendizaje. +\end_layout + +\begin_layout Enumerate + +\series bold +Conceptualización +\series default + o +\series bold +modelado +\series default +, fase central en la ingeniería del conocimiento, consistente en definir + y organizar los componentes de conocimiento. +\end_layout + +\begin_layout Enumerate + +\series bold +Representación +\series default + o +\series bold +formalización +\series default + del conocimiento en estructuras como cláusulas lógicas o reglas, normalmente + agrupadas en módulos para facilitar su recuperación y poder añadir, modificar + y borrar estructuras de forma independiente del resto. + Puede ser necesario que las estructuras de datos sean comprensibles por + humanos. +\end_layout + +\begin_layout Enumerate + +\series bold +Implementación +\series default + del software con el conocimiento y las técnicas de inferencia. + Las técnicas se suelen implementar de forma imperativa. +\end_layout + +\begin_layout Enumerate + +\series bold +Acceso +\series default + al conocimiento desde la recuperación. + La velocidad de acceso es muy importante cuando hay mucho conocimiento, + es complejo o se requiere funcionamiento en tiempo real. +\end_layout + +\begin_layout Enumerate + +\series bold +Selección +\series default + o +\series bold +recuperación +\series default + de un elemento concreto de conocimiento, adecuado al problema y el estado + del proceso de resolución. + Muchas veces se selecciona un módulo completo, y se usa meta-conocimiento + para elegir el siguiente módulo a cargar. + Si hay varios métodos de resolución, se puede usar meta-conocimiento para + usar el más apropiado. +\end_layout + +\begin_layout Standard +El +\series bold +ámbito +\series default + de una representación de conocimiento es el dominio en que se va a aplicar. + Definir conocimiento genérico es muy costoso, por lo que son más adecuadas + representaciones para contextos restringidos. +\end_layout + +\begin_layout Standard +La +\series bold +granularidad +\series default + es el tamaño de la unidad mínima de representación, +\series bold +gránulo +\series default + o +\series bold +grano +\series default +. + Con un grano grueso, los contenidos de alto nivel se representan de forma + sencilla pero el tratamiento es difícil, mientras que uno fino permite + representar procesos de bajo nivel y construir estructuras jerárquicas + fácilmente pero da problemas para representar conceptos de alto nivel. +\end_layout + +\begin_layout Standard +El conocimiento es +\series bold +redundante +\series default + si se representa el mismo de varias formas, lo que permite una aplicación + más efectiva porque algunas formas de conocimiento son más adecuadas para + ciertos casos que otras pero aumenta el volumen de datos. +\end_layout + +\begin_layout Section +Sistemas basados en reglas +\end_layout + +\begin_layout Standard +Un +\series bold +sistema basado en reglas +\series default + o +\series bold +sistema experto +\series default + es un sistema basado en conocimiento que usa reglas de la forma +\begin_inset Quotes cld +\end_inset + +si +\emph on +condición +\emph default + entonces +\emph on +acción +\emph default + +\begin_inset Quotes crd +\end_inset + +, dadas por un +\series bold +antecedente +\series default + o +\series bold +condición +\series default + formado por una lista de cláusulas a verificar y un +\series bold +consecuente +\series default + o +\series bold +acción +\series default + formado por una lista de acciones a ejecutar cuando se cumplen las condiciones. + Consta de: +\end_layout + +\begin_layout Itemize +Una +\series bold +base de hechos +\series default + o +\series bold +memoria de trabajo +\series default + con hechos conocidos de una situación particular. + Los hechos son: +\end_layout + +\begin_deeper +\begin_layout Itemize +De entrada, introducidos por el usuario u obtenidos de fuentes como sensores + o bases de datos, iniciales o introducidos durante el proceso conforme + se obtienen. +\end_layout + +\begin_layout Itemize +Inferidos por el sistema durante el proceso. +\end_layout + +\begin_layout Itemize +Los objetivos y subobjetivos a alcanzar. +\end_layout + +\end_deeper +\begin_layout Itemize +Una +\series bold +base de conocimiento +\series default + con las reglas del dominio. + La ejecución de una acción puede modificar de la base de hechos, normalmente + añadiendo hechos inferidos. +\end_layout + +\begin_deeper +\begin_layout Standard +Una +\series bold +red de inferencia +\series default + es una representación gráfica de una red de conocimiento de forma similar + a un grafo. + Las reglas se dibujan como puertas lógicas en función de cómo tengan que + combinarse los antecedentes para que la regla sea aplicable. + +\end_layout + +\begin_layout Standard +Un hecho que sea se representa como una flecha que va hacia la entrada de + las reglas que lo tengan como antecedente, posiblemente dividiéndose en + el camino. + Si el hecho es resultado del consecuente de una única regla, la flecha + parte del consecuente; si lo es de varias reglas, parte de un rectángulo + y se dibujan flechas de dichas reglas al rectángulo, y si no lo es de ninguna + regla, parte de la nada. + +\end_layout + +\begin_layout Standard +Generalmente las flechas se dibujan de izquierda a derecha, con los hechos + de partida a la izquierda y las metas a la derecha. + Los hechos y las reglas pueden etiquetarse. +\end_layout + +\end_deeper +\begin_layout Itemize +Un +\series bold +mecanismo +\series default + o +\series bold +motor de inferencias +\series default + que selecciona reglas aplicables para obtener alguna conclusión. +\end_layout + +\begin_layout Standard +Los sistemas expertos son importantes en escenarios gobernados por reglas + deterministas, y sobre todo en los que escasean expertos humanos, porque + permiten capturar la experiencia humana de forma natural. + Las reglas indican implicación causal, pero se les aplica razonamiento + deductivo basado en +\emph on +\lang latin +modus ponens +\emph default +\lang spanish +. +\end_layout + +\begin_layout Standard + +\series bold +Equiparar +\series default + es buscar un conjunto, el +\series bold +conjunto conflicto +\series default +, de reglas de la base de conocimiento, las reglas +\series bold +aplicables +\series default + o +\series bold +activadas +\series default +, cuyas condiciones o acciones sean compatibles con los datos almacenados. + +\series bold +Resolver +\series default + es seleccionar una regla del conjunto conflicto. + Así, mientras la base de hechos no haya alcanzado una condición de finalización +, normalmente alcanzar un hecho meta, y no se haya ejecutado una acción + de parada, el motor de inferencias equipara, resuelve y ejecuta la regla + elegida, actualizando la base de hechos con los hechos resultantes de aplicar + la regla. +\end_layout + +\begin_layout Standard +El motor de inferencias usa +\series bold +encadenamiento hacia delante +\series default + o +\series bold +dirigido por datos +\series default + si parte de los hechos conocidos y busca qué metas se verifican a partir + de estos, equiparando hechos con antecedentes de reglas, y usa +\series bold +encadenamiento hacia atrás +\series default + o +\series bold +dirigido por metas +\series default + si parte de la meta dada y comprueba si se deduce de los hechos creando + subobjetivos, equiparando metas con consecuentes de reglas. + +\end_layout + +\begin_layout Standard +Equiparar no siempre es trivial, pues las reglas pueden ser generales y + por ejemplo contener variables. + Además, examinar todas las reglas en cada ciclo es costoso si la base de + conocimiento es grande, por lo que se indizan las reglas y se usan técnicas + que evitan examinar todo el conocimiento. + El +\series bold +algoritmo RETE +\series default +, usado en las herramientas Jess y DROOLS, busca patrones en reglas y construye + un grafo para acelerar la equiparación de reglas al usar encadenamiento + hacia delante. +\end_layout + +\begin_layout Standard +Un +\series bold +método de resolución de conflictos +\series default + elige qué regla aplicar del conjunto conflicto, y de este depende el tiempo + de respuesta del sistema ante cambios del entorno y la posibilidad de ejecutar + secuencias de acciones relativamente largas. + Estos métodos pueden ser: +\end_layout + +\begin_layout Itemize + +\series bold +Estáticos +\series default +, basados solo en la base de conocimiento, como seleccionar las reglas ordenadas + por un criterio como su número de antecedentes. +\end_layout + +\begin_layout Itemize + +\series bold +Dinámicos +\series default +, como elegir las reglas que usan elementos más recientes de la base de + hechos o reglas no usadas previamente. +\end_layout + +\begin_layout Standard +Los sistemas expertos son de grano fino, modulares, uniformes, simples y + aplicables a muchos ámbitos. + Separan estrictamente la representación del conocimiento, declarativa, + de la técnica de razonamiento, y los razonamientos son relativamente comprensib +les por humanos, aunque su baja granularidad dificulta entender posibles + superestructuras cuando hay muchas reglas. + Es fácil extenderlos para que incluyan meta-conocimiento mediante meta-reglas, + y conocimiento sobre incertidumbre. +\end_layout + +\begin_layout Section +Lógicas no clásicas +\end_layout + +\begin_layout Standard +Una +\series bold +lógica +\series default + es un lenguaje de +\series bold +proposiciones +\series default + junto con un conjunto de +\series bold +reglas de inferencia +\series default + que transforman unas proposiciones en otras. + Una +\series bold +teoría +\series default + es un conjunto de proposiciones o +\series bold +axiomas +\series default + en el contexto de una lógica, y todas las proposiciones que se puedan obtener + de esta por aplicación de reglas de inferencia de la lógica, incluyendo + los propios axiomas, son sus +\series bold +teoremas +\series default +. + Escribimos +\begin_inset Formula ${\cal T}\vdash P$ +\end_inset + + si +\begin_inset Formula $P$ +\end_inset + + es un teorema de la teoría +\begin_inset Formula ${\cal T}$ +\end_inset + +. + Las lógicas suelen incluir una semántica +\begin_inset Quotes cld +\end_inset + +genérica +\begin_inset Quotes crd +\end_inset + + para las proposiciones que las teorías completan. +\end_layout + +\begin_layout Standard +Una lógica es +\series bold +monótona +\series default + si siempre que +\begin_inset Formula ${\cal T}\vdash P$ +\end_inset + + y +\begin_inset Formula ${\cal T}'$ +\end_inset + + sea una teoría cuyos axiomas incluyan los de +\begin_inset Formula ${\cal T}$ +\end_inset + +, se tiene +\begin_inset Formula ${\cal T}'\vdash P$ +\end_inset + +. + Las lógicas clásicas son monótonas, pero la monotonía no es apropiada cuando + el conocimiento es incompleto, pues puede que haya que hacer suposiciones + por defecto que puedan invalidarse cuando se tenga más conocimiento, ni + cuando el mundo es cambiante. +\end_layout + +\begin_layout Standard +Las lógicas clásicas no son apropiadas para tratar conocimiento incompleto, + incierto, impreciso o inconsistente, y los algoritmos para manipular conocimien +to lógico son ineficientes, por lo que se crean otras lógicas más apropiadas. +\end_layout + +\begin_layout Subsection +Lógica de situaciones +\end_layout + +\begin_layout Standard +Introducida por McCarthy en 1969. + Como la lógica de predicados de primer orden pero todos los predicados + tienen un argumento extra que indica en qué situación la fórmula es cierta, + pues una fórmula puede pasar a ser falsa tras un cambio. + Existe una función +\begin_inset Formula $R/2$ +\end_inset + + de modo que +\begin_inset Formula $R(e,s)$ +\end_inset + + es la situación resultante de que ocurra el evento +\begin_inset Formula $e$ +\end_inset + + en la situación +\begin_inset Formula $s$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Al crear el modelo, hay que indicar qué proposiciones simples se siguen + cumpliendo al aplicar un cambio a la situación. +\end_layout + +\begin_layout Subsection +Lógica difusa +\end_layout + +\begin_layout Standard +En lógica de predicados, a todo predicado +\begin_inset Formula $P$ +\end_inset + + sobre un dominio +\begin_inset Formula $U$ +\end_inset + + le corresponde un conjunto +\begin_inset Formula $\{x\in U:P(x)\}$ +\end_inset + + y una +\series bold +función de pertenencia +\series default + +\begin_inset Formula $f:U\to\{0,1\}$ +\end_inset + + dada por +\begin_inset Formula +\[ +f(x):=\begin{cases} +1, & P(x);\\ +0, & \neg P(x); +\end{cases} +\] + +\end_inset + +distinguiendo entre predicados ciertos y falsos. + En lógica difusa usamos +\series bold +predicados vagos +\series default +, de modo que a un predicado +\begin_inset Formula $P$ +\end_inset + + sobre un dominio +\begin_inset Formula $U$ +\end_inset + + le corresponde un +\series bold +conjunto difuso +\series default + y una función de pertenencia +\begin_inset Formula $f:U\to[0,1]$ +\end_inset + +. + La lógica clásica y la teoría de conjuntos difusos nos permiten razonar + con afirmaciones vagas con palabras como +\begin_inset Quotes cld +\end_inset + +joven +\begin_inset Quotes crd +\end_inset + +, +\begin_inset Quotes cld +\end_inset + +alto +\begin_inset Quotes crd +\end_inset + +, +\begin_inset Quotes cld +\end_inset + +muy +\begin_inset Quotes crd +\end_inset + +, +\begin_inset Quotes cld +\end_inset + +muchos +\begin_inset Quotes crd +\end_inset + +, +\begin_inset Quotes cld +\end_inset + +bastantes +\begin_inset Quotes crd +\end_inset + +, +\begin_inset Quotes cld +\end_inset + +pocos +\begin_inset Quotes crd +\end_inset + +, etc., pues de otra forma tendríamos inconsistencias. +\end_layout + +\begin_layout Subsection +Factores de certeza +\end_layout + +\begin_layout Standard +Para razonar con hechos con fiabilidad o precisión limitada o sobre los + que no estamos seguros, se suele incorporar la incertidumbre a una lógica + que no la incluye. + Esto se suele hacer con probabilidades y redes bayesianas, basadas probabilidad + condicionada e independencia de sucesos. +\end_layout + +\begin_layout Standard +A finales de los 70 se crea Mycin, un sistema basado en reglas usado para + identificar la bacteria causante de una infección y seleccionar un tratamiento + basándose en datos clínicos y encadenamiento hacia atrás. + Por entonces no se habían inventado las redes bayesianas y era difícil + obtener valores objetivos para las probabilidades, por lo que se usaron + factores de certeza obtenidos de estimaciones subjetivas. +\end_layout + +\begin_layout Standard +El +\series bold +factor de certeza +\series default + de una +\series bold +hipótesis +\series default + +\begin_inset Formula $h$ +\end_inset + + según una +\series bold +evidencia +\series default + +\begin_inset Formula $e$ +\end_inset + +, +\begin_inset Formula $\text{FC}(h,e)$ +\end_inset + + es la diferencia de una +\series bold +medida de creencia +\series default +, un número en +\begin_inset Formula $[0,1]$ +\end_inset + + que indica en qué grado +\begin_inset Formula $e$ +\end_inset + + apoya +\begin_inset Formula $h$ +\end_inset + +, y una +\series bold +medida de incredulidad +\series default +, un número en +\begin_inset Formula $[0,1]$ +\end_inset + + que indica en qué grado +\begin_inset Formula $e$ +\end_inset + + apoya +\begin_inset Formula $\neg h$ +\end_inset + +. + Las medidas de creencia e incredulidad no pueden ser positivas a la vez, + por lo que +\begin_inset Formula $\text{FC}(h,e)\in[-1,1]$ +\end_inset + + es suficiente para despejar ambas. +\end_layout + +\begin_layout Standard +El antecedente de una regla es una conjunción o disyunción de proposiciones + atómicas en lógica preposicional y el consecuente es una proposición atómica. + Las funciones de combinación deben ser conmutativas y asociativas, pues + el orden en que se obtienen las evidencias es arbitrario; el resultado + de encadenar inferencias debe tener menor certeza que cada inferencia individua +l, y si una evidencia adicional confirma una hipótesis, su factor de creencia + debe aumentar. + +\end_layout + +\begin_layout Standard +Con esto, cada regla +\begin_inset Formula $h\to e$ +\end_inset + + lleva un factor de certeza asociado +\begin_inset Formula $\text{FC}(h,e)$ +\end_inset + +, cada hipótesis +\begin_inset Formula $h$ +\end_inset + + en la base de hechos lleva un factor de certeza +\begin_inset Formula $\text{FC}(h,\bot)$ +\end_inset + +, donde +\begin_inset Formula $\bot$ +\end_inset + + es la situación particular, y las reglas son: +\begin_inset Foot +status open + +\begin_layout Plain Layout +En las diapositivas, las dos primeras reglas aparecen como +\begin_inset Formula $\text{FC}(h,e_{1}\land e_{2})=\min\{\text{FC}(h,e_{1}),\text{FC}(h,e_{2})\}$ +\end_inset + + y +\begin_inset Formula $\text{FC}(h,e_{1}\lor e_{2})=\max\{\text{FC}(h,e_{1}),\text{FC}(h,e_{2})\}$ +\end_inset + +, pero esto tendría menos sentido aún que las reglas que realmente usamos, + que son las que se muestran. +\end_layout + +\end_inset + + +\begin_inset Formula +\begin{align*} +\text{FC}(h_{1}\land h_{2},e) & =\min\{\text{FC}(h_{1},e),\text{FC}(h_{2},e)\},\\ +\text{FC}(h_{1}\lor h_{2},e) & =\max\{\text{FC}(h_{1},e),\text{FC}(h_{2},e)\},\\ +\text{FC}(h,e) & =\text{FC}(h,s)\max\{0,\text{FC}(s,e)\},\\ +\text{FC}(h,e_{1}\land e_{2}) & =\begin{cases} +\text{FC}(h,e_{1})+\text{FC}(h,e_{2})-\text{FC}(h,e_{1})\text{FC}(h,e_{2}), & \text{FC}(h,e_{1}),\text{FC}(h,e_{2})\geq0;\\ +\text{FC}(h,e_{1})+\text{FC}(h,e_{2})+\text{FC}(h,e_{1})\text{FC}(h,e_{2}), & \text{FC}(h,e_{1}),\text{FC}(h,e_{2})\leq0;\\ +\frac{\text{FC}(h,e_{1})+\text{FC}(h,e_{2})}{1-\min\{|\text{FC}(h,e_{1})|,|\text{FC}(h,e_{2})|\}}, & \text{FC}(h,e_{1})\text{FC}(h,e_{2})\leq0. +\end{cases} +\end{align*} + +\end_inset + +Las dos primeras se usan para evaluar el factor de certeza de antecedentes + de reglas; la tercera para obtener el factor de certeza del consecuente + de una regla sabiendo el de su antecedente y la cuarta para combinar factores + de certeza obtenidos por distintas reglas. +\end_layout + +\begin_layout Section +Representaciones estructuradas del conocimiento +\end_layout + +\begin_layout Standard +Las +\series bold +redes semánticas +\series default +, inventadas por Quillian en 1961, se basan en grafos para modelar la capacidad + de la memoria humana de recuperar conceptos a través de las relaciones + que los enlazan. + Los +\series bold +marcos +\series default + o +\series bold +\emph on +\lang english +frames +\series default +\emph default +\lang spanish +, inventados por Minsky en 1975, se basan en estructuras parecidas a formularios + y permiten hacer inferencias basadas en herencia. +\end_layout + +\begin_layout Standard +En los años 90, en ingeniería del conocimiento se adoptan las +\series bold +ontologías +\series default +, especificaciones formales explícitas de conceptos organizados en forma + jerárquica para servir de soporte a aplicaciones que requieren conocimiento + específico sobre una materia concreta. + En la segunda mitad de los 90, estas se aplican a la web para añadir descripcio +nes semánticas a los contenidos, creándose la +\series bold +web semántica +\series default +. +\end_layout + +\end_body +\end_document diff --git a/si/n6.lyx b/si/n6.lyx new file mode 100644 index 0000000..b4b3e21 --- /dev/null +++ b/si/n6.lyx @@ -0,0 +1,620 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\usepackage{amssymb} +\end_preamble +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard + +\series bold +Planificar +\series default + es obtener una secuencia de acciones para llegar a un estado objetivo. + Esto se puede hacer con técnicas de búsqueda, pero el espacio de búsqueda + suele ser muy complejo, los problemas no suelen ser descomponibles y los + estados de búsqueda suelen ser complejos porque requieren buena parte del + entorno, por lo que se suelen usar algoritmos específicos. + +\end_layout + +\begin_layout Standard +El +\series bold +problema del marco +\series default + o +\series bold +de la estructura +\series default + ( +\emph on +\lang english +frame problem +\emph default +\lang spanish +) es el de qué permanece sin cambios al aplicar una regla; el de la +\series bold +cualificación +\series default + es qué necesita la regla que se cumpla para poder ejecutable, y el de la + +\series bold +ramificación +\series default + es qué elementos cambian. +\end_layout + +\begin_layout Standard +Un +\series bold +plan lineal +\series default + es una secuencia de acciones para ir de un estado inicial a un estado objetivo, + y un +\series bold +plan no lineal +\series default + es una familia de acciones con un orden parcial de forma que cada secuenciación + de esas acciones que respete el orden parcial es un plan lineal. +\end_layout + +\begin_layout Section +STRIPS +\end_layout + +\begin_layout Standard + +\series bold +STRIPS +\series default + ( +\emph on +\lang english +Stanford Research Institute Problem Solver +\emph default +\lang spanish +) es un planificador lineal o +\series bold +de orden total +\series default + que usa una forma restringida de lógica de situaciones. + Los problemas están formados por un estado inicial, un estado objetivo + y un conjunto de acciones, y los literales o proposiciones atómicas que + aparecen no tienen variables resultado de funciones. +\end_layout + +\begin_layout Standard +Los estados inicial e intermedios son conjunciones de literales sin variables, + y los estados objetivo y subobjetivos son conjunciones de literales en + las que todas las variables se cuantifican existencialmente con ámbito + global en la proposición. +\end_layout + +\begin_layout Standard +Un +\series bold +unificador +\series default + entre dos fórmulas lógicas que no comparten variables libres es una asociación + de variables a valores tal que, al aplicarla por sustitución a las variables + libres de las dos fórmulas, queda la misma fórmula. + Si existe, las dos fórmulas +\series bold +unifican +\series default +. +\end_layout + +\begin_layout Standard +Las acciones están formadas por: +\end_layout + +\begin_layout Itemize +Un +\series bold +antecedente +\series default + o +\series bold +fórmula de precondición +\series default +, una conjunción de proposiciones atómicas en que las variables (libres) + se entienden cuantificadas existencialmente, y que indica cuándo se puede + aplicar la regla. + Para que la regla sea aplicable a un estado, debe existir un +\series bold +unificador más general +\series default + de la fórmula a la conjunción de un subconjunto de los literales en el + estado, que se puede obtener creando unificadores de literales y viendo + que sean consistentes. +\end_layout + +\begin_layout Itemize +Una +\series bold +lista de supresión +\series default +, una lista de literales cuyas variables deben aparecer en el antecedente + y que, al aplicar la regla, dejan de ser ciertos. +\end_layout + +\begin_layout Itemize +Una +\series bold +fórmula de adición +\series default +, una lista de literales cuyas variables deben aparecer en el antecedente + y que, al aplicar la regla, se hacen ciertos. +\end_layout + +\begin_layout Section +Búsqueda +\end_layout + +\begin_layout Standard +Lo más sencillo es obtener un plan lineal con técnicas de búsqueda ya conocidas, + pero como las descripciones de acciones indican tanto precondiciones como + efectos, la búsqueda se puede hacer hacia delante, del estado inicial hasta + un objetivo, o hacia atrás, del objetivo al estado inicial. +\end_layout + +\begin_layout Standard +En el caso de reglas tipo STRIPS, aplicar una regla hacia atrás genera un + subobjetivo. + Para obtenerlo, unificamos un subconjunto de los literales del objetivo + con la fórmula de adición, aplicamos el unificador a todo el objetivo y + la regla y tomamos la conjunción de la fórmula de precondición de la regla + con la regresión de los literales del objetivo que no aparecen en el subconjunt +o unificado. + La +\series bold +regresión +\series default + de un literal es Falso si el literal aparece en la lista de supresión, + Cierto si aparece en la de adición y el propio literal en otro caso. +\end_layout + +\begin_layout Standard +El espacio de subobjetivos es más amplio que el espacio de estados obtenido + de aplicar las reglas hacia delante, pero el literal Cierto se puede obviar + y se pueden podar los subobjetivos que contienen Falso o que es fácil ver + en el contexto que son imposibles. +\end_layout + +\begin_layout Standard +La búsqueda exhaustiva no es práctica, por lo que se deben usar heurísticas. +\end_layout + +\begin_layout Section +Pila de objetivos +\end_layout + +\begin_layout Standard +STRIPS usa una planificación lineal mediante una pila de subobjetivos con + el algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:strips" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +, que puede usar heurísticas para ordenar los literales de un objetivo compuesto + al apilarlos y para elegir qué unificador usar y qué regla elegir para + un objetivo simple. + Se pueden obtener planes subóptimos por una mala ordenación de los objetivos. +\begin_inset Foot +status open + +\begin_layout Plain Layout +De hecho, en algunos problemas una mala ordenación puede evitar encontrar + una solución. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Estado inicial $s$, estado objetivo $o$ y conjunto de reglas $R$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Camino $P$ de $s$ a $f$.} +\end_layout + +\begin_layout Plain Layout + +$P +\backslash +gets(s)$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$S +\backslash +gets(o)$% +\end_layout + +\begin_layout Plain Layout + + +\backslash +tcp*{{ +\backslash +rm $S$ es la pila de objetivos, que también contiene reglas.}} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$S +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + Extraer el último $p$ de $S$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +uSSi{$p$ es una regla aplicable a $s$}{ +\end_layout + +\begin_layout Plain Layout + + Aplicar $p$ a $s$ obteniendo un nuevo $s$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + $P +\backslash +gets Pps$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +uEnOtroCasoSi{$p$ unifica con $s$ por algún $U$}{ +\end_layout + +\begin_layout Plain Layout + + Aplicar $U$ a todos los elementos de $S$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +uEnOtroCasoSi{$p=:l_1 +\backslash +land +\backslash +dots +\backslash +land l_n$ con $n +\backslash +geq2$}{ +\end_layout + +\begin_layout Plain Layout + + $S +\backslash +gets Spl_1 +\backslash +cdots l_n$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\backslash +uEnOtroCaso{ +\end_layout + +\begin_layout Plain Layout + + Elegir $r +\backslash +in R$ cuya fórmula de adición unifique con $p$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + Sea $l_1 +\backslash +land +\backslash +dots +\backslash +land l_n$ la precondición de $r$ unificada, +\end_layout + +\begin_layout Plain Layout + + $S +\backslash +gets Srl_1 +\backslash +cdots l_n$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + } +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:strips" + +\end_inset + +Método de planificación de STRIPS. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section +Planificación de orden parcial +\end_layout + +\begin_layout Standard +La planificación no lineal o +\series bold +de orden parcial +\series default + se basa en descomponer el problema y trabajar en varios subobjetivos independie +ntemente y creando un plan a partir de ellos. + Suele haber acciones ficticias inicio y final. + La +\series bold +planificación de compromiso mínimo +\series default + es la idea de tomar solo las acciones y unificaciones estrictamente necesarias. +\end_layout + +\begin_layout Standard +Aunque podemos representar un plan con un diagrama de grafo de orden parcial, + también podemos hacerlo como sigue: dibujamos todas las acciones a realizar + con un círculo, conectado por debajo a los literales de la precondición + y por encima a los de la lista de adición, representados por un cuadrado, + y en particular inicio tiene como lista de adición las condiciones iniciales + y fin tiene como precondiciones los literales del objetivo unificados. + +\end_layout + +\begin_layout Standard +Cuando una acción +\begin_inset Formula $A$ +\end_inset + + va antes que otra +\begin_inset Formula $B$ +\end_inset + +, en general conectamos cada precondición de +\begin_inset Formula $B$ +\end_inset + + con una adición igual de +\begin_inset Formula $A$ +\end_inset + + o de otro ancestro que no aparezca en la lista de supresión de otra acción + posterior en el camino, pero si el motivo que vaya antes es que +\begin_inset Formula $B$ +\end_inset + + suprime una precondición de +\begin_inset Formula $A$ +\end_inset + +, se dibuja una flecha de +\begin_inset Formula $A$ +\end_inset + + a la precondición de +\begin_inset Formula $B$ +\end_inset + + que suprime, llamada +\series bold +arco amenaza +\series default +. +\end_layout + +\begin_layout Standard +Son planificadores no lineales NOAH, MOLGEN y SIPE. +\end_layout + +\begin_layout Section +Planificación jerárquica +\end_layout + +\begin_layout Standard +Consiste en dividir el problema en niveles de complejidad, de forma que + se crea un plan de alto nivel y cada acción del plan se ejecuta con las + acciones de un plan del nivel inferior, hasta llegar a un nivel suficiente + de detalle. + Esto permite resolver problemas complejos en los que no es posible hacer + una búsqueda completa. + +\series bold +ABSTRIPS +\series default + ( +\emph on +\lang english +Abstraction-Based STRIPS +\emph default +\lang spanish +) es un planificador jerárquico creado por Earl D. + Sacerdoti en 1973. +\end_layout + +\begin_layout Standard +El +\series bold +valor crítico +\series default + de una precondición es una medida de la dificultad de satisfacerla, como + por ejemplo el número de acciones que satisfacen la precondición. + En cada nivel de la jerarquía se tratan precondiciones con igual valor + crítico, empezando con un plan que considera las precondiciones de mayor + valor crítico dando por satisfechas las demás. + Si hay problemas, volvemos al nivel anterior para buscar otro plan. +\end_layout + +\end_body +\end_document diff --git a/si/n7.lyx b/si/n7.lyx new file mode 100644 index 0000000..90829cc --- /dev/null +++ b/si/n7.lyx @@ -0,0 +1,776 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\begin_preamble +\usepackage{amssymb} +\end_preamble +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +El +\series bold +aprendizaje +\series default + es el cambio adaptativo del comportamiento de un organismo resultante de + su interacción con el medio, y es un aspecto esencial de la inteligencia. + Permite implementar tareas que solo podemos describir bien mediante ejemplos, + hallar correlaciones entre grandes cantidades de datos, mejorar automáticamente + el diseño de un sistema con el tiempo, usar grandes cantidades de conocimiento + que sobrepasan la capacidad de codificación por un humano, adaptar el programa + a cambios en el entorno y actualizar automáticamente el conocimiento del + programa. +\end_layout + +\begin_layout Standard +El aprendizaje ocurre con una fase de entrenamiento, en la que el programa + adquiere experiencia con ejemplos etiquetados si el aprendizaje es +\series bold +supervisado +\series default + o con observaciones del entorno si no lo es, y una fase de prueba, en la + que se comprueba que el programa +\series bold +clasifica +\series default + los nuevos ejemplos o +\series bold +predice +\series default + su solución correctamente (da un resultado correcto). +\end_layout + +\begin_layout Standard +La +\series bold +precisión +\series default + es la fiabilidad del modelo aprendido, medida normalmente por la proporción + de ejemplos clasificados correctamente, aunque a veces es preferible sacrificar + precisión por velocidad de predicción, por ejemplo en detección de errores + en cadenas de producción. +\end_layout + +\begin_layout Standard +Si el modelo lo usa un humano, el razonamiento debe ser fácil de entender + para evitar errores. + También es importante reducir el tiempo de aprendizaje y el número de observaci +ones necesarias. +\end_layout + +\begin_layout Section +Estimación del error +\end_layout + +\begin_layout Standard +El +\series bold +estimador del error en los ejemplos +\series default + es la proporción de ejemplos de la prueba clasificados incorrectamente, + y es un buen estimador si los ejemplos de prueba no se usaron en el entrenamien +to. + El +\series bold +error de resustitución +\series default + es el estimador del error poniendo como ejemplos los mismos datos que en + el entrenamiento, y es una aproximación optimista al error real. +\end_layout + +\begin_layout Standard +La estimación del error por +\series bold +validación cruzada +\series default + mide el error de un método, no de un modelo concreto, y se aplica cuando + los datos son escasos. + El conjunto de ejemplos +\begin_inset Formula $S$ +\end_inset + + se particiona en trozos +\begin_inset Formula $S_{1},\dots,S_{v}$ +\end_inset + + de tamaño semejante, y para cada +\begin_inset Formula $i\in\{1,\dots,v\}$ +\end_inset + +, se construye un modelo sobre +\begin_inset Formula $S\setminus S_{i}$ +\end_inset + + y se calcula su error estimador de los ejemplos +\begin_inset Formula $R_{i}$ +\end_inset + + usando el conjunto de prueba +\begin_inset Formula $S_{i}$ +\end_inset + +. + El error de validación cruzada es +\begin_inset Formula $\sum_{i=1}^{v}\frac{|S_{i}|}{|S|}R_{i}$ +\end_inset + +. + Un buen valor de +\begin_inset Formula $v$ +\end_inset + + es 10, y entonces el método se llama +\series bold +\emph on +\lang english +10-fold cross-validation +\series default +\emph default +\lang spanish +. + Otro caso es el +\series bold +\emph on +\lang english +leave-one-out +\series default +\emph default +\lang spanish +, en el que +\begin_inset Formula $S$ +\end_inset + + se particiona en +\begin_inset Formula $|S|$ +\end_inset + + trozos de un elemento. + Solo se usa cuando +\begin_inset Formula $S$ +\end_inset + + es pequeño, pues es computacionalmente costoso. +\end_layout + +\begin_layout Standard +A veces algunos errores son más costosos que otros; por ejemplo es más costoso + un falso negativo de una enfermedad que un falso positivo. + Si el problema es clasificar ejemplos en +\begin_inset Formula $n$ +\end_inset + + categorías, una +\series bold +matriz de confusión +\series default + es una matriz +\begin_inset Formula $A\in{\cal M}_{n}(\mathbb{N})$ +\end_inset + + en la que +\begin_inset Formula $a_{ij}$ +\end_inset + + es el número de ejemplos de clase +\begin_inset Formula $i$ +\end_inset + + que fueron clasificados como de clase +\begin_inset Formula $j$ +\end_inset + +, y una +\series bold +matriz de costos +\series default + es una matriz +\begin_inset Formula $C\in{\cal M}_{n}(\mathbb{R})$ +\end_inset + + en la que +\begin_inset Formula $c_{ij}$ +\end_inset + + es el coste de clasificar un ejemplo de clase +\begin_inset Formula $i$ +\end_inset + + como de clase +\begin_inset Formula $j$ +\end_inset + +, y que por tanto tiene diagonal nula. + Entonces el estimador de coste de una mala clasificación es +\begin_inset Formula +\[ +\sum_{i=1}^{n}\sum_{\begin{subarray}{c} +j=1\\ +j\neq i +\end{subarray}}^{n}a_{ij}c_{ij}. +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +Cuando el rango de soluciones es numérico y continuo, un buen estimador + es el +\series bold +error cuadrático medio +\series default + ( +\series bold +MSE +\series default +, +\emph on +\lang english +Mean Squared Error +\emph default +\lang spanish +), que con +\begin_inset Formula $n$ +\end_inset + + ejemplos con soluciones +\begin_inset Formula $x_{1},\dots,x_{n}$ +\end_inset + + para los que el programa da soluciones respectivas +\begin_inset Formula $y_{1},\dots,y_{n}$ +\end_inset + + es +\begin_inset Formula +\[ +\frac{1}{n}\sum_{i=1}^{n}(x_{i}-y_{i})^{2}. +\] + +\end_inset + + +\end_layout + +\begin_layout Section +Aprendizaje memorístico +\end_layout + +\begin_layout Standard +Es una técnica consistente en almacenar todo es conocimiento nuevo para + usarlo cuando se encuentre un caso similar, y puede estar integrada en + un sistema de aprendizaje más complejo. +\end_layout + +\begin_layout Standard +Es adecuada cuando es más conveniente almacenar los datos que re-calcular. + En particular el acceso debe ser rápido, lo que requiere indizado. + No es adecuada cuando el entorno cambia rápidamente y lo almacenado puede + quedar fácilmente desfasado. +\end_layout + +\begin_layout Standard +Se puede decidir si almacenar o no cada vez que llega nueva información + o almacenar todo y después olvidar lo que se usa menos. +\end_layout + +\begin_layout Section +Resolución de problemas +\end_layout + +\begin_layout Standard +Un programa para resolver problemas puede recordar la estructura del programa + que ha resuelto, los métodos usados para resolverlo y su solución, generalizar + la experiencia y usarla para resolver problemas similares. +\end_layout + +\begin_layout Standard +El primer programa en hacer esto fue STRIPS, que tras cada episodio de planifica +ción tomaba el plan calculado o una parte y lo transformaba en un +\series bold +macro-operador +\series default +, una secuencia de acciones abstracta encapsulada en un +\series bold +operador +\series default + o acción para su uso posterior como una acción normal. +\end_layout + +\begin_layout Standard +Como es raro que se de un mismo problema dos veces, el macro-operador debe + generalizarse, cambiando constantes por variables siempre que se pueda. + STRIPS sustituye todas las constantes por variables y después re-evalúa + las precondiciones de cada operador usado para unificar y convertir variables + en constantes si es necesario. + Los buenos macro-operadores son muy útiles, y pueden producir un pequeño + cambio local en el mundo aunque los operadores que lo forman produzcan + muchos cambios locales. +\end_layout + +\begin_layout Section +Reglas de asociación +\end_layout + +\begin_layout Standard +Las +\series bold +reglas de asociación +\series default + relacionan los elementos que pueden aparecer en una base de datos, y son + útiles para toma de decisiones, diagnóstico y predicción. + +\end_layout + +\begin_layout Standard +Sea +\begin_inset Formula $I$ +\end_inset + + un conjunto de ítems que pueden aparecer en la descripción de un elemento + de una base de datos, una regla de asociación tiene forma +\begin_inset Quotes cld +\end_inset + +Si +\begin_inset Formula $X$ +\end_inset + + entonces +\begin_inset Formula $Y$ +\end_inset + + +\begin_inset Quotes crd +\end_inset + + o +\begin_inset Quotes cld +\end_inset + + +\begin_inset Formula $X\Rightarrow Y$ +\end_inset + + +\begin_inset Quotes crd +\end_inset + +, donde +\begin_inset Formula $X,Y\subseteq I$ +\end_inset + + son disjuntos. + Sea +\begin_inset Formula $D\subseteq{\cal P}(I)$ +\end_inset + + un conjunto finito de elementos de la base de datos, el +\series bold +soporte +\series default + de un +\begin_inset Formula $Z\subseteq I$ +\end_inset + + es +\begin_inset Formula $s(Z):=\frac{|\{e\in D:Z\subseteq e\}|}{|D|}$ +\end_inset + +; la +\series bold +confianza +\series default + o +\series bold +precisión +\series default + de la regla +\begin_inset Quotes cld +\end_inset + +si +\begin_inset Formula $X$ +\end_inset + + entonces +\begin_inset Formula $Y$ +\end_inset + + +\begin_inset Quotes crd +\end_inset + + es +\begin_inset Formula $c(X\Rightarrow Y):=\frac{s(X\cup Y)}{s(X)}$ +\end_inset + +, y su +\series bold +soporte +\series default + o +\series bold +cobertura +\series default + es +\begin_inset Formula $s(X\Rightarrow Y):=s(X\cup Y)$ +\end_inset + +. +\begin_inset Foot +status open + +\begin_layout Plain Layout +Las diapositivas usan la notación de mierda +\begin_inset Formula $|X|:=|\{e\in D:X\subseteq e\}|$ +\end_inset + +. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float algorithm +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +Entrada{Conjunto de ítems $I$ de tamaño $k +\backslash +in +\backslash +mathbb{N}$, conjunto de elementos $D +\backslash +subseteq{ +\backslash +cal P}(I)$ y soporte mínimo $f +\backslash +in[0,1]$.} +\end_layout + +\begin_layout Plain Layout + + +\backslash +Salida{Conjunto ${ +\backslash +cal L} +\backslash +subseteq{ +\backslash +cal P}(I)$ de conjuntos de ítems con soporte al menos $f$.} +\end_layout + +\begin_layout Plain Layout + +$L_1 +\backslash +gets +\backslash +{ +\backslash +{i +\backslash +} +\backslash +}_{i +\backslash +in D,s( +\backslash +{i +\backslash +}) +\backslash +geq f}$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +$k +\backslash +gets1$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + + +\backslash +Mientras{$L_k +\backslash +neq +\backslash +emptyset$}{ +\end_layout + +\begin_layout Plain Layout + + $G +\backslash +gets +\backslash +{S +\backslash +cup +\backslash +{i +\backslash +} +\backslash +}_{S +\backslash +in L_k,i +\backslash +in I +\backslash +setminus S}$% +\end_layout + +\begin_layout Plain Layout + + +\backslash +tcp*{{ +\backslash +rm Fase de formación.}} +\end_layout + +\begin_layout Plain Layout + + $C +\backslash +gets +\backslash +{S +\backslash +in G: +\backslash +forall i +\backslash +in S,S +\backslash +setminus +\backslash +{i +\backslash +} +\backslash +in L_k +\backslash +}$% +\end_layout + +\begin_layout Plain Layout + + +\backslash +tcp*{{ +\backslash +rm Fase de poda.}} +\end_layout + +\begin_layout Plain Layout + + $L_{k+1} +\backslash +gets +\backslash +{S +\backslash +in C:s(S) +\backslash +geq f +\backslash +}$% +\end_layout + +\begin_layout Plain Layout + + +\backslash +tcp*{{ +\backslash +rm Candidatos de tamaño $k$ frecuentes.}} +\end_layout + +\begin_layout Plain Layout + + $k +\backslash +gets k+1$ +\backslash +; +\end_layout + +\begin_layout Plain Layout + +} +\end_layout + +\begin_layout Plain Layout + +${ +\backslash +cal L} +\backslash +gets +\backslash +bigcup_{i=1}^{k-1}L_i$ +\backslash +; +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +\begin_inset CommandInset label +LatexCommand label +name "alg:a-priori" + +\end_inset + +Algoritmo a priori. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Para obtener reglas con buenos valores de soporte y confianza, primero ejecutamo +s el algoritmo a priori (algoritmo +\begin_inset CommandInset ref +LatexCommand ref +reference "alg:a-priori" +plural "false" +caps "false" +noprefix "false" + +\end_inset + +) para obtener los conjuntos de ítems frecuentes en +\begin_inset Formula ${\cal L}$ +\end_inset + + y luego tomamos las reglas +\begin_inset Formula $r\in\bigcup_{L\in{\cal L}}\{X\Rightarrow L\setminus X\}_{X\subseteq L}$ +\end_inset + + con +\begin_inset Formula $c(r)\geq p$ +\end_inset + +, donde +\begin_inset Formula $p$ +\end_inset + + es la precisión mínima. +\end_layout + +\end_body +\end_document @@ -169,6 +169,17 @@ Cohesion (computer science), GRASP (object-oriented design), Fundamental . \end_layout +\begin_layout Itemize +Oracle (2020). + +\emph on +\lang english +Java™ Platform, Standard Edition 8 API Specification +\emph default +\lang spanish +. +\end_layout + \begin_layout Chapter Principios básicos \end_layout @@ -196,5 +207,19 @@ filename "n1.lyx" \end_layout +\begin_layout Chapter +Conceptos de Java +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n2.lyx" + +\end_inset + + +\end_layout + \end_body \end_document diff --git a/tds/n2.lyx b/tds/n2.lyx new file mode 100644 index 0000000..dbbc4bc --- /dev/null +++ b/tds/n2.lyx @@ -0,0 +1,3317 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\begin_modules +algorithm2e +\end_modules +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Clases anidadas +\end_layout + +\begin_layout Standard +Algunos lenguajes orientados a objetos +\begin_inset Foot +status open + +\begin_layout Plain Layout +En esta asignatura, cuando hablamos de programación orientada a objetos + nos referimos al sentido actual con lenguajes como Java y C#, centrados + en clases, interfaces y patrones de diseño, en vez de al sentido original + con lenguajes como Smalltalk, centrados en el intercambio de mensajes. +\end_layout + +\end_inset + + como C++ +\begin_inset Foot +status open + +\begin_layout Plain Layout +Alan Kay: +\emph on +\lang english + +\begin_inset Quotes cld +\end_inset + +I made up the term object-oriented and I can tell you I did not have C++ + in mind. +\begin_inset Quotes crd +\end_inset + + +\end_layout + +\end_inset + +, C# y Java permiten definir una clase dentro de otra cuando esta solo es + necesaria dentro de la otra. + En Java tenemos: +\end_layout + +\begin_layout Itemize + +\series bold +Clases anidadas estáticas +\series default +, definidas con el modificador +\family typewriter +\lang english +static +\family default +\lang spanish + en el cuerpo de otra clase. + La clase anidada puede ver todos los miembros de la que la contiene y de + sus instancias, y viceversa. +\end_layout + +\begin_layout Itemize + +\series bold +Clases internas +\series default +, cuyas instancias existen en el contexto de una instancia de la +\series bold +clase externa +\series default + y que pueden ver todos los miembros de dicha instancia. + Pueden implementar interfaces, por lo que son útiles para crear +\emph on +\lang english +callbacks +\emph default +\lang spanish +. + Tipos: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Clases miembro +\series default +, definidas en el cuerpo de la clase externa sin +\family typewriter +\lang english +static +\family default +\lang spanish +. + Las instancias son creadas por la clase externa mediante +\end_layout + +\begin_deeper +\begin_layout Standard +\align center + +\family typewriter +this.new +\emph on +Clase +\family default +\emph default +[ +\family typewriter +< +\family default +[ +\family typewriter +\emph on +T +\emph default +, +\family default +...] +\family typewriter +> +\family default +] +\family typewriter +( +\family default +[ +\family typewriter +\emph on +parámetro +\emph default +, +\family default +...] +\family typewriter +) +\family default +. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Clases locales +\series default +, definidas en el cuerpo de un método. + Tienen en su ámbito las variables locales del método definidas previamente + y pueden usar las que son +\family typewriter +\lang english +final +\family default +\lang spanish +. + Las instancias son creadas por el método con la sintaxis habitual ( +\family typewriter +new +\family default +). +\end_layout + +\begin_layout Itemize + +\series bold +Clases anónimas +\series default +, como las locales pero definidas e instanciadas a la vez con una expresión +\end_layout + +\begin_deeper +\begin_layout Standard +\align center + +\family typewriter +new +\emph on +Superclase +\emph default +( +\family default +[ +\family typewriter +\emph on +parámetro +\emph default +, +\family default +...] +\family typewriter +) { +\emph on +cuerpo de la clase +\emph default +} +\family default +, +\end_layout + +\begin_layout Standard +donde +\family typewriter +\emph on +Superclase +\family default +\emph default + es la clase o interfaz de la que deriva la clase anónima y los parámetros + se pasan a un constructor de la +\family typewriter +\emph on +Superclase +\family default +\emph default +, de modo que si esta es una interfaz no hay parámetros. + Se usan cuando se necesita un objeto de una clase que implemente una cierta + interfaz y la definición es pequeña, de unas 10 líneas. + +\end_layout + +\end_deeper +\end_deeper +\begin_layout Section +Objetos función +\end_layout + +\begin_layout Standard +En lenguajes como Smalltalk, Python, Ruby y Javascript, las funciones se + pueden tratar como valores y pueden capturar variables del ámbito de su + definición. +\end_layout + +\begin_layout Standard +A partir de Java 8, una +\series bold +expresión lambda +\series default + es una de la forma +\family typewriter +( +\family default +[[ +\family typewriter +\emph on +tipo +\family default +\emph default +] +\family typewriter +\emph on +parámetro +\emph default +, +\family default +...] +\family typewriter +) -> { +\emph on +cuerpo +\emph default + } +\family default +, que si se esperaba un objeto de una +\family typewriter +\emph on +Interfaz +\family default +\emph default + que solo tiene un +\family typewriter +\emph on +método +\family default +\emph default +, equivale a +\family typewriter +\lang english +new +\lang spanish + +\emph on +Interfaz +\emph default + { +\lang english +public +\lang spanish + +\emph on +método +\emph default +( +\family default +[ +\family typewriter +\emph on +parámetro +\emph default +, +\family default +...] +\family typewriter +) { +\emph on +cuerpo +\emph default + } +\family default +. + +\end_layout + +\begin_layout Standard +Además, +\family typewriter +{ +\lang english +return +\emph on +expr +\emph default +\lang spanish +; } +\family default + se puede abreviar como +\family typewriter +\emph on +expr +\family default +\emph default +, y si hay solo un parámetro se puede cambiar +\family typewriter +( +\emph on +parámetro +\emph default +) +\family default + por +\family typewriter +\emph on +parámetro +\family default +\emph default +. + +\family typewriter +\emph on +Clase +\emph default +:: +\emph on +método +\family default +\emph default + equivale a +\family typewriter +\emph on +Clase +\emph default + o -> o. +\emph on +método +\emph default +() +\family default +, y +\family typewriter +\emph on +Clase +\emph default +::new +\family default + equivale a +\family typewriter +( +\family default +[ +\family typewriter +\emph on +parámetro +\emph default +, +\family default +...] +\family typewriter +) -> new +\emph on +Clase +\emph default +( +\emph on +parámetro +\emph default +, +\family default +... +\family typewriter +) +\family default +, donde el constructor tomado depende de la interfaz de cuyo tipo se esperaba + un objeto. +\end_layout + +\begin_layout Standard +Una +\series bold +interfaz funcional +\series default + es una con un solo método usada como tipo de una expresión lambda. + Se puede anotar con +\family typewriter +@ +\lang english +FunctionalInterface +\family default +\lang spanish + encima de la interfaz. +\end_layout + +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.awt.event +\family default + Interfaces y clases de eventos lanzados por componentes AWT. +\begin_inset Foot +status open + +\begin_layout Plain Layout +En adelante los tipos de datos y métodos cuya visibilidad no se especifique + tienen visibilidad pública. +\end_layout + +\end_inset + + +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +ActionListener +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +EventListener +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +void +\begin_inset space ~ +\end_inset + +actionPerformed(ActionEvent) +\family default + Recibe una acción y actúa en consecuencia. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.util +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +interface +\begin_inset space ~ +\end_inset + +EventListener +\family default +\series default + Marcador para interfaces que reciben eventos. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.util.function +\family default + Interfaces funcionales genéricas. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +BiFunction<T,U,R> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +R +\begin_inset space ~ +\end_inset + +apply(T,U) +\family default + Aplica cierta función a los argumentos. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +BinaryOperator<T> +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +BiFunction<T,T,T> +\end_layout + +\begin_layout Description + +\family typewriter +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +Consumer<T> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +void +\begin_inset space ~ +\end_inset + +Accept(T) +\family default + Acepta un argumento y hace algo con él. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +Function<T,R> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +R +\begin_inset space ~ +\end_inset + +apply(T) +\family default + Aplica cierta función al argumento. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +Predicate<T> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +boolean +\begin_inset space ~ +\end_inset + +test(T) +\family default + Comprueba si el argumento cumple cierta condición. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +Supplier<T> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +T +\begin_inset space ~ +\end_inset + +get() +\family default + Suministra un objeto. + No tiene por qué ser siempre el mismo o distinto. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@FunctionalInterface +\begin_inset space ~ +\end_inset + +interface +\begin_inset space ~ +\end_inset + +ToIntFunction<T> +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +int +\begin_inset space ~ +\end_inset + +applyAsInt(T) +\family default + Aplica una función entera al argumento. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +javax.swing +\family default + Biblioteca de interfaz gráfica multiplataforma. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +abstract +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +AbstractButton +\family default +\series default + Código común a varios tipos de botones. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +void +\begin_inset space ~ +\end_inset + +addActionListener(ActionListener) +\family default + Añade un +\family typewriter +ActionListener +\family default + para llamarlo al pulsar el botón. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +class +\begin_inset space ~ +\end_inset + +JButton +\series default + +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +AbstractButton +\family default + Botón estándar. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +@ConstructorProperties(value= +\begin_inset Quotes qrd +\end_inset + +text +\begin_inset Quotes qrd +\end_inset + +) +\begin_inset space ~ +\end_inset + +JButton(String) +\family default + Crea un botón con el texto dado. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +JLabel +\family default + Área para mostrar un texto corto, una imagen o ambos. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +JLabel() +\family default + Crea un +\family typewriter +JLabel +\family default + sin imagen ni texto. +\end_layout + +\begin_layout Description + +\family typewriter +void +\begin_inset space ~ +\end_inset + +setText(String) +\family default + Establece el texto. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Section +Objetos nulos +\end_layout + +\begin_layout Standard +La mayoría de lenguajes de programación desde Algol +\begin_inset space ~ +\end_inset + +W representan la falta de un valor como un valor especial +\family typewriter +null +\family default + o +\family typewriter +nil +\family default +. + Esto hace el código menos legible por las comprobaciones, es fuente de + errores y rompe con la idea de ocultar los punteros, por lo que Scala +\begin_inset Foot +status open + +\begin_layout Plain Layout +Y en general los lenguajes funcionales. +\end_layout + +\end_inset + + usa en su lugar un tipo +\family typewriter +Option[T] +\family default + (que puede contener un valor de tipo +\family typewriter +T +\family default + o ninguno) y Groovy usa un operador de navegación segura (que sale de la + función si el operando es nulo). +\end_layout + +\begin_layout Standard +En Java, el patrón +\emph on +\lang english +Null Object +\emph default +\lang spanish + consiste en sustituir +\family typewriter +null +\family default + para una interfaz por un valor de una clase que implemente la interfaz + con una implementación apropiada para la ausencia de valor. +\end_layout + +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +java.util.Optional<T> +\family default + Valor de +\family typewriter +T +\family default + no nulo o ausencia de valor. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Optional<T> +\begin_inset space ~ +\end_inset + +empty() +\family default + Devuelve un +\family typewriter +Optional +\family default + vacío. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +T +\begin_inset space ~ +\end_inset + +get() +\family default +\series default + Si tiene un valor lo devuelve. + +\end_layout + +\begin_layout Description + +\family typewriter +boolean +\begin_inset space ~ +\end_inset + +isPresent() +\family default + Indica si tiene un valor. +\end_layout + +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Optional<T> +\begin_inset space ~ +\end_inset + +of(T) +\family default + Devuelve un +\family typewriter +Optional +\family default + con el valor no nulo dado. +\end_layout + +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Optional<T> +\begin_inset space ~ +\end_inset + +ofNullable(T) +\family default + Devuelve un +\family typewriter +Optional +\family default + con el valor dado si es no nulo o vacío en otro caso. +\end_layout + +\begin_layout Description + +\family typewriter +T +\begin_inset space ~ +\end_inset + +orElse(T) +\family default + Si tiene un valor lo devuelve, y si no devuelve el parámetro. +\end_layout + +\end_deeper +\begin_layout Section + +\emph on +\lang english +Streams +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +package +\begin_inset space ~ +\end_inset + +java.lang +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +String +\family default + Tipo de los literales de cadena de caracteres, inmutable. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +boolean +\begin_inset space ~ +\end_inset + +endsWith(String) +\family default + Indica si la cadena tiene el sufijo indicado. +\end_layout + +\begin_layout Description + +\family typewriter +String +\begin_inset space ~ +\end_inset + +toUpperCase() +\family default + Convierte la cadena a mayúsculas con la localización por defecto. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +package +\begin_inset space ~ +\end_inset + +java.util +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +Collection<E> +\family default + Colección de elementos de un tipo +\family typewriter +E +\family default +. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +default +\begin_inset space ~ +\end_inset + +Stream<E> +\begin_inset space ~ +\end_inset + +parallelStream() +\family default +\series default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + posiblemente paralelo con los elementos de la colección. +\end_layout + +\begin_layout Description + +\family typewriter +default +\begin_inset space ~ +\end_inset + +Stream<E> +\begin_inset space ~ +\end_inset + +stream() +\family default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + secuencial sobre los elementos de la colección. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.util.stream +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +interface +\begin_inset space ~ +\end_inset + +Collector<T,A,R> +\family default +\series default + Operación de reducción de elementos de tipo +\family typewriter +T +\family default + al tipo +\family typewriter +A +\family default + con representación final de tipo +\family typewriter +R +\family default +. +\end_layout + +\begin_deeper +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +Collectors +\family default + Colectores útiles. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +static <T,K> Collector<T,?,Map<K,List<T>>> groupingBy( +\begin_inset Newline newline +\end_inset + +Function<? super T,? extends K>) +\end_layout + +\end_inset + + +\family default +\series default + Aplica la función a todos los elementos y devuelve un diccionario cuyas + claves son los valores devueltos por la función y cuyos valores son listas + con los elementos a los que la función asocia la clave. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Collector<T,?,Integer> +\begin_inset space ~ +\end_inset + +summingInt(ToIntFunction<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default +\series default + Aplica la función a cada elemento y devuelve la suma. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +static <T,C extends Collection<T>> Collector<T,?,C> toCollection( +\begin_inset Newline newline +\end_inset + +Supplier<C>) +\end_layout + +\end_inset + + +\family default +\series default + Almacena los elementos en una colección proporcionada por el parámetro. +\end_layout + +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Collector<T,?,List<T>> +\begin_inset space ~ +\end_inset + +toList() +\family default + Almacena los elementos en una nueva lista. +\end_layout + +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Collector<T,?,Set<T>> +\begin_inset space ~ +\end_inset + +toSet() +\family default + Almacena los elementos en un nuevo conjunto. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +java.util.stream.Stream<T> +\family default + Secuencia de elementos que soporta operaciones secuenciales y paralelas. + En general los métodos que devuelven (siempre) otro +\emph on +\lang english +stream +\emph default +\lang spanish + son perezosas; no procesan los elementos hasta que sea necesario. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +bool +\begin_inset space ~ +\end_inset + +allMatch(Predicate<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default +\series default + Indica si todos los elementos del +\emph on +\lang english +stream +\emph default +\lang spanish + cumplen la condición. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +bool +\begin_inset space ~ +\end_inset + +anyMatch(Predicate<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default +\series default + Indica si alguno cumple la condición. +\end_layout + +\begin_layout Description + +\family typewriter +<R,A> +\begin_inset space ~ +\end_inset + +R +\begin_inset space ~ +\end_inset + +collect(Collector<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T,A,R>) +\family default + Reduce los elementos con el colector dado. +\end_layout + +\begin_layout Description + +\family typewriter +long +\begin_inset space ~ +\end_inset + +count() +\family default + Devuelve el número de elementos en el +\emph on +\lang english +stream +\emph default +\lang spanish +. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +Stream<T> +\begin_inset space ~ +\end_inset + +filter(Predicate<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default +\series default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + con los elementos de este que cumplen la condición. +\end_layout + +\begin_layout Description + +\family typewriter +Optional<T> +\begin_inset space ~ +\end_inset + +findAny() +\family default + Devuelve un elemento cualquiera del +\emph on +\lang english +stream +\emph default +\lang spanish + si lo hay. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +<R> Stream<R> flatMap( +\begin_inset Newline newline +\end_inset + +Function<? super T,? +\begin_inset space ~ +\end_inset + +extends Stream<? extends +\begin_inset space ~ +\end_inset + +R>>) +\end_layout + +\end_inset + + +\family default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + con los elementos de los +\emph on +\lang english +streams +\emph default +\lang spanish + resultantes de aplicar la función a cada elemento del +\emph on +\lang english +stream +\emph default +\lang spanish +. +\end_layout + +\begin_layout Description + +\family typewriter +void +\begin_inset space ~ +\end_inset + +forEach(Consumer<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default + Aplica la acción con cada elemento. +\end_layout + +\begin_layout Description + +\family typewriter +static +\begin_inset space ~ +\end_inset + +<T> +\begin_inset space ~ +\end_inset + +Stream<T> +\begin_inset space ~ +\end_inset + +of(T...) +\family default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + secuencial con los elementos dados. +\end_layout + +\begin_layout Description + +\family typewriter +<R> +\begin_inset space ~ +\end_inset + +Stream<R> +\begin_inset space ~ +\end_inset + +map(Function<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T,? +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +R>) +\family default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + resultante de aplicar la función dada a cada elemento de este. +\end_layout + +\begin_layout Description + +\family typewriter +Optional<T> +\begin_inset space ~ +\end_inset + +max(Comparator<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default + Devuelve el máximo del +\emph on +\lang english +stream +\emph default +\lang spanish + según el comparador, salvo que esté vacío. +\end_layout + +\begin_layout Description + +\family typewriter +Optional<T> +\begin_inset space ~ +\end_inset + +min(Comparator<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default + Devuelve el mínimo del +\emph on +\lang english +stream +\emph default +\lang spanish + según el comparador, salvo que esté vacío. +\end_layout + +\begin_layout Description + +\family typewriter +boolean +\begin_inset space ~ +\end_inset + +noneMatch(Predicate<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default + Indica si ningún elemento cumple la condición. + +\end_layout + +\begin_layout Description + +\family typewriter +Optional<T> +\begin_inset space ~ +\end_inset + +reduce(BinaryOperator<T>) +\family default + Reduce los elementos del +\emph on +\lang english +stream +\emph default +\lang spanish + con una función de acumulación asociativa, salvo que esté vacío. +\end_layout + +\begin_layout Description + +\family typewriter +Stream<T> +\begin_inset space ~ +\end_inset + +sorted() +\family default + Devuelve un +\emph on +\lang english +stream +\emph default +\lang spanish + con los elementos de este ordenados por su orden natural. +\end_layout + +\begin_layout Description + +\family typewriter +Stream<T> +\begin_inset space ~ +\end_inset + +sorted(Comparator<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T>) +\family default + Como +\family typewriter +sorted() +\family default + pero usa el comparador indicado. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Section +Introspección +\end_layout + +\begin_layout Standard +Una clase puede considerarse un objeto, y una +\series bold +metaclase +\series default + es una clase cuyas instancias son clases. + La +\series bold +introspección +\series default + o +\series bold +reflexión +\series default + es la posibilidad de analizar el código del programa en tiempo de ejecución, + y la +\series bold +metaprogramación +\series default + es la posibilidad de modificarlo o generarlo desde el propio lenguaje. +\end_layout + +\begin_layout Standard +Smalltalk, Python y Ruby proporcionan metaprogramación, y Java proporciona + introspección. + Los objetos clase tienen atributos con las propiedades de una clase y métodos + para su acceso y, en el caso de metaprogramación, su modificación. + +\end_layout + +\begin_layout Standard +La introspección es útil en inspectores de código, navegadores de clases, + creadores de interfaces de usuario, lenguajes específicos de dominio ( +\series bold +DSLs +\series default +, +\emph on +\lang english +Domain-Specific Languages +\emph default +\lang spanish +), etc., pero +\begin_inset Quotes cld +\end_inset + +convierte +\begin_inset Quotes crd +\end_inset + + errores en tiempo de compilación en errores en tiempo de ejecución y el + código suele ser largo y tedioso, por lo que se recomienda solo usarlo + para instanciar objetos y acceder a ellos con alguna interfaz o superclase + conocida en tiempo de ejecución. + +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +package +\begin_inset space ~ +\end_inset + +java.lang +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Class<T> +\family default + El único objeto es la entidad +\family typewriter +T +\family default +, que es devuelto por la expresión +\family typewriter +T.class +\family default +. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series medium +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +static +\begin_inset space ~ +\end_inset + +Class<?> +\begin_inset space ~ +\end_inset + +forName(String) +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +ClassNotFoundException +\end_layout + +\end_inset + + +\family default +\series default + Clase con el nombre indicado. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +Constructor<?>[] +\begin_inset space ~ +\end_inset + +getConstructors() +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +SecurityException +\end_layout + +\end_inset + + +\family default + Constructores públicos de la clase. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +Field[] +\begin_inset space ~ +\end_inset + +getFields() +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +SecurityException +\end_layout + +\end_inset + + +\family default + Atributos públicos de la clase. +\end_layout + +\begin_layout Description + +\family typewriter +Class<?>[] +\begin_inset space ~ +\end_inset + +getInterfaces() +\family default + Interfaces que implementa la clase o interfaz. +\end_layout + +\begin_layout Description + +\family typewriter +Method[] +\begin_inset space ~ +\end_inset + +getMethods() +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +SecurityException +\family default + Métodos públicos de la clase o interfaz, incluyendo los de las superclases. +\end_layout + +\begin_layout Description + +\family typewriter +String +\begin_inset space ~ +\end_inset + +getName() +\family default + Nombre de la entidad. +\end_layout + +\begin_layout Description + +\family typewriter +Package +\begin_inset space ~ +\end_inset + +getPackage() +\family default + Paquete en que se encuentra la entidad. +\end_layout + +\begin_layout Description + +\family typewriter +Class<? +\begin_inset space ~ +\end_inset + +super +\begin_inset space ~ +\end_inset + +T> +\begin_inset space ~ +\end_inset + +getSuperClass() +\family default + Superclase de la clase, salvo de +\family typewriter +Object +\family default +. +\end_layout + +\begin_layout Description + +\family typewriter +T +\begin_inset space ~ +\end_inset + +newInstance() +\begin_inset space ~ +\end_inset + +throws +\begin_inset space ~ +\end_inset + +InstantiationException, +\begin_inset space ~ +\end_inset + +IllegalAccessException +\family default + Crea una instancia de la clase con el constructor por defecto, si existe. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +class +\begin_inset space ~ +\end_inset + +ClassNotFoundException +\end_layout + +\end_inset + + +\family default +\series default + No se ha encontrado una definición de la clase indicada. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +class +\begin_inset space ~ +\end_inset + +IllegalAccessException +\family default +\series default + El método actualmente en ejecución no tiene acceso a la definición de la + entidad o el miembro indicado. +\end_layout + +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +InstantiationException +\family default + La clase no tiene constructor por defecto. +\end_layout + +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +Object +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +Class<?> +\begin_inset space ~ +\end_inset + +getClass() +\family default + Devuelve la clase en tiempo de ejecución del objeto. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +class +\begin_inset space ~ +\end_inset + +Package +\family default +\series default + Paquete de código. +\end_layout + +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +SecurityException +\family default + Violación de seguridad. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +package +\begin_inset space ~ +\end_inset + +java.lang.reflect +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Constructor<T> +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +Executable +\family default +\series default + Constructor de la clase +\family typewriter +T +\family default +. +\end_layout + +\begin_layout Description + +\family typewriter +abstract +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Executable +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +AccessibleObject +\begin_inset space ~ +\end_inset + +implements +\begin_inset space ~ +\end_inset + +Member +\family default + +\end_layout + +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Field +\begin_inset space ~ +\end_inset + +implements +\begin_inset space ~ +\end_inset + +Member +\family default + Atributo de una clase. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +public Object get(Object) throws IllegalArgumentException, +\begin_inset Newline newline +\end_inset + +IllegalAccessException +\end_layout + +\end_inset + + +\family default +\series default + Valor del atributo en el objeto indicado. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +public +\begin_inset space ~ +\end_inset + +Class<?> +\begin_inset space ~ +\end_inset + +getType() +\family default + Tipo del atributo. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +public +\begin_inset space ~ +\end_inset + +void +\begin_inset space ~ +\end_inset + +set(Object,Object) +\family default + Establece el valor del atributo en el primer objeto como el segundo objeto. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +Member +\family default + Miembro de una clase. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +Class<?> +\begin_inset space ~ +\end_inset + +getDeclaringClass() +\family default + Clase que declara el miembro. +\end_layout + +\begin_layout Description + +\family typewriter +String +\begin_inset space ~ +\end_inset + +getName() +\family default + Nombre del miembro. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +final +\begin_inset space ~ +\end_inset + +class +\begin_inset space ~ +\end_inset + +Method +\begin_inset space ~ +\end_inset + +extends +\begin_inset space ~ +\end_inset + +Executable +\family default + Método de una clase. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +Class<?>[] +\begin_inset space ~ +\end_inset + +getParameterTypes() +\family default + Tipos de los parámetros del método. +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +Class<?> +\begin_inset space ~ +\end_inset + +getReturnType() +\family default +\series default + Tipo de retorno del método. +\end_layout + +\begin_layout Description + +\family typewriter +Object +\begin_inset space ~ +\end_inset + +invoke(Object,Object...) +\family default + Invoca el método sobre el objeto indicado con los parámetros indicados. + Si el método es estático, el objeto es ignorado y puede ser +\family typewriter +null +\family default +. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Section +Anotaciones +\end_layout + +\begin_layout Standard +La anotaciones en Java permiten adjuntar metadatos al código que pueden + ser leídos por el compilador, herramientas como de generación de código + o el propio programa con introspección. +\end_layout + +\begin_layout Standard +Estas se declaran con un tipo introspección, de la forma [ +\family typewriter +\emph on +visibilidad +\family default +\emph default +] +\family typewriter + @interface +\emph on +Nombre +\emph default + { +\emph on +campo +\family default +\emph default +* +\family typewriter + } +\family default +, donde los campos tienen forma +\family typewriter +\emph on +Tipo +\emph default + +\emph on +nombre +\emph default +() +\family default +[ +\family typewriter +default +\emph on +valor +\family default +\emph default +] +\family typewriter +; +\family default +, siendo +\family typewriter +\emph on +valor +\family default +\emph default + del +\family typewriter +\emph on +Tipo +\family default +\emph default + indicado. + Para anotar un tipo, método, etc., se coloca +\family typewriter +@ +\emph on +Anotación +\emph default +( +\family default +[ +\family typewriter +\emph on +valor +\emph default +, +\family default +...] +\family typewriter +) +\family default + o +\family typewriter +@ +\emph on +Anotación +\emph default +( +\emph on +nombre +\emph default += +\emph on +valor +\emph default +, +\family default +... +\family typewriter +) +\family default + como un modificador de este, normalmente antes del resto de modificadores. +\end_layout + +\begin_layout Standard +Si el valor es de tipo +\family typewriter +T[] +\family default +, se puede indicar una lista de un solo elemento indicando simplemente el + elemento. + Si es un enumerado +\family typewriter +\emph on +Enum +\family default +\emph default +, se puede usar +\family typewriter +\emph on +VAL +\family default +\emph default + en vez de +\family typewriter +\emph on +Enum +\emph default +. +\emph on +VAL +\family default +\emph default +. +\end_layout + +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Target(TYPE) @Retention(RUNTIME) @interface +\begin_inset Newline newline +\end_inset + +FunctionalInterface +\end_layout + +\end_inset + + +\family default +\series default + Indica que lo anotado es una interfaz funcional. +\end_layout + +\begin_layout Description + +\family typewriter +@Target(METHOD) +\begin_inset space ~ +\end_inset + +@Retention(SOURCE) +\begin_inset space ~ +\end_inset + +@interface +\begin_inset space ~ +\end_inset + +Override +\family default + Indica que el método sobrescribe a un método de una superclase. + Genera un error si no es así. +\end_layout + +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE}) +\begin_inset Newline newline +\end_inset + +@Retention(SOURCE) @interface SuppressWarnings +\end_layout + +\end_inset + + +\family default + Suprime las alertas del compilador en el elemento anotado. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +String[] +\begin_inset space ~ +\end_inset + +value +\family default + Conjunto de alertas a suprimir. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang.annotation +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\series bold +interface +\begin_inset space ~ +\end_inset + +Annotation +\family default +\series default + Interfaz implementada por todos los tipos de anotación. +\end_layout + +\begin_deeper +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) @interface +\begin_inset Newline newline +\end_inset + +Documented +\end_layout + +\end_inset + + +\family default +\series default + Indica a javadoc que documente la anotación cuando la encuentre en la definició +n de un tipo. + +\end_layout + +\begin_layout Description + +\family typewriter +\series bold +enum +\begin_inset space ~ +\end_inset + +ElementType +\family default +\series default + Tipo de elemento del programa. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +ANNOTATION_TYPE +\family default + Anotación. +\end_layout + +\begin_layout Description + +\family typewriter +CONSTRUCTOR +\family default + Constructor. +\end_layout + +\begin_layout Description + +\family typewriter +FIELD +\family default + Atributo. +\end_layout + +\begin_layout Description + +\family typewriter +LOCAL_VARIABLE +\family default + Variable local. +\end_layout + +\begin_layout Description + +\family typewriter +METHOD +\family default + Método. +\end_layout + +\begin_layout Description + +\family typewriter +PARAMETER +\family default + Parámetro formal. +\end_layout + +\begin_layout Description + +\family typewriter +TYPE +\family default + Clase, interfaz, enumerado o anotación. +\end_layout + +\begin_layout Description + +\family typewriter +TYPE_PARAMETER +\family default + Parámetro de tipo. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +\series bold +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) @interface +\begin_inset Newline newline +\end_inset + +Retention +\end_layout + +\end_inset + + +\family default +\series default + Indica hasta cuándo se debe retener una anotación. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +RetentionPolicy +\begin_inset space ~ +\end_inset + +value +\family default + Política de retención. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +enum +\begin_inset space ~ +\end_inset + +RetentionPolicy +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +RUNTIME +\family default + La anotación se guarda en el fichero +\family typewriter +.class +\family default + y la JVM la carga para ser leída con introspección. +\end_layout + +\begin_layout Description + +\family typewriter +SOURCE +\family default + El compilador descarta la anotación. +\end_layout + +\end_deeper +\begin_layout Description + +\family typewriter +@Documented +\begin_inset space ~ +\end_inset + +@Retention(RUNTIME) +\begin_inset space ~ +\end_inset + +@Target(ANNOTATION_TYPE) +\begin_inset space ~ +\end_inset + +@interface +\begin_inset space ~ +\end_inset + +Target +\family default + Indica los contextos en que se puede aplicar una anotación. +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +ElementType[] +\begin_inset space ~ +\end_inset + +value +\family default + Cuándo es la anotación aplicable. +\end_layout + +\end_deeper +\end_deeper +\begin_layout Description + +\family typewriter +package +\begin_inset space ~ +\end_inset + +java.lang.reflect +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +class +\begin_inset space ~ +\end_inset + +AccessibleObject +\begin_inset space ~ +\end_inset + +implements +\begin_inset space ~ +\end_inset + +AnnotatedElement +\end_layout + +\begin_layout Description + +\family typewriter +interface +\begin_inset space ~ +\end_inset + +AnnotatedElement +\end_layout + +\begin_deeper +\begin_layout Description + +\family typewriter +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "100col%" +special "none" +height "1in" +height_special "totalheight" +thickness "0.4pt" +separation "3pt" +shadowsize "4pt" +framecolor "black" +backgroundcolor "none" +status open + +\begin_layout Plain Layout + +\family typewriter +\series bold +default boolean isAnnotationPresent(Class<? extends Annotation>) +\end_layout + +\end_inset + + +\family default + Indica si el elemento incluye alguna anotación del tipo especificado. +\end_layout + +\begin_layout Description +... +\end_layout + +\end_deeper +\end_deeper +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Section +Inyección de dependencias +\end_layout + +\begin_layout Plain Layout +No entra en el examen. +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document @@ -333,7 +333,7 @@ Dados \end_inset y -\begin_inset Formula $\beta\in{\cal C}(y,z)$ +\begin_inset Formula $\beta\in{\cal C}(X,y,z)$ \end_inset , llamamos |
