diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | aalg/n4.lyx | 2 | ||||
| -rw-r--r-- | anm/n1.lyx | 58 | ||||
| -rw-r--r-- | aoc/n.lyx | 31 | ||||
| -rw-r--r-- | aoc/n3.lyx | 1162 | ||||
| -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-- | mne/n.lyx | 14 | ||||
| -rw-r--r-- | mne/n2.lyx | 2 | ||||
| -rw-r--r-- | mne/n3.lyx | 550 | ||||
| -rw-r--r-- | si/n.lyx | 60 | ||||
| -rw-r--r-- | si/n3.lyx | 6 | ||||
| -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 |
22 files changed, 13463 insertions, 56 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 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 - @@ -176,6 +176,10 @@ Weak consistency \emph on Release consistency \emph default +, +\emph on +Load-link/store-conditional, Hypergraph +\emph default . \end_layout @@ -199,6 +203,33 @@ ACM SIGARCH Computer Architecture News 234-243. \end_layout +\begin_layout Itemize + +\lang english +MIPS Technologies Inc +\lang spanish +. + (2008). + +\emph on +\lang english +MIPS32® Instruction Set Quick Reference +\emph default +\lang spanish + ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://www.cs.duke.edu/courses/fall13/compsci250/MIPS32_QRC.pdf +\end_layout + +\end_inset + +). +\end_layout + \begin_layout Chapter Introducción \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 @@ -1248,8 +1292,7 @@ Este es el modelo usado por C, C++ y Java, status open \begin_layout Plain Layout -C, C++ y Rust usan el mismo modelo, que también incluye consistencia débil, - aunque esta se puede implementar a través de consistencia de liberación. +C, C++ y Rust usan el mismo modelo, que también incluye consistencia débil. \end_layout \end_inset @@ -1260,7 +1303,7 @@ C, C++ y Rust usan el mismo modelo, que también incluye consistencia débil, \end_deeper \begin_layout Standard Los accesos a memoria marcados especialmente se suelen traducir en ensamblador - como + como barreras de memoria o \emph on \lang english memory fences @@ -1283,5 +1326,1106 @@ fences necesarias. \end_layout +\begin_layout Section +Semáforos +\end_layout + +\begin_layout Standard +La comunicación y compartición de recursos entre procesos requiere de mecanismos + de sincronización, como son: +\end_layout + +\begin_layout Itemize +Semáforos o cerrojos para la exclusión mutua. +\end_layout + +\begin_layout Itemize + +\series bold +Señales +\series default + para la sincronización punto a punto, en que uno o más hilos esperan a + que otro envíe una señal. +\end_layout + +\begin_layout Itemize + +\series bold +Barreras +\series default + para sincronización global, que impiden que los hilos sigan avanzando hasta + que todos lleguen a cierto punto de su ejecución. +\end_layout + +\begin_layout Standard +Las implementaciones de exclusión mutua constan de: +\end_layout + +\begin_layout Enumerate +Un +\series bold +método de adquisición +\series default + para obtener el cerrojo, con poca latencia si no hay más hilos intentando + sincronizarse. +\end_layout + +\begin_layout Enumerate +Un +\series bold +algoritmo de espera +\series default + para esperar a que el cerrojo esté disponible cuando no lo esté, y que + consuma poco ancho de banda de la red de interconexión. +\end_layout + +\begin_layout Enumerate +Un +\series bold +método de liberación +\series default + para notificar que el cerrojo está disponible, que sea suficientemente + imparcial y no provoque inanición. +\end_layout + +\begin_layout Standard +Es importante que el protocolo sea escalable y requiera poca información + para funcionar. + Estos protocolos se pueden implementar con consistencia secuencial, pero + el resultado es complicado e ineficiente, por lo que es más común ampliar + el ISA con instrucciones atómicas de sincronización, que actúan como barreras. + Algunas son: +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Test&set +\series default +\emph default +: 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 +lock: t&s t0, MUTEX; bnez t0, lock +\family default + y se desbloquearía con +\family typewriter +sw r0, LOCK +\family default +. + Cuando el cerrojo está ocupado, esto genera invalidaciones continuas, por + lo que es preferible usar +\emph on +\lang english +test&test&set +\emph default +\lang spanish +, comprobando con una carga normal si el cerrojo está disponible antes de + obtenerlo: +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + +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 + +Esto aumenta algo la latencia pero reduce el tráfico entre cachés y es más + escalable. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +\lang english +Swap +\series default +\emph default +\lang spanish +: Intercambia los valores de un registro y una posición de memoria. + Se puede usar como +\family typewriter +t&s +\family default + estableciendo el registro a 1. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +\lang english +Fetch&op +\series default +\emph default +\lang spanish +: Lee una posición de memoria un registro y escribe en memoria el valor + obtenido al aplicar una cierta operación. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +\lang english +Compare&swap +\series default +\emph default +\lang spanish +: Compara el valor en una posición de memoria con el de un registro y, si + coinciden, intercambia el contenido de la posición con el de otro registro. +\end_layout + +\begin_layout Standard +Estas instrucciones son difíciles de implementar y lentas, y una alternativa + es el par +\lang english +LL +\lang spanish +/ +\lang english +SC +\lang spanish +, formado por las instrucciones: +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +\lang english +Load Linked +\series default +\emph default +\lang spanish + ( +\lang english +LL +\lang spanish +): Lee una posición de memoria en un registro. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +\lang english +Store Conditional +\series default +\emph default +\lang spanish + ( +\lang english +SC +\lang spanish +): Si, en el bloque (normalmente de caché) de la posición de memoria indicada, + nadie ha escrito desde el último +\lang english +LL +\lang spanish +, escribe el valor del registro en la posición. + Si alguien ha escrito antes, la instrucción falla; ni escribe ni hay invalidaci +ones. +\begin_inset Foot +status open + +\begin_layout Plain Layout +En la práctica esto puede ocurrir cuando hay una interrupción, cambio de + contexto, otro LL, una escritura a otro bloque, etc. +\end_layout + +\end_inset + + También establece algún registro para indicar si la instrucción tuvo éxito. +\end_layout + +\begin_layout Standard +Se ha de ejecutar el mínimo de operaciones posible entre +\lang english +LL +\lang spanish + y +\lang english +SC +\lang spanish + para favorecer que +\lang english +SC +\lang spanish + tenga éxito. + Un cerrojo se bloquearía con +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + + 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 + + +\end_layout + +\begin_layout Standard +Esta implementación tiene buen rendimiento, pues la espera activa no genera + tráfico ni invalidaciones, pero no es imparcial. +\end_layout + +\begin_layout Section +Redes de interconexión +\end_layout + +\begin_layout Standard +En sistemas con varias CPUs puede haber +\series bold +interconexión +\emph on +\lang english +on-chip +\series default +\emph default +\lang spanish +, 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 Subsection +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 + + +\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 @@ -194,5 +194,19 @@ filename "n2.lyx" \end_layout +\begin_layout Chapter +Métodos de paso variable +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n3.lyx" + +\end_inset + + +\end_layout + \end_body \end_document @@ -646,7 +646,7 @@ métodos de Runge-Kutta 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})), +\omega_{i+1} & :=\omega_{i}+h\sum_{j=1}^{s}b_{j}k_{j}, & k_{1} & :=f(t_{i},\omega_{i}), & k_{j>1} & :=f(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 diff --git a/mne/n3.lyx b/mne/n3.lyx new file mode 100644 index 0000000..2c12115 --- /dev/null +++ b/mne/n3.lyx @@ -0,0 +1,550 @@ +#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 +Dados un problema de valores iniciales +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{x}(t) & =f(t,x(t)),\\ +x(a) & =x_{0} +\end{aligned} +\right. +\] + +\end_inset + +y una solución aproximada +\begin_inset Formula $(t_{i},\omega_{i})_{i=0}^{n}$ +\end_inset + + del problema, llamamos +\series bold +solución local +\series default + +\begin_inset Formula $z_{i}$ +\end_inset + + a la solución del problema +\begin_inset Formula +\[ +\left\{ \begin{aligned}\dot{z}_{i}(t) & =f(t,z_{i}(t)),\\ +z_{i}(t_{i}) & =\omega_{i}. +\end{aligned} +\right. +\] + +\end_inset + +Como +\series bold +teorema +\series default +, si +\begin_inset Formula $f$ +\end_inset + + es lipschitziana de constante +\begin_inset Formula $k>0$ +\end_inset + + y existe +\begin_inset Formula $\varepsilon>0$ +\end_inset + + tal que +\begin_inset Formula $\Vert z_{i}(t_{i+1})-\omega_{i+1}\Vert\leq\varepsilon(t_{i+1}-t_{i})$ +\end_inset + + para cada +\begin_inset Formula $i\in\{0,\dots,n-1\}$ +\end_inset + +, entonces +\begin_inset Formula +\[ +\Vert y(t_{n})-\omega_{n}\Vert\leq e^{k(t_{n}-a)}\Vert y(t_{0})-\omega_{0}\Vert+\frac{e^{k(t_{n}-a)}-1}{k}\varepsilon. +\] + +\end_inset + +Si el método es un +\series bold +método en diferencias +\series default +, uno de la forma +\begin_inset Formula $t_{i+1}=t_{i}+h_{i}$ +\end_inset + + y +\begin_inset Formula $\omega_{i+1}=\omega_{i}+h_{i}Ø(t_{i},\omega_{i},h_{i})$ +\end_inset + +, y si +\begin_inset Formula $z_{i}(t_{i})\cong x(t_{i})\cong\omega_{i}$ +\end_inset + +, el +\series bold +criterio de error local +\series default + para algún +\begin_inset Formula $\varepsilon>0$ +\end_inset + + e +\begin_inset Formula $i\in\{0,\dots,n-1\}$ +\end_inset + + consiste en que +\begin_inset Formula +\[ +\Vert\tau_{i+1}(h_{i})\Vert:=\frac{\Vert x(t_{i+1})-x(t_{i})-h_{i}Ø(t_{i},x(t_{i}),h_{i})\Vert}{h_{i}}\leq\varepsilon. +\] + +\end_inset + +Si +\begin_inset Formula $z_{i}(t_{i})\approxeq x(t_{i})\approxeq\omega_{i}$ +\end_inset + +, se tiene +\begin_inset Formula +\[ +\Vert\tau_{i+1}(h_{i})\Vert\approx\cong\frac{\Vert z_{i}(t_{i+1})-\omega_{i+1}\Vert}{h}. +\] + +\end_inset + +Queremos ajustar el paso automáticamente para mantener el error local dentro + de ciertos límites y economizar en número de cálculos. +\end_layout + +\begin_layout Section +Extrapolación de Richardson +\end_layout + +\begin_layout Standard +Como +\series bold +teorema +\series default +, si el método en diferencias +\begin_inset Formula $\omega_{i+1}=\omega_{i}+h_{i}Ø(t_{i},\omega_{i},h_{i})$ +\end_inset + + verifica en cada paso que +\begin_inset Formula $z_{i}(t_{i+1})=\omega_{i+1}+cz_{i}^{(k+1)}(t_{i})h^{k+1}+O(h^{k+2})$ +\end_inset + + para ciertos +\begin_inset Formula $c\in\mathbb{R}$ +\end_inset + + y +\begin_inset Formula $k\in\mathbb{N}$ +\end_inset + +, sean +\begin_inset Formula $h:=h_{i}$ +\end_inset + + y +\begin_inset Formula $(t_{i+1},Y)$ +\end_inset + + el resultado de dar dos pasos desde +\begin_inset Formula $(t_{i},\omega_{i})$ +\end_inset + + con el método de paso fijo +\begin_inset Formula $\xi_{j+1}=\xi_{j}+\frac{h}{2}Ø(t_{j},\xi_{j},\frac{h}{2})$ +\end_inset + +, entonces +\begin_inset Formula +\[ +z_{i}(t_{i+1})=Y+2cz_{i}^{(k+1)}(t_{i})\left(\frac{h}{2}\right)^{k+1}+O(h^{k+2}). +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +En estas condiciones: +\end_layout + +\begin_layout Enumerate +\begin_inset Formula +\[ +z_{i}(t_{i+1})=\frac{2^{k}Y-\omega_{i+1}}{2^{k}-1}+O(h^{k+2}). +\] + +\end_inset + + +\end_layout + +\begin_deeper +\begin_layout Standard +Multiplicando por +\begin_inset Formula $2^{k}$ +\end_inset + + el resultado del teorema y restando la fórmula de la hipótesis, +\begin_inset Formula +\begin{align*} +(2^{k}-1)z_{i}(t_{i+1}) & =2^{k}Y+2^{k+1}cz_{i}^{(k+1)}(t_{i})\left(\frac{h}{2}\right)^{k+1}-cz_{i}^{(k+1)}(t_{i})h^{k+1}-\omega_{i+1}+O(h^{k+2})\\ + & \overset{2^{k}\left(\frac{h}{2}\right)^{k+1}=h^{k+1}}{=}2^{k}Y-\omega_{i+1}. +\end{align*} + +\end_inset + + +\end_layout + +\end_deeper +\begin_layout Enumerate +\begin_inset Formula +\[ +z_{i}(t_{i+1})-\omega_{i+1}=\frac{2^{k}}{2^{k}-1}(Y-\omega_{i+1})+O(h^{k+2}). +\] + +\end_inset + + +\end_layout + +\begin_deeper +\begin_layout Standard +Restando +\begin_inset Formula $\omega_{i+1}$ +\end_inset + + a ambas partes de lo anterior. +\end_layout + +\end_deeper +\begin_layout Standard +Para un +\begin_inset Formula $\varepsilon>0$ +\end_inset + +, queremos que +\begin_inset Formula $\Vert z_{i}(t_{i+1})-\omega_{i+1}\Vert<\varepsilon h_{i}$ +\end_inset + +. + El siguiente es un método práctico para dar un paso de tamaño adaptativo: +\end_layout + +\begin_layout Enumerate +Dar un paso con +\begin_inset Formula $h$ +\end_inset + + para obtener +\begin_inset Formula $\omega_{i+1}$ +\end_inset + + y dos con +\begin_inset Formula $\frac{h}{2}$ +\end_inset + + para obtener +\begin_inset Formula $Y_{h}$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +Obtener el error +\begin_inset Formula $E:=\frac{2^{k}}{2^{k}-1}\Vert Y-\omega_{i+1}\Vert\approx\Vert z_{i}(t_{i+1})-\omega_{i+1}\Vert$ +\end_inset + +. +\end_layout + +\begin_layout Enumerate +Si +\begin_inset Formula $E>\varepsilon h$ +\end_inset + +, ajustar +\begin_inset Formula $h$ +\end_inset + + y volver a intentar desde el principio. +\end_layout + +\begin_layout Enumerate +Aceptar el paso +\begin_inset Formula $(t_{i}+h,\omega_{i+1})$ +\end_inset + + y ajustar +\begin_inset Formula $h$ +\end_inset + + para el siguiente paso. +\end_layout + +\begin_layout Standard +Para ajustar el paso: +\end_layout + +\begin_layout Enumerate +Calcular +\begin_inset Formula $q:=\left(\frac{\varepsilon h}{2E}\right)^{1/k}$ +\end_inset + + y +\begin_inset Formula $q':=\min\{4,\max\{0.1,q\}\}$ +\end_inset + +, y hacer +\begin_inset Formula $h\gets q'h$ +\end_inset + +. +\end_layout + +\begin_deeper +\begin_layout Standard +Para cierta constante +\begin_inset Formula $C$ +\end_inset + +, si +\begin_inset Formula $y$ +\end_inset + + es el resultado de aplicar un paso de tamaño +\begin_inset Formula $qh$ +\end_inset + +, +\begin_inset Formula $\Vert z_{i}(t_{i}+qh)-y\Vert\approx C(qh)^{k+1}=Cq^{k+1}h^{k+1}\approx q^{k+1}\Vert z_{i}(t_{i+1})-\omega_{i+1}\Vert\approx q^{k+1}E$ +\end_inset + +, pero +\begin_inset Formula $q^{k+1}E\leq\varepsilon qh\iff q^{k}E\leq\varepsilon h\iff q\leq\left(\frac{\varepsilon h}{E}\right)^{1/k}$ +\end_inset + +. + Entonces usamos +\begin_inset Formula $2E$ +\end_inset + + en vez de +\begin_inset Formula $E$ +\end_inset + + para tener cierto margen para evitar re-calcular y añadimos límites en + +\begin_inset Formula $q'$ +\end_inset + + por estabilidad. +\end_layout + +\end_deeper +\begin_layout Enumerate +Usando umbrales +\begin_inset Formula $h_{\min}$ +\end_inset + + y +\begin_inset Formula $h_{\max}$ +\end_inset + + para el paso, si +\begin_inset Formula $|h|<h_{\min}$ +\end_inset + +, informamos de un error, pues los errores de redondeo serían demasiado + grandes, y si +\begin_inset Formula $|h|>h_{\max}$ +\end_inset + +, hacemos +\begin_inset Formula $h\gets h_{\max}\text{sgn}h$ +\end_inset + +. +\end_layout + +\begin_layout Section +Método de Runge-Kutta-Fehlberg +\end_layout + +\begin_layout Standard +Dados dos métodos de Runge-Kutta con los mismos pasos, +\begin_inset Formula $(\omega_{i})$ +\end_inset + + de orden +\begin_inset Formula $p$ +\end_inset + + y +\begin_inset Formula $(\tilde{\omega}_{i})$ +\end_inset + + de orden +\begin_inset Formula $p+1$ +\end_inset + +, +\begin_inset Formula $z_{i}(t_{i+1})-\omega_{i+1}\approx\tilde{\omega}_{i+1}-\omega_{i+1}$ +\end_inset + +. + En efecto, para ciertos +\begin_inset Formula $C_{1},C_{2}\in\mathbb{R}$ +\end_inset + +, +\begin_inset Formula $z_{i}(t_{i}+h)-\omega_{i+1}\approx C_{1}h^{p+1}+O(h^{p+2})$ +\end_inset + + y +\begin_inset Formula $\tilde{z}_{i}(t_{i+1})-\tilde{\omega}_{i+1}\approx C_{2}h^{p+2}+O(h^{p+3})$ +\end_inset + +, luego +\begin_inset Formula $z_{i}(t_{i}+h)-\omega_{i+1}\approx\tilde{z}_{i}(t_{i+1})-\tilde{\omega}_{i+1}+\tilde{\omega}_{i+1}-\omega_{i+1}\approx\tilde{\omega}_{i+1}-\omega_{i+1}+O(h^{p+2})$ +\end_inset + +. +\end_layout + +\begin_layout Standard +El +\series bold +método de Runge-Kutta-Fehlberg +\series default + consiste en usar esta aproximación del error +\begin_inset Formula $E$ +\end_inset + + en el método anterior de paso adaptativo con los siguientes dos métodos + de Runge-Kutta que tienen los mismos +\begin_inset Formula $k_{i}$ +\end_inset + +: +\end_layout + +\begin_layout Standard +\begin_inset Formula +\[ +\begin{array}{c|ccccc} +\frac{1}{4} & \frac{1}{4}\\ +\frac{3}{8} & \frac{3}{32} & \frac{9}{32}\\ +\frac{12}{13} & \frac{1932}{2197} & -\frac{7200}{2197} & \frac{7296}{2197}\\ +1 & \frac{439}{216} & -8 & \frac{3680}{513} & -\frac{845}{4104}\\ +\frac{1}{2} & -\frac{8}{27} & 2 & -\frac{443}{332} & \frac{1859}{4104} & -\frac{11}{40}\\ +\hline \omega: & \frac{25}{216} & \frac{1408}{2565} & \frac{2197}{4104} & -\frac{1}{5}\\ +\tilde{\omega}: & \frac{16}{135} & \frac{6656}{12825} & \frac{28561}{56430} & -\frac{9}{50} & \frac{2}{55} +\end{array} +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +El método +\begin_inset Formula $\omega$ +\end_inset + + es de orden 4 y +\begin_inset Formula $\tilde{\omega}$ +\end_inset + + es de orden 5. +\end_layout + +\end_body +\end_document @@ -189,6 +189,10 @@ Frame (artificial intelligence) \emph on And–or tree \emph default +, +\emph on +Formal system +\emph default . \end_layout @@ -287,5 +291,61 @@ filename "n3.lyx" \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 @@ -1486,9 +1486,11 @@ gets n$ \backslash -Repetir{para $(u_i,S) +Repetir{$ \backslash -in A$ sea $S +forall(u_i,S) +\backslash +in A,S \backslash nsubseteq R$}{ \end_layout 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 |
