Upload via hfc (batch)
Browse filesUploaded using hfc tool
- .gitattributes +10 -0
- a/Curso de Matemáticas Discretas/05-Árboles/04-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/05-Árboles/05-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/05-Árboles/05-Tipos de Árboles Binarios y sus Características.mp4 +3 -0
- a/Curso de Matemáticas Discretas/05-Árboles/05-Tipos de Árboles Binarios y sus Características.vtt +310 -0
- a/Curso de Matemáticas Discretas/05-Árboles/06-Recorridos de Árboles Preorden Inorden y Posorden.mp4 +3 -0
- a/Curso de Matemáticas Discretas/05-Árboles/06-Recorridos de Árboles Preorden Inorden y Posorden.vtt +613 -0
- a/Curso de Matemáticas Discretas/05-Árboles/06-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/05-Árboles/07-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/05-Árboles/07-Árboles Binarios para Expresiones Aritméticas.mp4 +3 -0
- a/Curso de Matemáticas Discretas/05-Árboles/07-Árboles Binarios para Expresiones Aritméticas.vtt +631 -0
- a/Curso de Matemáticas Discretas/05-Árboles/08-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/05-Árboles/08-Transformación de Expresiones Aritméticas en Árboles Binarios.mp4 +3 -0
- a/Curso de Matemáticas Discretas/05-Árboles/08-Transformación de Expresiones Aritméticas en Árboles Binarios.vtt +325 -0
- a/Curso de Matemáticas Discretas/05-Árboles/09-Árboles Altura Niveles y Recorridos Ordenados.mhtml +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/01-Algoritmo de Prim Árbol de Expansión Mínimo en Grafos.mp4 +3 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/01-Algoritmo de Prim Árbol de Expansión Mínimo en Grafos.vtt +550 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/01-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/02-Algoritmo de Dijkstra Ruta Óptima y Coste Mínimo.mp4 +3 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/02-Algoritmo de Dijkstra Ruta Óptima y Coste Mínimo.vtt +514 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/02-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/03-Algoritmo de Kruskal.mp4 +3 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/03-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/04-Algoritmo de Flury Encontrar Ciclos Eulerianos en Grafos.mp4 +3 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/04-Algoritmo de Flury Encontrar Ciclos Eulerianos en Grafos.vtt +427 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/04-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/05-Algoritmo de Flujo Máximo en Redes Dirigidas.mp4 +3 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/05-Algoritmo de Flujo Máximo en Redes Dirigidas.vtt +640 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/05-Resumen.html +0 -0
- a/Curso de Matemáticas Discretas/06-Algoritmos/06-Algoritmos de Grafos Prim Dijkstra Kruskal y Fleury.mhtml +0 -0
- a/Curso de Matemáticas Discretas/07-Conclusiones/01-Repaso Final de Matemáticas Discretas Lógica Conjuntos y Algoritmos.mp4 +3 -0
- a/Curso de Matemáticas Discretas/07-Conclusiones/01-Repaso Final de Matemáticas Discretas Lógica Conjuntos y Algoritmos.vtt +58 -0
- a/Curso de Matemáticas Discretas/07-Conclusiones/01-Resumen.html +0 -0
.gitattributes
CHANGED
|
@@ -669,3 +669,13 @@ a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/01-
|
|
| 669 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/02-Estructuras[[:space:]]de[[:space:]]Árboles[[:space:]]en[[:space:]]Programación[[:space:]]y[[:space:]]Jerarquías[[:space:]]de[[:space:]]Datos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 670 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/03-Conceptos[[:space:]]Básicos[[:space:]]de[[:space:]]Estructuras[[:space:]]de[[:space:]]Árboles[[:space:]]en[[:space:]]Informática.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 671 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/04-Árbol[[:space:]]de[[:space:]]Expansión[[:space:]]Mínima[[:space:]]Conexión[[:space:]]Óptima[[:space:]]de[[:space:]]Nodos.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 669 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/02-Estructuras[[:space:]]de[[:space:]]Árboles[[:space:]]en[[:space:]]Programación[[:space:]]y[[:space:]]Jerarquías[[:space:]]de[[:space:]]Datos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 670 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/03-Conceptos[[:space:]]Básicos[[:space:]]de[[:space:]]Estructuras[[:space:]]de[[:space:]]Árboles[[:space:]]en[[:space:]]Informática.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 671 |
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/04-Árbol[[:space:]]de[[:space:]]Expansión[[:space:]]Mínima[[:space:]]Conexión[[:space:]]Óptima[[:space:]]de[[:space:]]Nodos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 672 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/05-Tipos[[:space:]]de[[:space:]]Árboles[[:space:]]Binarios[[:space:]]y[[:space:]]sus[[:space:]]Características.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 673 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/06-Recorridos[[:space:]]de[[:space:]]Árboles[[:space:]]Preorden[[:space:]]Inorden[[:space:]]y[[:space:]]Posorden.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 674 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/07-Árboles[[:space:]]Binarios[[:space:]]para[[:space:]]Expresiones[[:space:]]Aritméticas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 675 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/05-Árboles/08-Transformación[[:space:]]de[[:space:]]Expresiones[[:space:]]Aritméticas[[:space:]]en[[:space:]]Árboles[[:space:]]Binarios.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 676 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/06-Algoritmos/01-Algoritmo[[:space:]]de[[:space:]]Prim[[:space:]]Árbol[[:space:]]de[[:space:]]Expansión[[:space:]]Mínimo[[:space:]]en[[:space:]]Grafos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 677 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/06-Algoritmos/02-Algoritmo[[:space:]]de[[:space:]]Dijkstra[[:space:]]Ruta[[:space:]]Óptima[[:space:]]y[[:space:]]Coste[[:space:]]Mínimo.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 678 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/06-Algoritmos/03-Algoritmo[[:space:]]de[[:space:]]Kruskal.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 679 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/06-Algoritmos/04-Algoritmo[[:space:]]de[[:space:]]Flury[[:space:]]Encontrar[[:space:]]Ciclos[[:space:]]Eulerianos[[:space:]]en[[:space:]]Grafos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 680 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/06-Algoritmos/05-Algoritmo[[:space:]]de[[:space:]]Flujo[[:space:]]Máximo[[:space:]]en[[:space:]]Redes[[:space:]]Dirigidas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 681 |
+
a/Curso[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas/07-Conclusiones/01-Repaso[[:space:]]Final[[:space:]]de[[:space:]]Matemáticas[[:space:]]Discretas[[:space:]]Lógica[[:space:]]Conjuntos[[:space:]]y[[:space:]]Algoritmos.mp4 filter=lfs diff=lfs merge=lfs -text
|
a/Curso de Matemáticas Discretas/05-Árboles/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/05-Árboles/05-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/05-Árboles/05-Tipos de Árboles Binarios y sus Características.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:410f69d183ac4e2f0813bf5cf5ac5a39e299a74790163a6f1b2dbc5914bcaad7
|
| 3 |
+
size 61250064
|
a/Curso de Matemáticas Discretas/05-Árboles/05-Tipos de Árboles Binarios y sus Características.vtt
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.000 --> 00:00:06.819
|
| 4 |
+
Un árbol binario es un árbol donde máximo
|
| 5 |
+
|
| 6 |
+
00:00:07.120 --> 00:00:10.000
|
| 7 |
+
tenemos dos hijos por cada uno de los
|
| 8 |
+
|
| 9 |
+
00:00:10.000 --> 00:00:13.440
|
| 10 |
+
vértices. En la siguiente imagen podemos apreciar lo
|
| 11 |
+
|
| 12 |
+
00:00:13.440 --> 00:00:17.035
|
| 13 |
+
que sería un árbol binario. Vemos que ninguno
|
| 14 |
+
|
| 15 |
+
00:00:17.035 --> 00:00:20.075
|
| 16 |
+
de esos nodos, por ejemplo, tiene más de
|
| 17 |
+
|
| 18 |
+
00:00:20.075 --> 00:00:21.995
|
| 19 |
+
dos hijos. Vemos que el nodo b, por
|
| 20 |
+
|
| 21 |
+
00:00:21.995 --> 00:00:24.075
|
| 22 |
+
ejemplo, tiene dos hijos, que el nodo g
|
| 23 |
+
|
| 24 |
+
00:00:24.075 --> 00:00:26.735
|
| 25 |
+
tiene dos hijos, y que los otros tienen
|
| 26 |
+
|
| 27 |
+
00:00:26.955 --> 00:00:30.190
|
| 28 |
+
un solo hijo. A esto le denominamos un
|
| 29 |
+
|
| 30 |
+
00:00:30.190 --> 00:00:33.150
|
| 31 |
+
árbol binario, bi, que viene de dos. Cuando
|
| 32 |
+
|
| 33 |
+
00:00:33.150 --> 00:00:36.590
|
| 34 |
+
hablamos de árbol binario, tenemos que tener en
|
| 35 |
+
|
| 36 |
+
00:00:36.590 --> 00:00:40.370
|
| 37 |
+
cuenta nuevamente la anotación, donde el nodo que
|
| 38 |
+
|
| 39 |
+
00:00:40.510 --> 00:00:43.070
|
| 40 |
+
esté por el mayor nivel lo vamos a
|
| 41 |
+
|
| 42 |
+
00:00:43.070 --> 00:00:47.574
|
| 43 |
+
denominar padre Y vamos a utilizar, no solo
|
| 44 |
+
|
| 45 |
+
00:00:47.574 --> 00:00:50.055
|
| 46 |
+
hijos, sino que como solo tenemos dos posibles
|
| 47 |
+
|
| 48 |
+
00:00:50.055 --> 00:00:53.175
|
| 49 |
+
opciones, vamos a tener o hijo izquierdo o
|
| 50 |
+
|
| 51 |
+
00:00:53.175 --> 00:00:57.254
|
| 52 |
+
hijo derecho, ¿de acuerdo? Y es necesario que
|
| 53 |
+
|
| 54 |
+
00:00:57.254 --> 00:00:59.820
|
| 55 |
+
cada nodo, si tiene hijos, pues cada nodo
|
| 56 |
+
|
| 57 |
+
00:00:59.820 --> 00:01:03.660
|
| 58 |
+
puede ser padre nuevamente. Por ejemplo, este nodo
|
| 59 |
+
|
| 60 |
+
00:01:03.660 --> 00:01:07.180
|
| 61 |
+
b que vemos allí es hijo izquierdo de
|
| 62 |
+
|
| 63 |
+
00:01:07.180 --> 00:01:10.560
|
| 64 |
+
ese nodo a, que es el padre, ¿verdad?
|
| 65 |
+
|
| 66 |
+
00:01:11.180 --> 00:01:14.155
|
| 67 |
+
Pero ese nodo b también es padre, también
|
| 68 |
+
|
| 69 |
+
00:01:14.155 --> 00:01:17.115
|
| 70 |
+
es padre y también puede ser raíz de
|
| 71 |
+
|
| 72 |
+
00:01:17.115 --> 00:01:19.115
|
| 73 |
+
el nodo d, que en este caso sería
|
| 74 |
+
|
| 75 |
+
00:01:19.115 --> 00:01:22.475
|
| 76 |
+
su hijo izquierdo y el e que sería
|
| 77 |
+
|
| 78 |
+
00:01:22.475 --> 00:01:25.595
|
| 79 |
+
su hijo derecho. De la misma manera el
|
| 80 |
+
|
| 81 |
+
00:01:25.595 --> 00:01:28.230
|
| 82 |
+
nodo c, por ejemplo, también podría ser padre
|
| 83 |
+
|
| 84 |
+
00:01:28.230 --> 00:01:30.630
|
| 85 |
+
del nodo f y el nodo f es
|
| 86 |
+
|
| 87 |
+
00:01:30.630 --> 00:01:33.670
|
| 88 |
+
padre del nodo g. Y así es como
|
| 89 |
+
|
| 90 |
+
00:01:33.670 --> 00:01:36.790
|
| 91 |
+
nos vamos a identificar, cómo vamos a poder
|
| 92 |
+
|
| 93 |
+
00:01:36.790 --> 00:01:41.325
|
| 94 |
+
recorrer los árboles más adelante. Antes de iniciar
|
| 95 |
+
|
| 96 |
+
00:01:41.325 --> 00:01:43.085
|
| 97 |
+
lo que es el recorrido de árboles, quiero
|
| 98 |
+
|
| 99 |
+
00:01:43.085 --> 00:01:46.605
|
| 100 |
+
que observemos algunos tipos de árboles binarios que
|
| 101 |
+
|
| 102 |
+
00:01:46.605 --> 00:01:50.365
|
| 103 |
+
podemos encontrar cuando nosotros trabajamos. El primero de
|
| 104 |
+
|
| 105 |
+
00:01:50.365 --> 00:01:53.430
|
| 106 |
+
ellos es el árbol binario completo. Y ¿por
|
| 107 |
+
|
| 108 |
+
00:01:53.430 --> 00:01:56.549
|
| 109 |
+
qué se le llama completo? Porque este árbol
|
| 110 |
+
|
| 111 |
+
00:01:56.549 --> 00:01:59.590
|
| 112 |
+
tiene o dos hijos, es decir sus dos
|
| 113 |
+
|
| 114 |
+
00:01:59.590 --> 00:02:02.009
|
| 115 |
+
ramas bien definidas o no tiene ninguna. Como
|
| 116 |
+
|
| 117 |
+
00:02:02.710 --> 00:02:05.689
|
| 118 |
+
vemos allí en pantallas, el nodo d tiene
|
| 119 |
+
|
| 120 |
+
00:02:05.990 --> 00:02:09.215
|
| 121 |
+
cero, el nodo e tiene dos, el nodo
|
| 122 |
+
|
| 123 |
+
00:02:09.215 --> 00:02:11.335
|
| 124 |
+
f tiene cero, y el nodo g tiene
|
| 125 |
+
|
| 126 |
+
00:02:11.335 --> 00:02:13.895
|
| 127 |
+
cero. Esas son las dos opciones. O el
|
| 128 |
+
|
| 129 |
+
00:02:13.895 --> 00:02:16.695
|
| 130 |
+
nodo no tiene hijos o tiene sus dos
|
| 131 |
+
|
| 132 |
+
00:02:16.695 --> 00:02:19.335
|
| 133 |
+
hijos completos, ¿de acuerdo? Y a eso le
|
| 134 |
+
|
| 135 |
+
00:02:19.335 --> 00:02:22.350
|
| 136 |
+
vamos a llamar un árbol binario completo. Hay
|
| 137 |
+
|
| 138 |
+
00:02:22.350 --> 00:02:24.190
|
| 139 |
+
otro tipo de árbol que se llama un
|
| 140 |
+
|
| 141 |
+
00:02:24.190 --> 00:02:27.150
|
| 142 |
+
árbol binario lleno. Lo podemos ver allí en
|
| 143 |
+
|
| 144 |
+
00:02:27.150 --> 00:02:30.270
|
| 145 |
+
pantallas. Y tú dirás, bueno, pero yo los
|
| 146 |
+
|
| 147 |
+
00:02:30.270 --> 00:02:33.470
|
| 148 |
+
veo exactamente iguales, o tienen dos hijos o
|
| 149 |
+
|
| 150 |
+
00:02:33.470 --> 00:02:36.735
|
| 151 |
+
tienen cero hijos. Sí, en parte tienes razón.
|
| 152 |
+
|
| 153 |
+
00:02:36.875 --> 00:02:39.755
|
| 154 |
+
La diferencia es que todos llegan hasta un
|
| 155 |
+
|
| 156 |
+
00:02:39.755 --> 00:02:42.795
|
| 157 |
+
mismo nivel. Como podemos ver, en el árbol
|
| 158 |
+
|
| 159 |
+
00:02:42.795 --> 00:02:46.155
|
| 160 |
+
binario completo, el nodo b tiene un nivel
|
| 161 |
+
|
| 162 |
+
00:02:46.155 --> 00:02:50.260
|
| 163 |
+
más de hijos, mientras que los otros nodos
|
| 164 |
+
|
| 165 |
+
00:02:50.260 --> 00:02:53.980
|
| 166 |
+
DFYG se quedaron más atrás. En el árbol
|
| 167 |
+
|
| 168 |
+
00:02:53.980 --> 00:02:57.940
|
| 169 |
+
binario lleno todos los nodos llegan hasta un
|
| 170 |
+
|
| 171 |
+
00:02:57.940 --> 00:03:00.819
|
| 172 |
+
mismo punto y al final todas sus ramas
|
| 173 |
+
|
| 174 |
+
00:03:00.819 --> 00:03:03.814
|
| 175 |
+
o todas sus hojas son terminales. Esa es
|
| 176 |
+
|
| 177 |
+
00:03:03.814 --> 00:03:07.515
|
| 178 |
+
la principal diferencia. Y tenemos el árbol degenerado
|
| 179 |
+
|
| 180 |
+
00:03:08.135 --> 00:03:10.935
|
| 181 |
+
que, si lo analizamos, pues, no tiene mucho
|
| 182 |
+
|
| 183 |
+
00:03:10.935 --> 00:03:13.015
|
| 184 |
+
de árbol y es porque la mayoría de
|
| 185 |
+
|
| 186 |
+
00:03:13.015 --> 00:03:15.995
|
| 187 |
+
sus hijos están compuestos por una sola conexión.
|
| 188 |
+
|
| 189 |
+
00:03:16.300 --> 00:03:18.780
|
| 190 |
+
Es decir, la mayoría de sus nodos solo
|
| 191 |
+
|
| 192 |
+
00:03:18.780 --> 00:03:21.600
|
| 193 |
+
tienen un hijo. Y por eso es como
|
| 194 |
+
|
| 195 |
+
00:03:22.620 --> 00:03:27.420
|
| 196 |
+
se le llama degenerado. Cuando tú vas a
|
| 197 |
+
|
| 198 |
+
00:03:27.420 --> 00:03:31.285
|
| 199 |
+
programar, o si estás trabajando en tu proyecto,
|
| 200 |
+
|
| 201 |
+
00:03:31.285 --> 00:03:34.165
|
| 202 |
+
es necesario que tengas muy en cuenta los
|
| 203 |
+
|
| 204 |
+
00:03:34.165 --> 00:03:36.325
|
| 205 |
+
árboles binarios porque te van a ayudar a
|
| 206 |
+
|
| 207 |
+
00:03:36.325 --> 00:03:39.845
|
| 208 |
+
solucionar muchos problemas. ¿Y por qué? Porque el
|
| 209 |
+
|
| 210 |
+
00:03:39.845 --> 00:03:43.650
|
| 211 |
+
árbol binario es una estructura recursiva. Y cuando
|
| 212 |
+
|
| 213 |
+
00:03:43.650 --> 00:03:46.370
|
| 214 |
+
hablamos de que es una estructura recursiva, nos
|
| 215 |
+
|
| 216 |
+
00:03:46.370 --> 00:03:49.670
|
| 217 |
+
referimos a que puede llamarse a sí misma.
|
| 218 |
+
|
| 219 |
+
00:03:50.050 --> 00:03:52.610
|
| 220 |
+
Es decir, tú puedes descomponer un árbol muy
|
| 221 |
+
|
| 222 |
+
00:03:52.610 --> 00:03:56.985
|
| 223 |
+
grande en problemas o iteraciones muy pequeñas. Por
|
| 224 |
+
|
| 225 |
+
00:03:56.985 --> 00:03:59.784
|
| 226 |
+
ejemplo, supongamos que tenemos el árbol que vemos
|
| 227 |
+
|
| 228 |
+
00:03:59.784 --> 00:04:03.845
|
| 229 |
+
en pantalla. Tú puedes descomponer este árbol en
|
| 230 |
+
|
| 231 |
+
00:04:03.864 --> 00:04:08.185
|
| 232 |
+
tres partes, que es un árbol raíz, un
|
| 233 |
+
|
| 234 |
+
00:04:08.185 --> 00:04:12.850
|
| 235 |
+
sub árbol izquierdo, ¿verdad? Que en este caso
|
| 236 |
+
|
| 237 |
+
00:04:12.910 --> 00:04:15.490
|
| 238 |
+
sería esa parte que hemos de b. Recordemos
|
| 239 |
+
|
| 240 |
+
00:04:15.710 --> 00:04:17.630
|
| 241 |
+
que no vamos a tener en cuenta lo
|
| 242 |
+
|
| 243 |
+
00:04:17.630 --> 00:04:19.570
|
| 244 |
+
que está arriba sino nos vamos a basar
|
| 245 |
+
|
| 246 |
+
00:04:20.270 --> 00:04:22.510
|
| 247 |
+
a tener en cuenta ese nodo como raíz
|
| 248 |
+
|
| 249 |
+
00:04:22.510 --> 00:04:24.965
|
| 250 |
+
y desprender lo que hay abajo. Y también
|
| 251 |
+
|
| 252 |
+
00:04:25.425 --> 00:04:28.145
|
| 253 |
+
tenemos un sub árbol derecho que en este
|
| 254 |
+
|
| 255 |
+
00:04:28.145 --> 00:04:34.225
|
| 256 |
+
caso sería CFYB. Pero si nosotros analizamos nuevamente
|
| 257 |
+
|
| 258 |
+
00:04:34.225 --> 00:04:37.525
|
| 259 |
+
ese sub árbol izquierdo, ese sub árbol izquierdo
|
| 260 |
+
|
| 261 |
+
00:04:37.720 --> 00:04:41.960
|
| 262 |
+
puede nuevamente ser descompuesto, ¿en qué? En una
|
| 263 |
+
|
| 264 |
+
00:04:41.960 --> 00:04:45.720
|
| 265 |
+
raíz, en un sub árbol izquierdo y en
|
| 266 |
+
|
| 267 |
+
00:04:45.720 --> 00:04:48.460
|
| 268 |
+
un sub árbol derecho y esto lo podemos
|
| 269 |
+
|
| 270 |
+
00:04:48.520 --> 00:04:51.485
|
| 271 |
+
aplicar para todos los árboles y cada uno
|
| 272 |
+
|
| 273 |
+
00:04:51.485 --> 00:04:53.965
|
| 274 |
+
de esos nuevos nodos los podemos volver a
|
| 275 |
+
|
| 276 |
+
00:04:53.965 --> 00:04:56.765
|
| 277 |
+
descomponer. Entonces, los podemos volver a llamar a
|
| 278 |
+
|
| 279 |
+
00:04:56.765 --> 00:05:00.125
|
| 280 |
+
sí mismo y podemos utilizar una mismo un
|
| 281 |
+
|
| 282 |
+
00:05:00.125 --> 00:05:02.845
|
| 283 |
+
mismo código que utilizamos para una parte muy
|
| 284 |
+
|
| 285 |
+
00:05:02.845 --> 00:05:06.500
|
| 286 |
+
pequeña, utilizarlo para problemas mucho más complejos o
|
| 287 |
+
|
| 288 |
+
00:05:06.500 --> 00:05:12.259
|
| 289 |
+
mucho más grandes, más complejos. Y viene un
|
| 290 |
+
|
| 291 |
+
00:05:12.259 --> 00:05:15.560
|
| 292 |
+
tema súper importante y es el recorrido de
|
| 293 |
+
|
| 294 |
+
00:05:15.620 --> 00:05:17.700
|
| 295 |
+
árboles, que nos va a permitir expresar todo
|
| 296 |
+
|
| 297 |
+
00:05:17.700 --> 00:05:20.020
|
| 298 |
+
esto que estamos viendo a través de código.
|
| 299 |
+
|
| 300 |
+
00:05:20.020 --> 00:05:23.675
|
| 301 |
+
¿Cómo podemos denominar este código? En la próxima
|
| 302 |
+
|
| 303 |
+
00:05:23.854 --> 00:05:26.315
|
| 304 |
+
clase aprenderemos lo que es recorrer un árbol
|
| 305 |
+
|
| 306 |
+
00:05:26.615 --> 00:05:30.375
|
| 307 |
+
en preorden, en entreorden y en posorden. No
|
| 308 |
+
|
| 309 |
+
00:05:30.375 --> 00:05:31.755
|
| 310 |
+
te la pierdas, vamos.
|
a/Curso de Matemáticas Discretas/05-Árboles/06-Recorridos de Árboles Preorden Inorden y Posorden.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9d8ea5525a7ff7930a9ab84a2602d189fa4412605993d59702b1557bc9b779bf
|
| 3 |
+
size 127120757
|
a/Curso de Matemáticas Discretas/05-Árboles/06-Recorridos de Árboles Preorden Inorden y Posorden.vtt
ADDED
|
@@ -0,0 +1,613 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.000 --> 00:00:06.560
|
| 4 |
+
Lo que vemos en el tablero es un
|
| 5 |
+
|
| 6 |
+
00:00:06.560 --> 00:00:09.540
|
| 7 |
+
árbol a los cuales ya hemos estado acostumbrados,
|
| 8 |
+
|
| 9 |
+
00:00:10.160 --> 00:00:13.280
|
| 10 |
+
este árbol puede representar muchas cosas entre ellas
|
| 11 |
+
|
| 12 |
+
00:00:13.280 --> 00:00:15.834
|
| 13 |
+
datos y el tema que vamos a ver
|
| 14 |
+
|
| 15 |
+
00:00:15.834 --> 00:00:18.154
|
| 16 |
+
en esta clase es súper importante, el recorrido
|
| 17 |
+
|
| 18 |
+
00:00:18.154 --> 00:00:22.074
|
| 19 |
+
de árboles, ¿por qué? Porque como vimos dependiendo
|
| 20 |
+
|
| 21 |
+
00:00:22.074 --> 00:00:24.314
|
| 22 |
+
de la estructura, del orden en que yo
|
| 23 |
+
|
| 24 |
+
00:00:24.314 --> 00:00:27.195
|
| 25 |
+
tome estos datos, todo mi árbol, todo mi
|
| 26 |
+
|
| 27 |
+
00:00:27.195 --> 00:00:30.880
|
| 28 |
+
sistema puede cambiar, por lo tanto, la estructura
|
| 29 |
+
|
| 30 |
+
00:00:30.880 --> 00:00:34.360
|
| 31 |
+
y el orden en que yo conozca estos
|
| 32 |
+
|
| 33 |
+
00:00:34.360 --> 00:00:37.360
|
| 34 |
+
nodos, estos vértices y estas conexiones me va
|
| 35 |
+
|
| 36 |
+
00:00:37.360 --> 00:00:39.379
|
| 37 |
+
a alterar todo el sistema. Entonces, es importante
|
| 38 |
+
|
| 39 |
+
00:00:39.440 --> 00:00:41.780
|
| 40 |
+
que yo tenga un orden y una estructura
|
| 41 |
+
|
| 42 |
+
00:00:42.000 --> 00:00:44.945
|
| 43 |
+
clara de los datos. Por ejemplo, si estamos
|
| 44 |
+
|
| 45 |
+
00:00:44.945 --> 00:00:48.925
|
| 46 |
+
hablando de las carpetas en tu computador, ¿cómo
|
| 47 |
+
|
| 48 |
+
00:00:48.925 --> 00:00:52.145
|
| 49 |
+
accedes tú a una carpeta donde están tus
|
| 50 |
+
|
| 51 |
+
00:00:52.145 --> 00:00:54.945
|
| 52 |
+
videojuegos, donde están tus imágenes? Siempre tiene que
|
| 53 |
+
|
| 54 |
+
00:00:54.945 --> 00:00:57.870
|
| 55 |
+
haber un orden estructurado donde tus imágenes están
|
| 56 |
+
|
| 57 |
+
00:00:57.870 --> 00:01:00.350
|
| 58 |
+
en una carpeta que se llama imágenes y
|
| 59 |
+
|
| 60 |
+
00:01:00.350 --> 00:01:02.190
|
| 61 |
+
esa está en una carpeta que se llama
|
| 62 |
+
|
| 63 |
+
00:01:02.190 --> 00:01:05.630
|
| 64 |
+
equipo, entonces todo tiene una secuencia, todo tiene
|
| 65 |
+
|
| 66 |
+
00:01:05.630 --> 00:01:09.410
|
| 67 |
+
una estructura de datos. El recorrido de árboles
|
| 68 |
+
|
| 69 |
+
00:01:09.470 --> 00:01:12.990
|
| 70 |
+
nos va a permitir pasar esto que tenemos
|
| 71 |
+
|
| 72 |
+
00:01:12.990 --> 00:01:15.365
|
| 73 |
+
aquí a un código, a una estructura de
|
| 74 |
+
|
| 75 |
+
00:01:15.365 --> 00:01:17.338
|
| 76 |
+
datos que se pueda leer y por el
|
| 77 |
+
|
| 78 |
+
00:01:17.338 --> 00:01:19.765
|
| 79 |
+
cual tú puedas identificar, por ejemplo, que acá
|
| 80 |
+
|
| 81 |
+
00:01:19.765 --> 00:01:22.645
|
| 82 |
+
está tu carpeta de imágenes y el recorrido
|
| 83 |
+
|
| 84 |
+
00:01:22.645 --> 00:01:24.485
|
| 85 |
+
de árboles nos va a permitir llegar de
|
| 86 |
+
|
| 87 |
+
00:01:24.485 --> 00:01:27.765
|
| 88 |
+
la manera más óptima a esa carpeta. Entonces
|
| 89 |
+
|
| 90 |
+
00:01:27.765 --> 00:01:31.360
|
| 91 |
+
vamos a ver cómo puede un programa recorrer
|
| 92 |
+
|
| 93 |
+
00:01:31.420 --> 00:01:35.740
|
| 94 |
+
un árbol, recorrer una estructura de árboles. Y
|
| 95 |
+
|
| 96 |
+
00:01:35.740 --> 00:01:38.640
|
| 97 |
+
existen tres formas que son las más conocidas,
|
| 98 |
+
|
| 99 |
+
00:01:38.860 --> 00:01:42.405
|
| 100 |
+
las más las principales que se usan en
|
| 101 |
+
|
| 102 |
+
00:01:42.725 --> 00:01:46.265
|
| 103 |
+
informática. La primera de ellas es preorden. ¿Qué
|
| 104 |
+
|
| 105 |
+
00:01:46.485 --> 00:01:51.205
|
| 106 |
+
nos dice el preorden? Que yo primero leo
|
| 107 |
+
|
| 108 |
+
00:01:51.205 --> 00:01:54.725
|
| 109 |
+
la raíz de un árbol, yo después me
|
| 110 |
+
|
| 111 |
+
00:01:54.725 --> 00:01:56.805
|
| 112 |
+
voy a mi nodo izquierdo y después a
|
| 113 |
+
|
| 114 |
+
00:01:56.805 --> 00:02:00.680
|
| 115 |
+
mi nodo derecho. Si recordamos la anotación en
|
| 116 |
+
|
| 117 |
+
00:02:00.680 --> 00:02:04.680
|
| 118 |
+
los árboles, mi nuevo raíz va a ser
|
| 119 |
+
|
| 120 |
+
00:02:04.680 --> 00:02:06.920
|
| 121 |
+
siempre el que esté en un nivel. Por
|
| 122 |
+
|
| 123 |
+
00:02:06.920 --> 00:02:09.199
|
| 124 |
+
ejemplo en este caso el nuevo raíz de
|
| 125 |
+
|
| 126 |
+
00:02:09.199 --> 00:02:11.720
|
| 127 |
+
este árbol es esta a que vemos aquí.
|
| 128 |
+
|
| 129 |
+
00:02:11.720 --> 00:02:15.025
|
| 130 |
+
Esta sería mi raíz o mi padre. Y
|
| 131 |
+
|
| 132 |
+
00:02:15.725 --> 00:02:18.845
|
| 133 |
+
los hijos serían BYC. Pero cuando hablamos de
|
| 134 |
+
|
| 135 |
+
00:02:18.845 --> 00:02:21.725
|
| 136 |
+
árboles binarios, es muy importante tener en cuenta
|
| 137 |
+
|
| 138 |
+
00:02:21.725 --> 00:02:26.430
|
| 139 |
+
que este será el hijo izquierdo y que
|
| 140 |
+
|
| 141 |
+
00:02:26.430 --> 00:02:31.310
|
| 142 |
+
este será el hijo derecho. De la misma
|
| 143 |
+
|
| 144 |
+
00:02:31.310 --> 00:02:33.810
|
| 145 |
+
forma yo puedo ir bajando por cada nivel
|
| 146 |
+
|
| 147 |
+
00:02:34.190 --> 00:02:35.870
|
| 148 |
+
y después decir que este es mi nuevo
|
| 149 |
+
|
| 150 |
+
00:02:35.870 --> 00:02:38.670
|
| 151 |
+
raíz y por lo tanto d es el
|
| 152 |
+
|
| 153 |
+
00:02:38.670 --> 00:02:41.175
|
| 154 |
+
hijo izquierdo de BYE es el hijo derecho
|
| 155 |
+
|
| 156 |
+
00:02:41.415 --> 00:02:45.115
|
| 157 |
+
y puedo repetir esta secuencia para cada uno
|
| 158 |
+
|
| 159 |
+
00:02:45.135 --> 00:02:48.635
|
| 160 |
+
de los niveles que encuentro en mi árbol.
|
| 161 |
+
|
| 162 |
+
00:02:49.095 --> 00:02:53.355
|
| 163 |
+
Entonces empecemos a analizar el recorrido de árboles
|
| 164 |
+
|
| 165 |
+
00:02:54.295 --> 00:02:59.280
|
| 166 |
+
por el preorden, preorden, que nos dice que
|
| 167 |
+
|
| 168 |
+
00:02:59.280 --> 00:03:03.299
|
| 169 |
+
primero vamos a tener en cuenta la raíz,
|
| 170 |
+
|
| 171 |
+
00:03:03.680 --> 00:03:06.400
|
| 172 |
+
después el hijo izquierdo y después el hijo
|
| 173 |
+
|
| 174 |
+
00:03:06.400 --> 00:03:11.405
|
| 175 |
+
derecho. Siempre empezamos por arriba, siempre empecemos por
|
| 176 |
+
|
| 177 |
+
00:03:11.405 --> 00:03:14.845
|
| 178 |
+
la raíz principal de todo mi sistema, empecemos
|
| 179 |
+
|
| 180 |
+
00:03:14.845 --> 00:03:17.885
|
| 181 |
+
por el nodo a, el nodo a es
|
| 182 |
+
|
| 183 |
+
00:03:17.885 --> 00:03:20.125
|
| 184 |
+
mi nodo raíz y si yo voy al
|
| 185 |
+
|
| 186 |
+
00:03:20.125 --> 00:03:22.740
|
| 187 |
+
pre orden lo primero que yo voy a
|
| 188 |
+
|
| 189 |
+
00:03:23.060 --> 00:03:26.200
|
| 190 |
+
analizar es la raíz, así que yo la
|
| 191 |
+
|
| 192 |
+
00:03:26.660 --> 00:03:29.940
|
| 193 |
+
escribo. Después me voy a mi a mi
|
| 194 |
+
|
| 195 |
+
00:03:29.940 --> 00:03:32.520
|
| 196 |
+
hijo izquierdo, que en este caso es b
|
| 197 |
+
|
| 198 |
+
00:03:32.820 --> 00:03:35.140
|
| 199 |
+
y este b se vuelve a convertir en
|
| 200 |
+
|
| 201 |
+
00:03:35.140 --> 00:03:37.395
|
| 202 |
+
una raíz porque vemos que tiene más hijos,
|
| 203 |
+
|
| 204 |
+
00:03:37.875 --> 00:03:40.115
|
| 205 |
+
como se convierte en raíz y como lo
|
| 206 |
+
|
| 207 |
+
00:03:40.115 --> 00:03:43.155
|
| 208 |
+
que yo anoto es la raíz, yo voy
|
| 209 |
+
|
| 210 |
+
00:03:43.155 --> 00:03:48.035
|
| 211 |
+
a notar ese nodo b. Nuevamente repito me
|
| 212 |
+
|
| 213 |
+
00:03:48.035 --> 00:03:52.030
|
| 214 |
+
voy por la izquierda, esa izquierda no tiene
|
| 215 |
+
|
| 216 |
+
00:03:52.030 --> 00:03:54.690
|
| 217 |
+
hijos, es un no, es un vértice terminal,
|
| 218 |
+
|
| 219 |
+
00:03:55.470 --> 00:03:58.430
|
| 220 |
+
por lo tanto es la izquierda, así que
|
| 221 |
+
|
| 222 |
+
00:03:58.430 --> 00:04:00.750
|
| 223 |
+
la noto porque después de la raíz viene
|
| 224 |
+
|
| 225 |
+
00:04:00.750 --> 00:04:05.005
|
| 226 |
+
la izquierda y después de la izquierda vendría
|
| 227 |
+
|
| 228 |
+
00:04:05.005 --> 00:04:08.045
|
| 229 |
+
a la derecha que sería esta e que
|
| 230 |
+
|
| 231 |
+
00:04:08.045 --> 00:04:11.885
|
| 232 |
+
tenemos aquí, pero ese e se convierte en
|
| 233 |
+
|
| 234 |
+
00:04:11.885 --> 00:04:15.510
|
| 235 |
+
una nueva raíz así que el pre orden
|
| 236 |
+
|
| 237 |
+
00:04:15.510 --> 00:04:18.089
|
| 238 |
+
nos dice que anotamos la raíz nuevamente, entonces
|
| 239 |
+
|
| 240 |
+
00:04:18.310 --> 00:04:21.670
|
| 241 |
+
la anotamos. Luego de esto viene el hijo
|
| 242 |
+
|
| 243 |
+
00:04:21.670 --> 00:04:27.510
|
| 244 |
+
izquierdo, que sería g, efectivamente es un hijo
|
| 245 |
+
|
| 246 |
+
00:04:27.510 --> 00:04:30.945
|
| 247 |
+
izquierdo porque ya no tiene más más hijos,
|
| 248 |
+
|
| 249 |
+
00:04:31.005 --> 00:04:34.385
|
| 250 |
+
así que lo anotamos g y después pasaríamos
|
| 251 |
+
|
| 252 |
+
00:04:34.845 --> 00:04:37.565
|
| 253 |
+
al hijo derecho. El hijo derecho efectivamente en
|
| 254 |
+
|
| 255 |
+
00:04:37.565 --> 00:04:40.285
|
| 256 |
+
este caso es el hijo derecho porque ya
|
| 257 |
+
|
| 258 |
+
00:04:40.285 --> 00:04:43.005
|
| 259 |
+
no tiene más más más hijos, por lo
|
| 260 |
+
|
| 261 |
+
00:04:43.005 --> 00:04:45.165
|
| 262 |
+
tanto no se convierte en raíz, entonces lo
|
| 263 |
+
|
| 264 |
+
00:04:45.165 --> 00:04:49.300
|
| 265 |
+
anotamos. Y si nos damos cuenta, hemos anotado
|
| 266 |
+
|
| 267 |
+
00:04:49.320 --> 00:04:51.960
|
| 268 |
+
la raíz y todo lo que tendríamos en
|
| 269 |
+
|
| 270 |
+
00:04:51.960 --> 00:04:55.800
|
| 271 |
+
el hijo izquierdo. Ahora pasaríamos al hijo derecho,
|
| 272 |
+
|
| 273 |
+
00:04:55.800 --> 00:04:59.160
|
| 274 |
+
que empezaría con este nodo c que tenemos
|
| 275 |
+
|
| 276 |
+
00:04:59.160 --> 00:05:02.375
|
| 277 |
+
aquí. Ese c se vuelve a convertir en
|
| 278 |
+
|
| 279 |
+
00:05:02.375 --> 00:05:06.435
|
| 280 |
+
una raíz porque tiene hijos detrás de él,
|
| 281 |
+
|
| 282 |
+
00:05:06.615 --> 00:05:08.715
|
| 283 |
+
anotamos la raíz porque es lo primero que
|
| 284 |
+
|
| 285 |
+
00:05:08.815 --> 00:05:12.775
|
| 286 |
+
vemos en el preorden, luego pasaríamos al hijo
|
| 287 |
+
|
| 288 |
+
00:05:12.775 --> 00:05:15.095
|
| 289 |
+
izquierdo, en este caso no tiene ningún hijo
|
| 290 |
+
|
| 291 |
+
00:05:15.095 --> 00:05:18.970
|
| 292 |
+
izquierdo y pasaríamos al hijo derecho que se
|
| 293 |
+
|
| 294 |
+
00:05:19.190 --> 00:05:22.470
|
| 295 |
+
convierte en raíz, raíz que anotamos porque es
|
| 296 |
+
|
| 297 |
+
00:05:22.470 --> 00:05:26.390
|
| 298 |
+
lo primero que vemos. Ahora pasamos a la
|
| 299 |
+
|
| 300 |
+
00:05:26.390 --> 00:05:29.755
|
| 301 |
+
izquierda y vemos que acá no hay nada
|
| 302 |
+
|
| 303 |
+
00:05:29.755 --> 00:05:31.435
|
| 304 |
+
más, por lo tanto si es mi izquierda
|
| 305 |
+
|
| 306 |
+
00:05:31.435 --> 00:05:35.515
|
| 307 |
+
así que anotamos. Y hemos completado lo que
|
| 308 |
+
|
| 309 |
+
00:05:35.515 --> 00:05:38.715
|
| 310 |
+
sería, hemos recorrido este árbol a través de
|
| 311 |
+
|
| 312 |
+
00:05:38.715 --> 00:05:41.050
|
| 313 |
+
lo que sería el pre orden, ¿de acuerdo?
|
| 314 |
+
|
| 315 |
+
00:05:41.050 --> 00:05:45.530
|
| 316 |
+
Ya lo hemos conseguido. Vamos a ver cómo
|
| 317 |
+
|
| 318 |
+
00:05:45.530 --> 00:05:49.949
|
| 319 |
+
sería el recorrido de este árbol ahora utilizando
|
| 320 |
+
|
| 321 |
+
00:05:51.050 --> 00:05:55.435
|
| 322 |
+
el inorden, que como vemos tiene como principal
|
| 323 |
+
|
| 324 |
+
00:05:55.435 --> 00:05:58.255
|
| 325 |
+
elemento la izquierda, después iría a la raíz
|
| 326 |
+
|
| 327 |
+
00:05:58.634 --> 00:06:01.675
|
| 328 |
+
y después iría a la derecha, analicémoslo con
|
| 329 |
+
|
| 330 |
+
00:06:01.675 --> 00:06:09.430
|
| 331 |
+
el ejemplo, vamos con el in orden. Primero
|
| 332 |
+
|
| 333 |
+
00:06:09.430 --> 00:06:12.950
|
| 334 |
+
voy por la izquierda empecemos desde nuestra raíz
|
| 335 |
+
|
| 336 |
+
00:06:12.950 --> 00:06:16.070
|
| 337 |
+
tengo mi raíz a como es raíz no
|
| 338 |
+
|
| 339 |
+
00:06:16.070 --> 00:06:18.230
|
| 340 |
+
la voy a anotar porque primero va a
|
| 341 |
+
|
| 342 |
+
00:06:18.230 --> 00:06:21.290
|
| 343 |
+
notaría la izquierda, me voy a mi izquierda
|
| 344 |
+
|
| 345 |
+
00:06:21.910 --> 00:06:25.135
|
| 346 |
+
esta se me vuelve nuevamente una raíz por
|
| 347 |
+
|
| 348 |
+
00:06:25.135 --> 00:06:28.815
|
| 349 |
+
lo tanto no la voy a anotar, sigo
|
| 350 |
+
|
| 351 |
+
00:06:28.815 --> 00:06:31.215
|
| 352 |
+
bajando hasta que encuentre un vértice que sea
|
| 353 |
+
|
| 354 |
+
00:06:31.215 --> 00:06:33.935
|
| 355 |
+
netamente izquierdo como en este caso es el
|
| 356 |
+
|
| 357 |
+
00:06:33.935 --> 00:06:37.295
|
| 358 |
+
vértice d, este efectivamente si es un hijo
|
| 359 |
+
|
| 360 |
+
00:06:37.295 --> 00:06:39.639
|
| 361 |
+
izquierdo ya no tiene más hijos por lo
|
| 362 |
+
|
| 363 |
+
00:06:39.639 --> 00:06:42.680
|
| 364 |
+
tanto lo puedo anotar porque yo empiezo por
|
| 365 |
+
|
| 366 |
+
00:06:42.680 --> 00:06:46.759
|
| 367 |
+
mi izquierda. Después de esto voy a mi
|
| 368 |
+
|
| 369 |
+
00:06:46.759 --> 00:06:50.039
|
| 370 |
+
nuevo raíz que lo voy a anotar que
|
| 371 |
+
|
| 372 |
+
00:06:50.039 --> 00:06:53.815
|
| 373 |
+
sería en este caso b, lo anotó porque
|
| 374 |
+
|
| 375 |
+
00:06:53.815 --> 00:06:55.495
|
| 376 |
+
es la raíz de mi hijo izquierdo que
|
| 377 |
+
|
| 378 |
+
00:06:55.495 --> 00:06:59.575
|
| 379 |
+
ya he notado y ahora voy a mi
|
| 380 |
+
|
| 381 |
+
00:06:59.575 --> 00:07:02.975
|
| 382 |
+
parte derecha, ya tengo izquierdo raíz voy a
|
| 383 |
+
|
| 384 |
+
00:07:02.975 --> 00:07:05.680
|
| 385 |
+
mi derecha que sería esta e, pero esa
|
| 386 |
+
|
| 387 |
+
00:07:05.680 --> 00:07:08.000
|
| 388 |
+
e se convierte en mi nuevo raíz porque
|
| 389 |
+
|
| 390 |
+
00:07:08.000 --> 00:07:10.560
|
| 391 |
+
tiene hijos, por lo tanto no la noto
|
| 392 |
+
|
| 393 |
+
00:07:10.560 --> 00:07:13.060
|
| 394 |
+
y me voy a su izquierda. Como este
|
| 395 |
+
|
| 396 |
+
00:07:13.200 --> 00:07:17.780
|
| 397 |
+
nuevamente es un nodo netamente izquierdo lo escribo
|
| 398 |
+
|
| 399 |
+
00:07:18.160 --> 00:07:21.395
|
| 400 |
+
y escribo la raíz del que viene y
|
| 401 |
+
|
| 402 |
+
00:07:22.335 --> 00:07:24.895
|
| 403 |
+
ahora sí puedo escribir esta derecha que es
|
| 404 |
+
|
| 405 |
+
00:07:24.895 --> 00:07:29.075
|
| 406 |
+
netamente derecha, por lo tanto esa sí va
|
| 407 |
+
|
| 408 |
+
00:07:29.695 --> 00:07:31.855
|
| 409 |
+
aquí y si observamos la estructura de los
|
| 410 |
+
|
| 411 |
+
00:07:31.855 --> 00:07:38.540
|
| 412 |
+
datos que hemos escrito fue izquierda, raíz y
|
| 413 |
+
|
| 414 |
+
00:07:38.540 --> 00:07:41.500
|
| 415 |
+
toda esta parte derecha. Como ya tenemos toda
|
| 416 |
+
|
| 417 |
+
00:07:41.500 --> 00:07:44.620
|
| 418 |
+
esta parte izquierda, podemos escribir la raíz de
|
| 419 |
+
|
| 420 |
+
00:07:44.620 --> 00:07:48.300
|
| 421 |
+
donde viene toda esta parte izquierda. Y ahora
|
| 422 |
+
|
| 423 |
+
00:07:48.300 --> 00:07:51.514
|
| 424 |
+
vamos a analizar la parte derecha que vendría
|
| 425 |
+
|
| 426 |
+
00:07:52.294 --> 00:07:55.514
|
| 427 |
+
siendo toda esta línea y empezamos por acá.
|
| 428 |
+
|
| 429 |
+
00:07:56.375 --> 00:07:59.194
|
| 430 |
+
Pero esta es una raíz porque tiene hijos
|
| 431 |
+
|
| 432 |
+
00:07:59.495 --> 00:08:01.655
|
| 433 |
+
y no la notamos porque primero vamos a
|
| 434 |
+
|
| 435 |
+
00:08:01.655 --> 00:08:05.230
|
| 436 |
+
la izquierda. Notamos que esta no tiene izquierda,
|
| 437 |
+
|
| 438 |
+
00:08:05.370 --> 00:08:08.410
|
| 439 |
+
por lo tanto vamos a la raíz que
|
| 440 |
+
|
| 441 |
+
00:08:08.410 --> 00:08:12.250
|
| 442 |
+
sería c y vamos al hijo derecho que
|
| 443 |
+
|
| 444 |
+
00:08:12.250 --> 00:08:15.370
|
| 445 |
+
sería f. Este se convierte en raíz, por
|
| 446 |
+
|
| 447 |
+
00:08:15.370 --> 00:08:17.950
|
| 448 |
+
lo tanto vamos a su izquierda que sería
|
| 449 |
+
|
| 450 |
+
00:08:18.010 --> 00:08:20.875
|
| 451 |
+
I y vamos a su raíz que sería
|
| 452 |
+
|
| 453 |
+
00:08:21.735 --> 00:08:25.815
|
| 454 |
+
f y hemos completado el recorrido de este
|
| 455 |
+
|
| 456 |
+
00:08:25.815 --> 00:08:28.715
|
| 457 |
+
árbol a través de la estructura de datos
|
| 458 |
+
|
| 459 |
+
00:08:28.775 --> 00:08:31.740
|
| 460 |
+
en orden. Vemos cómo puede variar y cómo
|
| 461 |
+
|
| 462 |
+
00:08:32.220 --> 00:08:35.260
|
| 463 |
+
una simple alteración de algún nuevo vértice te
|
| 464 |
+
|
| 465 |
+
00:08:35.260 --> 00:08:39.260
|
| 466 |
+
haría un árbol completamente diferente. Vamos por último
|
| 467 |
+
|
| 468 |
+
00:08:39.260 --> 00:08:43.339
|
| 469 |
+
a analizar lo que sería el posorden, que
|
| 470 |
+
|
| 471 |
+
00:08:43.339 --> 00:08:47.565
|
| 472 |
+
como vemos empieza por el hijo izquierdo, va
|
| 473 |
+
|
| 474 |
+
00:08:47.565 --> 00:08:50.225
|
| 475 |
+
al hijo derecho y termina en la raíz.
|
| 476 |
+
|
| 477 |
+
00:08:51.324 --> 00:08:57.324
|
| 478 |
+
Entonces anotemos acá, post orden y empecemos a
|
| 479 |
+
|
| 480 |
+
00:08:57.324 --> 00:09:02.460
|
| 481 |
+
analizar. Partamos nuevamente de nuestra raíz, de nuestra
|
| 482 |
+
|
| 483 |
+
00:09:02.460 --> 00:09:05.980
|
| 484 |
+
raíz a, es raíz así que no la
|
| 485 |
+
|
| 486 |
+
00:09:05.980 --> 00:09:08.400
|
| 487 |
+
anotamos porque vamos a iniciar por la izquierda,
|
| 488 |
+
|
| 489 |
+
00:09:08.940 --> 00:09:12.140
|
| 490 |
+
vamos al nodo b, es raíz no lo
|
| 491 |
+
|
| 492 |
+
00:09:12.140 --> 00:09:15.815
|
| 493 |
+
anotamos, seguimos bajando por la izquierda y vemos
|
| 494 |
+
|
| 495 |
+
00:09:15.815 --> 00:09:18.454
|
| 496 |
+
que esta efectivamente sí es una raíz izquierda
|
| 497 |
+
|
| 498 |
+
00:09:18.454 --> 00:09:20.454
|
| 499 |
+
porque ya no tiene más hijos así que
|
| 500 |
+
|
| 501 |
+
00:09:20.454 --> 00:09:23.495
|
| 502 |
+
la vamos a escribir. Sin embargo en este
|
| 503 |
+
|
| 504 |
+
00:09:23.495 --> 00:09:25.815
|
| 505 |
+
caso no vamos a anotar la raíz sino
|
| 506 |
+
|
| 507 |
+
00:09:25.815 --> 00:09:27.810
|
| 508 |
+
que nos vamos a ir a la derecha,
|
| 509 |
+
|
| 510 |
+
00:09:28.210 --> 00:09:31.250
|
| 511 |
+
a la derecha de mi árbol, pero este
|
| 512 |
+
|
| 513 |
+
00:09:31.250 --> 00:09:33.730
|
| 514 |
+
es un nuevo raíz porque tiene hijos, así
|
| 515 |
+
|
| 516 |
+
00:09:33.730 --> 00:09:36.370
|
| 517 |
+
que nos vamos a su izquierda y este
|
| 518 |
+
|
| 519 |
+
00:09:36.370 --> 00:09:39.010
|
| 520 |
+
es una izquierda efectivamente así que lo vamos
|
| 521 |
+
|
| 522 |
+
00:09:39.010 --> 00:09:43.565
|
| 523 |
+
a anotar. Una vez tenemos este, nos vamos
|
| 524 |
+
|
| 525 |
+
00:09:43.565 --> 00:09:46.524
|
| 526 |
+
es a la derecha y como este es
|
| 527 |
+
|
| 528 |
+
00:09:46.524 --> 00:09:50.204
|
| 529 |
+
totalmente derecha, no tiene hijos, lo podemos anotar
|
| 530 |
+
|
| 531 |
+
00:09:50.204 --> 00:09:54.125
|
| 532 |
+
que sería h y una vez tengo ya
|
| 533 |
+
|
| 534 |
+
00:09:54.125 --> 00:09:57.200
|
| 535 |
+
la izquierda, la derecha, en ese caso sí
|
| 536 |
+
|
| 537 |
+
00:09:57.200 --> 00:10:01.360
|
| 538 |
+
anotó la raíz, la raíz. Ahora ya tengo
|
| 539 |
+
|
| 540 |
+
00:10:01.360 --> 00:10:05.700
|
| 541 |
+
la izquierda, la derecha, ya puedo anotar esta
|
| 542 |
+
|
| 543 |
+
00:10:05.840 --> 00:10:10.615
|
| 544 |
+
raíz. Ya tengo toda esta izquierda, ahora vamos
|
| 545 |
+
|
| 546 |
+
00:10:10.615 --> 00:10:14.135
|
| 547 |
+
a analizar toda esta derecha. En esta derecha
|
| 548 |
+
|
| 549 |
+
00:10:14.135 --> 00:10:17.095
|
| 550 |
+
vemos que tenemos una raíz que no vamos
|
| 551 |
+
|
| 552 |
+
00:10:17.095 --> 00:10:19.655
|
| 553 |
+
a anotar porque tenemos es que anotar la
|
| 554 |
+
|
| 555 |
+
00:10:19.655 --> 00:10:22.910
|
| 556 |
+
izquierda, no hay izquierda, vamos a su derecha,
|
| 557 |
+
|
| 558 |
+
00:10:23.850 --> 00:10:26.170
|
| 559 |
+
esta derecha se convierte en raíz, por lo
|
| 560 |
+
|
| 561 |
+
00:10:26.170 --> 00:10:29.210
|
| 562 |
+
tanto no la anotamos, así que anotamos la
|
| 563 |
+
|
| 564 |
+
00:10:29.210 --> 00:10:33.530
|
| 565 |
+
izquierda que sería I. Y ya tenemos la
|
| 566 |
+
|
| 567 |
+
00:10:33.530 --> 00:10:36.225
|
| 568 |
+
izquierda, ahora vamos a la derecha, no hay
|
| 569 |
+
|
| 570 |
+
00:10:36.605 --> 00:10:41.325
|
| 571 |
+
nada, anotamos su raíz que sería f. Ya
|
| 572 |
+
|
| 573 |
+
00:10:41.325 --> 00:10:44.205
|
| 574 |
+
tenemos la izquierda, ya tenemos la derecha, vamos
|
| 575 |
+
|
| 576 |
+
00:10:44.205 --> 00:10:48.540
|
| 577 |
+
a la raíz que sería c y si
|
| 578 |
+
|
| 579 |
+
00:10:48.540 --> 00:10:51.820
|
| 580 |
+
analizamos ya tenemos toda la izquierda, ya tenemos
|
| 581 |
+
|
| 582 |
+
00:10:51.820 --> 00:10:55.600
|
| 583 |
+
toda la parte derecha solo nos queda anotar
|
| 584 |
+
|
| 585 |
+
00:10:56.300 --> 00:11:01.020
|
| 586 |
+
la raíz y con esto hemos terminado lo
|
| 587 |
+
|
| 588 |
+
00:11:01.020 --> 00:11:03.345
|
| 589 |
+
que es el recorrido de árboles, vemos cómo
|
| 590 |
+
|
| 591 |
+
00:11:03.345 --> 00:11:07.185
|
| 592 |
+
cambia dependiendo del orden y de la prioridad
|
| 593 |
+
|
| 594 |
+
00:11:07.185 --> 00:11:09.425
|
| 595 |
+
que yo le dé a la raíz, al
|
| 596 |
+
|
| 597 |
+
00:11:09.425 --> 00:11:13.185
|
| 598 |
+
hijo izquierdo y al hijo derecho, esto nos
|
| 599 |
+
|
| 600 |
+
00:11:13.185 --> 00:11:17.070
|
| 601 |
+
servirá para interpretar estos códigos, estos árboles y
|
| 602 |
+
|
| 603 |
+
00:11:17.070 --> 00:11:19.950
|
| 604 |
+
pasarlos al lenguaje de máquina que seguramente lo
|
| 605 |
+
|
| 606 |
+
00:11:19.950 --> 00:11:22.910
|
| 607 |
+
utilizarás en tus proyectos y en todo lo
|
| 608 |
+
|
| 609 |
+
00:11:22.910 --> 00:11:26.990
|
| 610 |
+
que tengas pensado programar. Vamos a la siguiente
|
| 611 |
+
|
| 612 |
+
00:11:26.990 --> 00:11:27.490
|
| 613 |
+
clase.
|
a/Curso de Matemáticas Discretas/05-Árboles/06-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/05-Árboles/07-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/05-Árboles/07-Árboles Binarios para Expresiones Aritméticas.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:10ca7dcd8f644ae72266d46ed439b58c52044cd7a1f1e07556bb55b2e9fd2f21
|
| 3 |
+
size 139188912
|
a/Curso de Matemáticas Discretas/05-Árboles/07-Árboles Binarios para Expresiones Aritméticas.vtt
ADDED
|
@@ -0,0 +1,631 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.919 --> 00:00:06.399
|
| 4 |
+
Ya vimos que los árboles binarios son estructuras
|
| 5 |
+
|
| 6 |
+
00:00:06.399 --> 00:00:09.360
|
| 7 |
+
recursivas que nos permiten simplificar un problema muy
|
| 8 |
+
|
| 9 |
+
00:00:09.360 --> 00:00:12.740
|
| 10 |
+
grande en problemas chiquitos porque todos siguen manteniendo
|
| 11 |
+
|
| 12 |
+
00:00:12.880 --> 00:00:14.960
|
| 13 |
+
la misma estructura y se puede llamar a
|
| 14 |
+
|
| 15 |
+
00:00:14.960 --> 00:00:18.555
|
| 16 |
+
sí mismo. También aprendimos que podemos recorrer los
|
| 17 |
+
|
| 18 |
+
00:00:18.555 --> 00:00:22.735
|
| 19 |
+
árboles de diferente forma, preorden, intraorden y posorden,
|
| 20 |
+
|
| 21 |
+
00:00:23.275 --> 00:00:26.395
|
| 22 |
+
para pasarlo a código. Ahora vamos a ver
|
| 23 |
+
|
| 24 |
+
00:00:26.395 --> 00:00:29.310
|
| 25 |
+
lo que son las expresiones aritméticas. Así es,
|
| 26 |
+
|
| 27 |
+
00:00:29.310 --> 00:00:33.330
|
| 28 |
+
los árboles también nos sirven para representar expresiones
|
| 29 |
+
|
| 30 |
+
00:00:33.550 --> 00:00:37.790
|
| 31 |
+
aritméticas. Y para tener este tema súper claro,
|
| 32 |
+
|
| 33 |
+
00:00:37.790 --> 00:00:40.450
|
| 34 |
+
vamos a aclarar primero las reglas del juego.
|
| 35 |
+
|
| 36 |
+
00:00:40.910 --> 00:00:44.575
|
| 37 |
+
Supongamos que esta es nuestra expresión aritmética. Las
|
| 38 |
+
|
| 39 |
+
00:00:44.575 --> 00:00:47.455
|
| 40 |
+
reglas que debes conocer es que, primero, los
|
| 41 |
+
|
| 42 |
+
00:00:47.455 --> 00:00:50.815
|
| 43 |
+
vértices terminales, es decir, los vértices que están
|
| 44 |
+
|
| 45 |
+
00:00:50.815 --> 00:00:52.415
|
| 46 |
+
al final de mi árbol y que no
|
| 47 |
+
|
| 48 |
+
00:00:52.415 --> 00:00:55.215
|
| 49 |
+
tienen hijos, recordemos que esta es la definición
|
| 50 |
+
|
| 51 |
+
00:00:55.215 --> 00:00:57.715
|
| 52 |
+
de una hoja o de un vértice terminal.
|
| 53 |
+
|
| 54 |
+
00:00:58.890 --> 00:01:01.570
|
| 55 |
+
Estos vértices van a ser los operandos, van
|
| 56 |
+
|
| 57 |
+
00:01:01.570 --> 00:01:03.530
|
| 58 |
+
a ser los números con los cuales yo
|
| 59 |
+
|
| 60 |
+
00:01:03.530 --> 00:01:06.810
|
| 61 |
+
voy a hacer esas operaciones. Nuestra segunda regla
|
| 62 |
+
|
| 63 |
+
00:01:06.810 --> 00:01:09.530
|
| 64 |
+
es que los vértices internos van a ser
|
| 65 |
+
|
| 66 |
+
00:01:09.530 --> 00:01:12.815
|
| 67 |
+
esos operadores, esas operaciones que yo voy a
|
| 68 |
+
|
| 69 |
+
00:01:12.815 --> 00:01:17.795
|
| 70 |
+
realizar entre esos números para llegar a mi
|
| 71 |
+
|
| 72 |
+
00:01:18.015 --> 00:01:22.335
|
| 73 |
+
expresión final. Los vértices internos, recordemos, son aquellos
|
| 74 |
+
|
| 75 |
+
00:01:22.335 --> 00:01:26.130
|
| 76 |
+
que tienen hijos dentro del árbol. La raíz
|
| 77 |
+
|
| 78 |
+
00:01:26.270 --> 00:01:30.270
|
| 79 |
+
siempre debe ser un operador. Esa raíz siempre
|
| 80 |
+
|
| 81 |
+
00:01:30.270 --> 00:01:31.789
|
| 82 |
+
debe ser un operador y va a ser
|
| 83 |
+
|
| 84 |
+
00:01:31.789 --> 00:01:34.670
|
| 85 |
+
el operador con más relevancia dentro de nuestra
|
| 86 |
+
|
| 87 |
+
00:01:34.670 --> 00:01:38.350
|
| 88 |
+
expresión aritmética. ¿Y qué es esa relevancia de
|
| 89 |
+
|
| 90 |
+
00:01:38.350 --> 00:01:41.685
|
| 91 |
+
nuestra expresión aritmética? Pues bien, cuando nosotros tenemos
|
| 92 |
+
|
| 93 |
+
00:01:41.685 --> 00:01:45.065
|
| 94 |
+
las diferentes operaciones como suma, resta, multiplicación, dimensión,
|
| 95 |
+
|
| 96 |
+
00:01:45.285 --> 00:01:48.885
|
| 97 |
+
potencia, cada una tiene un orden y el
|
| 98 |
+
|
| 99 |
+
00:01:48.885 --> 00:01:52.485
|
| 100 |
+
orden es el siguiente. Siempre vamos a tener
|
| 101 |
+
|
| 102 |
+
00:01:52.485 --> 00:01:55.660
|
| 103 |
+
como prioridad las cosas que estén entre paréntesis,
|
| 104 |
+
|
| 105 |
+
00:01:56.280 --> 00:02:01.340
|
| 106 |
+
entre corchetes, entre estos símbolos que vemos allí.
|
| 107 |
+
|
| 108 |
+
00:02:01.640 --> 00:02:04.120
|
| 109 |
+
Como segundo nivel de prioridad vamos a tener
|
| 110 |
+
|
| 111 |
+
00:02:04.120 --> 00:02:08.565
|
| 112 |
+
en cuenta las raíces, las potencias. Luego pasaremos
|
| 113 |
+
|
| 114 |
+
00:02:08.565 --> 00:02:11.925
|
| 115 |
+
a lo que es la multiplicación y la
|
| 116 |
+
|
| 117 |
+
00:02:11.925 --> 00:02:14.565
|
| 118 |
+
división, y por último la suma y la
|
| 119 |
+
|
| 120 |
+
00:02:14.565 --> 00:02:16.645
|
| 121 |
+
resta. Este es el nivel de prioridad que
|
| 122 |
+
|
| 123 |
+
00:02:16.645 --> 00:02:18.965
|
| 124 |
+
tenemos que tener en cuenta cuando analizamos una
|
| 125 |
+
|
| 126 |
+
00:02:18.965 --> 00:02:21.685
|
| 127 |
+
expresión, no solo en árboles, sino a nivel
|
| 128 |
+
|
| 129 |
+
00:02:21.685 --> 00:02:25.640
|
| 130 |
+
general en la matemática. Ahora, estos árboles de
|
| 131 |
+
|
| 132 |
+
00:02:25.640 --> 00:02:29.640
|
| 133 |
+
expresiones aritméticas también tienen una notación, al igual
|
| 134 |
+
|
| 135 |
+
00:02:29.640 --> 00:02:32.239
|
| 136 |
+
que vimos que podíamos recorrer los árboles de
|
| 137 |
+
|
| 138 |
+
00:02:32.239 --> 00:02:36.200
|
| 139 |
+
diferentes formas, las las expresiones aritméticas también las
|
| 140 |
+
|
| 141 |
+
00:02:36.200 --> 00:02:39.665
|
| 142 |
+
podemos recorrer de diferentes formas. D, una forma
|
| 143 |
+
|
| 144 |
+
00:02:39.665 --> 00:02:42.385
|
| 145 |
+
prefija, en la cual vamos a mencionar primero
|
| 146 |
+
|
| 147 |
+
00:02:42.385 --> 00:02:45.445
|
| 148 |
+
la raíz, después la izquierda y después la
|
| 149 |
+
|
| 150 |
+
00:02:45.665 --> 00:02:50.305
|
| 151 |
+
derecha, una forma entrefija, izquierda, raíz, derecha, y
|
| 152 |
+
|
| 153 |
+
00:02:50.305 --> 00:02:54.430
|
| 154 |
+
una forma posfija, izquierda, derecha, raíz, de la
|
| 155 |
+
|
| 156 |
+
00:02:54.430 --> 00:02:58.050
|
| 157 |
+
misma forma que era el orden preorden inorden
|
| 158 |
+
|
| 159 |
+
00:02:58.190 --> 00:03:01.069
|
| 160 |
+
y posorden en el recorrido de árboles. Vamos
|
| 161 |
+
|
| 162 |
+
00:03:01.069 --> 00:03:05.890
|
| 163 |
+
al tablero para entender perfectamente este tema. Si
|
| 164 |
+
|
| 165 |
+
00:03:06.110 --> 00:03:11.395
|
| 166 |
+
tenemos la siguiente expresión aritmética nosotros podemos también
|
| 167 |
+
|
| 168 |
+
00:03:11.395 --> 00:03:14.835
|
| 169 |
+
representarla a través de un árbol y más
|
| 170 |
+
|
| 171 |
+
00:03:14.835 --> 00:03:16.755
|
| 172 |
+
allá de eso podemos hacer que un programa
|
| 173 |
+
|
| 174 |
+
00:03:16.755 --> 00:03:20.755
|
| 175 |
+
informático interprete ese árbol a través de una
|
| 176 |
+
|
| 177 |
+
00:03:20.755 --> 00:03:23.849
|
| 178 |
+
notación y con base en eso hacer operaciones
|
| 179 |
+
|
| 180 |
+
00:03:24.069 --> 00:03:26.949
|
| 181 |
+
a través de diferentes lenguajes de programación, por
|
| 182 |
+
|
| 183 |
+
00:03:26.949 --> 00:03:32.090
|
| 184 |
+
ejemplo. Pero, ¿cómo cómo podemos pasar esta esta
|
| 185 |
+
|
| 186 |
+
00:03:32.150 --> 00:03:36.525
|
| 187 |
+
expresión aritmética a un árbol? Pues bien, vamos
|
| 188 |
+
|
| 189 |
+
00:03:36.525 --> 00:03:39.765
|
| 190 |
+
a empezar analizando ese orden de prioridad que
|
| 191 |
+
|
| 192 |
+
00:03:39.765 --> 00:03:43.605
|
| 193 |
+
vimos en nuestra en nuestra clase y allí
|
| 194 |
+
|
| 195 |
+
00:03:43.605 --> 00:03:45.365
|
| 196 |
+
vimos que lo primero que hay que tomar
|
| 197 |
+
|
| 198 |
+
00:03:45.365 --> 00:03:48.805
|
| 199 |
+
en cuenta son los paréntesis, los corchetes, lo
|
| 200 |
+
|
| 201 |
+
00:03:48.805 --> 00:03:52.160
|
| 202 |
+
que tengamos agrupado. En este caso vemos que
|
| 203 |
+
|
| 204 |
+
00:03:52.160 --> 00:03:57.120
|
| 205 |
+
tenemos una agrupación acá en corchetes, tenemos otra
|
| 206 |
+
|
| 207 |
+
00:03:57.120 --> 00:04:00.580
|
| 208 |
+
agrupación acá en corchetes y otra agrupación en
|
| 209 |
+
|
| 210 |
+
00:04:00.720 --> 00:04:03.760
|
| 211 |
+
paréntesis, y nos fijamos que la más pequeña,
|
| 212 |
+
|
| 213 |
+
00:04:03.760 --> 00:04:06.595
|
| 214 |
+
la agrupación más pequeña que podemos obtener es
|
| 215 |
+
|
| 216 |
+
00:04:06.595 --> 00:04:10.815
|
| 217 |
+
esta que encontramos en paréntesis acá, así que
|
| 218 |
+
|
| 219 |
+
00:04:10.835 --> 00:04:15.735
|
| 220 |
+
lo que tendríamos es mis dos nuevos terminales,
|
| 221 |
+
|
| 222 |
+
00:04:15.955 --> 00:04:18.035
|
| 223 |
+
recordemos que una de las reglas que vimos
|
| 224 |
+
|
| 225 |
+
00:04:18.035 --> 00:04:21.335
|
| 226 |
+
es que las hojas o los nuevos terminales
|
| 227 |
+
|
| 228 |
+
00:04:21.550 --> 00:04:24.750
|
| 229 |
+
serán esos números, esas letras o esos operandos
|
| 230 |
+
|
| 231 |
+
00:04:24.750 --> 00:04:26.830
|
| 232 |
+
que yo tengo. En este caso los operandos
|
| 233 |
+
|
| 234 |
+
00:04:26.830 --> 00:04:29.070
|
| 235 |
+
son letras y son la d y la
|
| 236 |
+
|
| 237 |
+
00:04:29.070 --> 00:04:33.550
|
| 238 |
+
e, y están combinados por una operación que
|
| 239 |
+
|
| 240 |
+
00:04:33.550 --> 00:04:36.445
|
| 241 |
+
va a ser un vértice interno. En este
|
| 242 |
+
|
| 243 |
+
00:04:36.445 --> 00:04:40.525
|
| 244 |
+
caso tenemos que es el menos, así que
|
| 245 |
+
|
| 246 |
+
00:04:40.525 --> 00:04:44.545
|
| 247 |
+
lo anotamos aquí. Y esa será la representación
|
| 248 |
+
|
| 249 |
+
00:04:44.845 --> 00:04:47.005
|
| 250 |
+
a través de un árbol de esta primera
|
| 251 |
+
|
| 252 |
+
00:04:47.005 --> 00:04:50.610
|
| 253 |
+
operación que yo tengo acá, que sería d
|
| 254 |
+
|
| 255 |
+
00:04:50.610 --> 00:04:53.890
|
| 256 |
+
menos c. Ahora vamos a analizar lo que
|
| 257 |
+
|
| 258 |
+
00:04:53.890 --> 00:04:57.730
|
| 259 |
+
sería el corchete. Esta parte de acá que
|
| 260 |
+
|
| 261 |
+
00:04:57.730 --> 00:05:00.450
|
| 262 |
+
tenemos en un corchete vemos que es c
|
| 263 |
+
|
| 264 |
+
00:05:00.450 --> 00:05:03.975
|
| 265 |
+
multiplicado por este esta parte que acabamos de
|
| 266 |
+
|
| 267 |
+
00:05:03.975 --> 00:05:09.474
|
| 268 |
+
analizar. Entonces ponemos nuestro operando acá c y
|
| 269 |
+
|
| 270 |
+
00:05:10.615 --> 00:05:16.550
|
| 271 |
+
vemos que la operación que que une o
|
| 272 |
+
|
| 273 |
+
00:05:16.550 --> 00:05:20.330
|
| 274 |
+
que conecta estas dos partes es la multiplicación.
|
| 275 |
+
|
| 276 |
+
00:05:20.870 --> 00:05:24.070
|
| 277 |
+
Así que la representaríamos a través de esta
|
| 278 |
+
|
| 279 |
+
00:05:24.070 --> 00:05:28.169
|
| 280 |
+
forma. Observemos que seguimos cumpliendo todas las reglas
|
| 281 |
+
|
| 282 |
+
00:05:28.630 --> 00:05:31.205
|
| 283 |
+
porque CDYE son mis nodos terminales y van
|
| 284 |
+
|
| 285 |
+
00:05:31.205 --> 00:05:33.365
|
| 286 |
+
a ser las la los operandos de mi
|
| 287 |
+
|
| 288 |
+
00:05:33.365 --> 00:05:37.365
|
| 289 |
+
operación aritmética. Ahora pasemos al siguiente corchete, que
|
| 290 |
+
|
| 291 |
+
00:05:37.365 --> 00:05:41.705
|
| 292 |
+
sería a más b. Podemos colocar simplemente nuestros
|
| 293 |
+
|
| 294 |
+
00:05:41.845 --> 00:05:45.900
|
| 295 |
+
operandos como vértices terminales y la operación que
|
| 296 |
+
|
| 297 |
+
00:05:45.900 --> 00:05:50.400
|
| 298 |
+
los une es el más. Y ya tendríamos
|
| 299 |
+
|
| 300 |
+
00:05:51.500 --> 00:05:55.180
|
| 301 |
+
las diferentes partes de mi estructura representadas a
|
| 302 |
+
|
| 303 |
+
00:05:55.180 --> 00:05:58.154
|
| 304 |
+
través de un árbol. Solo nos queda colocar
|
| 305 |
+
|
| 306 |
+
00:05:58.154 --> 00:06:00.635
|
| 307 |
+
el signo de división, que es el que
|
| 308 |
+
|
| 309 |
+
00:06:00.635 --> 00:06:04.354
|
| 310 |
+
tenemos uniendo ambos corchetes en este caso, y
|
| 311 |
+
|
| 312 |
+
00:06:04.354 --> 00:06:08.775
|
| 313 |
+
simplemente lo que haremos es colocar la división
|
| 314 |
+
|
| 315 |
+
00:06:10.035 --> 00:06:12.830
|
| 316 |
+
de ambas partes. Y hemos completado lo que
|
| 317 |
+
|
| 318 |
+
00:06:12.830 --> 00:06:16.850
|
| 319 |
+
es la representación gráfica, la estructura de esa
|
| 320 |
+
|
| 321 |
+
00:06:16.950 --> 00:06:20.430
|
| 322 |
+
expresión aritmética. Pero, ¿cómo puede un lenguaje de
|
| 323 |
+
|
| 324 |
+
00:06:20.430 --> 00:06:23.950
|
| 325 |
+
programación leer esa estructura? Pues bien, ahí es
|
| 326 |
+
|
| 327 |
+
00:06:23.950 --> 00:06:26.770
|
| 328 |
+
cuando vamos a recurrir al tipo de notación
|
| 329 |
+
|
| 330 |
+
00:06:27.365 --> 00:06:30.105
|
| 331 |
+
de los árboles, que es, si se fijan,
|
| 332 |
+
|
| 333 |
+
00:06:31.205 --> 00:06:33.685
|
| 334 |
+
es es como recorremos un árbol. Recordemos que
|
| 335 |
+
|
| 336 |
+
00:06:33.685 --> 00:06:37.045
|
| 337 |
+
para recordar que recordemos que para recorrer un
|
| 338 |
+
|
| 339 |
+
00:06:37.045 --> 00:06:41.199
|
| 340 |
+
árbol tenemos preorden, inorden y posorden. En este
|
| 341 |
+
|
| 342 |
+
00:06:41.199 --> 00:06:44.900
|
| 343 |
+
caso, para recorrer una expresión animética, tenemos prefija,
|
| 344 |
+
|
| 345 |
+
00:06:45.520 --> 00:06:47.840
|
| 346 |
+
infija y posfija, que son los tipos de
|
| 347 |
+
|
| 348 |
+
00:06:47.840 --> 00:06:52.340
|
| 349 |
+
notaciones, y que el orden se es es
|
| 350 |
+
|
| 351 |
+
00:06:53.335 --> 00:06:56.134
|
| 352 |
+
es igual al que manteníamos en el recorrido
|
| 353 |
+
|
| 354 |
+
00:06:56.134 --> 00:06:58.534
|
| 355 |
+
de árboles. Vamos a ver cómo sería la
|
| 356 |
+
|
| 357 |
+
00:06:58.534 --> 00:07:02.854
|
| 358 |
+
anotación de esta expresión aritmética a través del
|
| 359 |
+
|
| 360 |
+
00:07:02.854 --> 00:07:08.310
|
| 361 |
+
prefijo. Si recordamos el prefijo primero vamos a
|
| 362 |
+
|
| 363 |
+
00:07:08.310 --> 00:07:11.190
|
| 364 |
+
anotar la raíz, después la izquierda y después
|
| 365 |
+
|
| 366 |
+
00:07:11.190 --> 00:07:14.150
|
| 367 |
+
la derecha y nos servirá para refrescar los
|
| 368 |
+
|
| 369 |
+
00:07:14.150 --> 00:07:16.949
|
| 370 |
+
conceptos de el recorrido de árboles y ver
|
| 371 |
+
|
| 372 |
+
00:07:16.949 --> 00:07:20.414
|
| 373 |
+
un poco más a fondo este tema. Nuestra
|
| 374 |
+
|
| 375 |
+
00:07:20.414 --> 00:07:23.694
|
| 376 |
+
primera raíz es el es la división, como
|
| 377 |
+
|
| 378 |
+
00:07:23.694 --> 00:07:26.495
|
| 379 |
+
en el prefija vamos a anotar primero la
|
| 380 |
+
|
| 381 |
+
00:07:26.495 --> 00:07:29.935
|
| 382 |
+
raíz, entonces anotamos la división, nos vamos al
|
| 383 |
+
|
| 384 |
+
00:07:29.935 --> 00:07:33.775
|
| 385 |
+
nodo izquierdo que se convierte nuevamente en raíz,
|
| 386 |
+
|
| 387 |
+
00:07:33.775 --> 00:07:37.539
|
| 388 |
+
por lo tanto lo anotamos, vamos ahora al
|
| 389 |
+
|
| 390 |
+
00:07:37.539 --> 00:07:40.020
|
| 391 |
+
nodo izquierdo que se convierte en ese nodo
|
| 392 |
+
|
| 393 |
+
00:07:40.020 --> 00:07:43.620
|
| 394 |
+
izquierdo que vamos a anotar, y después de
|
| 395 |
+
|
| 396 |
+
00:07:43.620 --> 00:07:45.860
|
| 397 |
+
anotar el nodo izquierdo anotamos el derecho, que
|
| 398 |
+
|
| 399 |
+
00:07:45.860 --> 00:07:48.099
|
| 400 |
+
es derecho nato porque no tiene más hijos,
|
| 401 |
+
|
| 402 |
+
00:07:48.099 --> 00:07:52.955
|
| 403 |
+
así que lo escribimos. Y ahora vamos a
|
| 404 |
+
|
| 405 |
+
00:07:52.955 --> 00:07:55.995
|
| 406 |
+
la parte derecha, ya tenemos la raíz, la
|
| 407 |
+
|
| 408 |
+
00:07:55.995 --> 00:07:59.675
|
| 409 |
+
izquierda y vamos a la derecha que se
|
| 410 |
+
|
| 411 |
+
00:07:59.675 --> 00:08:02.235
|
| 412 |
+
convierte en raíz, por lo tanto no lo
|
| 413 |
+
|
| 414 |
+
00:08:02.235 --> 00:08:05.855
|
| 415 |
+
anotamos y vamos a la raíz, al hijo
|
| 416 |
+
|
| 417 |
+
00:08:05.915 --> 00:08:11.730
|
| 418 |
+
izquierdo. Ah no, vamos al derecho que se
|
| 419 |
+
|
| 420 |
+
00:08:11.730 --> 00:08:15.570
|
| 421 |
+
convierte en raíz, entonces sí lo escribimos porque
|
| 422 |
+
|
| 423 |
+
00:08:15.570 --> 00:08:18.470
|
| 424 |
+
primero vamos a anotar la raíz, luego anotamos
|
| 425 |
+
|
| 426 |
+
00:08:18.690 --> 00:08:21.825
|
| 427 |
+
el nodo hijo izquierdo que sería este c
|
| 428 |
+
|
| 429 |
+
00:08:21.825 --> 00:08:24.225
|
| 430 |
+
que vemos acá, y pasamos a la parte
|
| 431 |
+
|
| 432 |
+
00:08:24.225 --> 00:08:27.425
|
| 433 |
+
derecha. En la parte derecha, este menos se
|
| 434 |
+
|
| 435 |
+
00:08:27.425 --> 00:08:32.784
|
| 436 |
+
convierte en raíz, luego vamos al hijo izquierdo,
|
| 437 |
+
|
| 438 |
+
00:08:32.784 --> 00:08:36.240
|
| 439 |
+
y luego iríamos al hijo derecho. Y si
|
| 440 |
+
|
| 441 |
+
00:08:36.240 --> 00:08:38.520
|
| 442 |
+
analizamos en la estructura de datos, lo que
|
| 443 |
+
|
| 444 |
+
00:08:38.520 --> 00:08:43.020
|
| 445 |
+
tenemos es mi raíz, todo mi hijo izquierdo
|
| 446 |
+
|
| 447 |
+
00:08:43.400 --> 00:08:47.480
|
| 448 |
+
y todo mi hijo derecho. Ahora vamos a
|
| 449 |
+
|
| 450 |
+
00:08:47.480 --> 00:08:54.615
|
| 451 |
+
ver lo que sería la anotación infija. Vamos
|
| 452 |
+
|
| 453 |
+
00:08:54.615 --> 00:08:56.855
|
| 454 |
+
a ver qué es la anotación infija. En
|
| 455 |
+
|
| 456 |
+
00:08:56.855 --> 00:09:00.215
|
| 457 |
+
la anotación infija vamos a ir primero al
|
| 458 |
+
|
| 459 |
+
00:09:00.215 --> 00:09:03.700
|
| 460 |
+
hijo izquierdo, después a la raíz y después
|
| 461 |
+
|
| 462 |
+
00:09:03.700 --> 00:09:06.579
|
| 463 |
+
a la derecha. ¿Cómo sería la anotación infija
|
| 464 |
+
|
| 465 |
+
00:09:06.579 --> 00:09:09.300
|
| 466 |
+
de este árbol que tenemos en pantalla? Vamos
|
| 467 |
+
|
| 468 |
+
00:09:09.300 --> 00:09:12.920
|
| 469 |
+
a buscar primero esa ese hijo izquierdo nato,
|
| 470 |
+
|
| 471 |
+
00:09:13.140 --> 00:09:15.620
|
| 472 |
+
entonces tenemos la raíz, vamos a la izquierda,
|
| 473 |
+
|
| 474 |
+
00:09:15.620 --> 00:09:19.324
|
| 475 |
+
vemos que tiene más hijos, seguimos así hasta
|
| 476 |
+
|
| 477 |
+
00:09:19.324 --> 00:09:21.324
|
| 478 |
+
que lleguemos a esta a, porque ya no
|
| 479 |
+
|
| 480 |
+
00:09:21.324 --> 00:09:22.925
|
| 481 |
+
tiene más hijos, así que es el hijo
|
| 482 |
+
|
| 483 |
+
00:09:22.925 --> 00:09:25.884
|
| 484 |
+
izquierdo. Vamos ahora a la raíz de ese
|
| 485 |
+
|
| 486 |
+
00:09:25.884 --> 00:09:29.500
|
| 487 |
+
hijo, que fue s más, y vamos al
|
| 488 |
+
|
| 489 |
+
00:09:29.500 --> 00:09:31.899
|
| 490 |
+
hijo derecho que se convierte en hijo derecho
|
| 491 |
+
|
| 492 |
+
00:09:31.899 --> 00:09:34.560
|
| 493 |
+
porque no tiene más hijos y ya tendríamos
|
| 494 |
+
|
| 495 |
+
00:09:35.259 --> 00:09:38.699
|
| 496 |
+
toda mi parte izquierda. Como ya tenemos la
|
| 497 |
+
|
| 498 |
+
00:09:38.699 --> 00:09:41.819
|
| 499 |
+
izquierda vamos a la raíz que la vamos
|
| 500 |
+
|
| 501 |
+
00:09:41.819 --> 00:09:44.380
|
| 502 |
+
a notar y ahora vamos a la parte
|
| 503 |
+
|
| 504 |
+
00:09:44.380 --> 00:09:48.185
|
| 505 |
+
derecha. Este nodo se convierte en raíz, por
|
| 506 |
+
|
| 507 |
+
00:09:48.185 --> 00:09:50.825
|
| 508 |
+
lo tanto no lo anotamos y vamos primero
|
| 509 |
+
|
| 510 |
+
00:09:50.825 --> 00:09:53.945
|
| 511 |
+
a su izquierda. Su izquierda que, como no
|
| 512 |
+
|
| 513 |
+
00:09:53.945 --> 00:09:55.865
|
| 514 |
+
tiene más hijos, es izquierda, así que la
|
| 515 |
+
|
| 516 |
+
00:09:55.865 --> 00:09:59.570
|
| 517 |
+
escribimos, anotamos la raíz de esa izquierda y
|
| 518 |
+
|
| 519 |
+
00:09:59.950 --> 00:10:02.270
|
| 520 |
+
vamos a la parte derecha. En la parte
|
| 521 |
+
|
| 522 |
+
00:10:02.270 --> 00:10:04.830
|
| 523 |
+
derecha, este se convierte en raíz, no la
|
| 524 |
+
|
| 525 |
+
00:10:04.830 --> 00:10:08.510
|
| 526 |
+
escribimos. Primero escribimos la izquierda, después la raíz
|
| 527 |
+
|
| 528 |
+
00:10:08.510 --> 00:10:15.485
|
| 529 |
+
y después izquierda, raíz y después escribimos su
|
| 530 |
+
|
| 531 |
+
00:10:15.485 --> 00:10:18.324
|
| 532 |
+
derecha. Y como vemos en la estructura total
|
| 533 |
+
|
| 534 |
+
00:10:18.324 --> 00:10:21.165
|
| 535 |
+
de datos, primero lo que tenemos es mi
|
| 536 |
+
|
| 537 |
+
00:10:21.165 --> 00:10:25.645
|
| 538 |
+
rama izquierda, mi raíz y después toda mi
|
| 539 |
+
|
| 540 |
+
00:10:25.645 --> 00:10:29.350
|
| 541 |
+
parte derecha, así que nos quedó completamente bien.
|
| 542 |
+
|
| 543 |
+
00:10:29.730 --> 00:10:32.390
|
| 544 |
+
Por último vamos a mirar lo que es
|
| 545 |
+
|
| 546 |
+
00:10:33.890 --> 00:10:37.970
|
| 547 |
+
la anotación pos fija. Si miramos nuestro tablero
|
| 548 |
+
|
| 549 |
+
00:10:37.970 --> 00:10:39.970
|
| 550 |
+
en la pos fija lo primero que anotamos
|
| 551 |
+
|
| 552 |
+
00:10:39.970 --> 00:10:43.195
|
| 553 |
+
es la izquierda, después la derecha y después
|
| 554 |
+
|
| 555 |
+
00:10:43.654 --> 00:10:47.595
|
| 556 |
+
la raíz. Vamos nuevamente a nuestro árbol, raíz,
|
| 557 |
+
|
| 558 |
+
00:10:49.175 --> 00:10:56.300
|
| 559 |
+
raíz, izquierda, por lo tanto lo anotamos. Analizamos
|
| 560 |
+
|
| 561 |
+
00:10:56.440 --> 00:10:59.500
|
| 562 |
+
esta que es derecha neta, entonces izquierda, derecha
|
| 563 |
+
|
| 564 |
+
00:11:00.760 --> 00:11:04.040
|
| 565 |
+
y su raíz, que sería más. Y ya
|
| 566 |
+
|
| 567 |
+
00:11:04.040 --> 00:11:06.680
|
| 568 |
+
tenemos toda mi parte izquierda. Después de la
|
| 569 |
+
|
| 570 |
+
00:11:06.680 --> 00:11:09.180
|
| 571 |
+
izquierda vamos a ir a la parte derecha.
|
| 572 |
+
|
| 573 |
+
00:11:10.565 --> 00:11:13.685
|
| 574 |
+
Este vemos que se convierte nuevamente en raíz
|
| 575 |
+
|
| 576 |
+
00:11:13.685 --> 00:11:15.845
|
| 577 |
+
por lo tanto vamos a su izquierda, esta
|
| 578 |
+
|
| 579 |
+
00:11:15.845 --> 00:11:18.965
|
| 580 |
+
sí se convierte en izquierda así que la
|
| 581 |
+
|
| 582 |
+
00:11:18.965 --> 00:11:23.250
|
| 583 |
+
anotamos y vamos a la parte derecha. Esta
|
| 584 |
+
|
| 585 |
+
00:11:23.250 --> 00:11:26.209
|
| 586 |
+
parte derecha se convierte en raíz, por lo
|
| 587 |
+
|
| 588 |
+
00:11:26.209 --> 00:11:30.529
|
| 589 |
+
tanto vamos a su izquierda, vamos a su
|
| 590 |
+
|
| 591 |
+
00:11:30.529 --> 00:11:37.055
|
| 592 |
+
derecha, vamos a la raíz, ya tenemos izquierda
|
| 593 |
+
|
| 594 |
+
00:11:37.055 --> 00:11:43.375
|
| 595 |
+
derecha ahora vamos a la raíz y ya
|
| 596 |
+
|
| 597 |
+
00:11:43.375 --> 00:11:47.795
|
| 598 |
+
tenemos izquierda derecha y vamos a la raíz
|
| 599 |
+
|
| 600 |
+
00:11:48.330 --> 00:11:50.890
|
| 601 |
+
y es así como si analizamos en la
|
| 602 |
+
|
| 603 |
+
00:11:50.890 --> 00:11:56.430
|
| 604 |
+
estructura posfija tenemos mi izquierda, tenemos mi derecha
|
| 605 |
+
|
| 606 |
+
00:11:58.090 --> 00:12:03.495
|
| 607 |
+
y tenemos mi raíz y es así como
|
| 608 |
+
|
| 609 |
+
00:12:03.495 --> 00:12:08.935
|
| 610 |
+
podemos expresar expresiones aritméticas a través de un
|
| 611 |
+
|
| 612 |
+
00:12:08.935 --> 00:12:13.095
|
| 613 |
+
lenguaje de código, de un lenguaje máquina y
|
| 614 |
+
|
| 615 |
+
00:12:13.095 --> 00:12:16.240
|
| 616 |
+
vemos como dependiendo del orden o de la
|
| 617 |
+
|
| 618 |
+
00:12:16.240 --> 00:12:19.199
|
| 619 |
+
secuencia que elijamos la estructura de datos puede
|
| 620 |
+
|
| 621 |
+
00:12:19.199 --> 00:12:23.731
|
| 622 |
+
cambiar totalmente. Ya sabes qué es un árbol,
|
| 623 |
+
|
| 624 |
+
00:12:23.731 --> 00:12:26.291
|
| 625 |
+
cómo lo puedes utilizar, que también te sirve
|
| 626 |
+
|
| 627 |
+
00:12:26.291 --> 00:12:29.431
|
| 628 |
+
para representar, no solo datos, sino también expresiones
|
| 629 |
+
|
| 630 |
+
00:12:29.491 --> 00:12:32.951
|
| 631 |
+
aritméticas. Vamos a la siguiente clase.
|
a/Curso de Matemáticas Discretas/05-Árboles/08-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/05-Árboles/08-Transformación de Expresiones Aritméticas en Árboles Binarios.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:336fab57b49efe4456a7514e0a05496da7e49f66444372246d4b081c90f8552e
|
| 3 |
+
size 80268472
|
a/Curso de Matemáticas Discretas/05-Árboles/08-Transformación de Expresiones Aritméticas en Árboles Binarios.vtt
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.240 --> 00:00:07.060
|
| 4 |
+
Hemos aprendido que los árboles también nos sirven
|
| 5 |
+
|
| 6 |
+
00:00:07.359 --> 00:00:11.280
|
| 7 |
+
para representar expresiones aritméticas. En esta clase veremos
|
| 8 |
+
|
| 9 |
+
00:00:11.280 --> 00:00:14.825
|
| 10 |
+
cómo pasar de una expresión pos fija a
|
| 11 |
+
|
| 12 |
+
00:00:14.825 --> 00:00:18.445
|
| 13 |
+
su respectivo árbol, a su respectiva representación gráfica.
|
| 14 |
+
|
| 15 |
+
00:00:19.145 --> 00:00:23.005
|
| 16 |
+
Recordemos que el ejercicio nos dice que tenemos
|
| 17 |
+
|
| 18 |
+
00:00:24.185 --> 00:00:28.445
|
| 19 |
+
la expresión en posfija y si recordamos posfija
|
| 20 |
+
|
| 21 |
+
00:00:28.985 --> 00:00:36.650
|
| 22 |
+
es izquierda, derecha, raíz. Esto va a ser
|
| 23 |
+
|
| 24 |
+
00:00:36.650 --> 00:00:39.950
|
| 25 |
+
lo que necesitamos como base para construir nuestro
|
| 26 |
+
|
| 27 |
+
00:00:40.410 --> 00:00:45.070
|
| 28 |
+
nuestro gráfico, nuestro árbol. Así que empecemos a
|
| 29 |
+
|
| 30 |
+
00:00:45.129 --> 00:00:47.635
|
| 31 |
+
desglosar este árbol y miremos cómo sería su
|
| 32 |
+
|
| 33 |
+
00:00:47.635 --> 00:00:52.035
|
| 34 |
+
representación. Siempre nos dice que empezamos por la
|
| 35 |
+
|
| 36 |
+
00:00:52.035 --> 00:00:54.195
|
| 37 |
+
izquierda, en la post fija, así que sabemos
|
| 38 |
+
|
| 39 |
+
00:00:54.195 --> 00:00:57.175
|
| 40 |
+
que esta a va a estar en algún
|
| 41 |
+
|
| 42 |
+
00:00:57.235 --> 00:01:00.934
|
| 43 |
+
punto a la izquierda de mi árbol, ¿verdad?
|
| 44 |
+
|
| 45 |
+
00:01:01.630 --> 00:01:04.030
|
| 46 |
+
Luego seguiríamos por la derecha y luego por
|
| 47 |
+
|
| 48 |
+
00:01:04.030 --> 00:01:07.210
|
| 49 |
+
la raíz, pero observemos que si fuera izquierda,
|
| 50 |
+
|
| 51 |
+
00:01:07.229 --> 00:01:10.670
|
| 52 |
+
derecha, raíz, esta se quedaría como raíz, y
|
| 53 |
+
|
| 54 |
+
00:01:10.670 --> 00:01:14.590
|
| 55 |
+
nosotros ya sabemos que unas un operando, un
|
| 56 |
+
|
| 57 |
+
00:01:14.590 --> 00:01:16.725
|
| 58 |
+
número o una letra no puede ser un
|
| 59 |
+
|
| 60 |
+
00:01:16.725 --> 00:01:20.405
|
| 61 |
+
vértice terminal, por lo tanto, nos adelantaríamos un
|
| 62 |
+
|
| 63 |
+
00:01:20.405 --> 00:01:23.525
|
| 64 |
+
poco más y miraríamos que el b también
|
| 65 |
+
|
| 66 |
+
00:01:23.525 --> 00:01:27.445
|
| 67 |
+
sería una izquierda. Entonces, coloquemos nuestro b por
|
| 68 |
+
|
| 69 |
+
00:01:27.445 --> 00:01:30.869
|
| 70 |
+
acá, sería una izquierda. Si tenemos b como
|
| 71 |
+
|
| 72 |
+
00:01:30.869 --> 00:01:36.329
|
| 73 |
+
izquierda, tendríamos izquierda derecha raíz. Cumpliríamos la condición
|
| 74 |
+
|
| 75 |
+
00:01:36.950 --> 00:01:40.470
|
| 76 |
+
de que BYC serían vértices terminales y que
|
| 77 |
+
|
| 78 |
+
00:01:40.470 --> 00:01:42.375
|
| 79 |
+
m y más sería uno operando y quedaría
|
| 80 |
+
|
| 81 |
+
00:01:42.595 --> 00:01:46.994
|
| 82 |
+
como un vértice interno. Entonces, eso sí lo
|
| 83 |
+
|
| 84 |
+
00:01:46.994 --> 00:01:52.055
|
| 85 |
+
podemos hacer. Entonces, tengo izquierda, derecha y raíz,
|
| 86 |
+
|
| 87 |
+
00:01:52.755 --> 00:01:55.979
|
| 88 |
+
y tengo ya una parte de mi gráfico.
|
| 89 |
+
|
| 90 |
+
00:01:57.000 --> 00:02:00.940
|
| 91 |
+
La estructura de la de la expresión posfija
|
| 92 |
+
|
| 93 |
+
00:02:01.080 --> 00:02:04.220
|
| 94 |
+
siempre se tiene que cumplir, izquierda, derecha, raíz,
|
| 95 |
+
|
| 96 |
+
00:02:04.440 --> 00:02:08.925
|
| 97 |
+
así que ahora tendríamos izquierda, derecha, izquierda, derecha
|
| 98 |
+
|
| 99 |
+
00:02:09.465 --> 00:02:12.584
|
| 100 |
+
y seguiríamos con la raíz que sería este
|
| 101 |
+
|
| 102 |
+
00:02:12.584 --> 00:02:17.005
|
| 103 |
+
dividido que vemos allí. Y nuevamente estaríamos cumpliendo
|
| 104 |
+
|
| 105 |
+
00:02:17.065 --> 00:02:20.444
|
| 106 |
+
la estructura de la anotación posfija, mi izquierda,
|
| 107 |
+
|
| 108 |
+
00:02:21.060 --> 00:02:25.320
|
| 109 |
+
mi derecha y mi raíz. Como ya tenemos
|
| 110 |
+
|
| 111 |
+
00:02:26.660 --> 00:02:28.420
|
| 112 |
+
esta estructura, nosotros podemos saber que esta es
|
| 113 |
+
|
| 114 |
+
00:02:28.420 --> 00:02:31.780
|
| 115 |
+
la izquierda de mi árbol más grande. Entonces,
|
| 116 |
+
|
| 117 |
+
00:02:31.780 --> 00:02:36.265
|
| 118 |
+
tendríamos izquierda, derecha, todo esto estaría en una
|
| 119 |
+
|
| 120 |
+
00:02:36.265 --> 00:02:40.205
|
| 121 |
+
rama derecha y nuevamente en esta rama iniciaríamos
|
| 122 |
+
|
| 123 |
+
00:02:40.345 --> 00:02:44.265
|
| 124 |
+
por la izquierda. Entonces, esta b estaría en
|
| 125 |
+
|
| 126 |
+
00:02:44.265 --> 00:02:49.100
|
| 127 |
+
un punto nuevamente a mi izquierda, Izquierda, derecha,
|
| 128 |
+
|
| 129 |
+
00:02:49.100 --> 00:02:51.980
|
| 130 |
+
raíz. Vemos que la condición se cumple, por
|
| 131 |
+
|
| 132 |
+
00:02:51.980 --> 00:02:56.860
|
| 133 |
+
lo tanto, la podemos colocar izquierda, derecha y
|
| 134 |
+
|
| 135 |
+
00:02:56.860 --> 00:03:02.075
|
| 136 |
+
raíz, y ya tendríamos esta parte hemigráfica. Nuevamente,
|
| 137 |
+
|
| 138 |
+
00:03:02.295 --> 00:03:04.935
|
| 139 |
+
el algoritmo se tiene que cumplir para todas
|
| 140 |
+
|
| 141 |
+
00:03:04.935 --> 00:03:06.615
|
| 142 |
+
las partes de mi gráfica, así que yo
|
| 143 |
+
|
| 144 |
+
00:03:06.615 --> 00:03:10.935
|
| 145 |
+
tendría una izquierda, una derecha y solo me
|
| 146 |
+
|
| 147 |
+
00:03:10.935 --> 00:03:14.855
|
| 148 |
+
faltaría colocar una raíz, que sería el último
|
| 149 |
+
|
| 150 |
+
00:03:14.855 --> 00:03:19.370
|
| 151 |
+
signo que nosotros tenemos acá. Y con esto
|
| 152 |
+
|
| 153 |
+
00:03:19.370 --> 00:03:22.190
|
| 154 |
+
hemos completado lo que es la representación gráfica
|
| 155 |
+
|
| 156 |
+
00:03:23.370 --> 00:03:26.890
|
| 157 |
+
de la expresión posfija que nosotros teníamos al
|
| 158 |
+
|
| 159 |
+
00:03:26.890 --> 00:03:32.855
|
| 160 |
+
principio. Observemos que tenemos izquierda, derecha, raíz, izquierda,
|
| 161 |
+
|
| 162 |
+
00:03:32.995 --> 00:03:36.455
|
| 163 |
+
derecha, raíz, y hemos cumplido con nuestro objetivo.
|
| 164 |
+
|
| 165 |
+
00:03:36.835 --> 00:03:40.275
|
| 166 |
+
Pero, ¿cómo sería la notación prefija o la
|
| 167 |
+
|
| 168 |
+
00:03:40.275 --> 00:03:46.350
|
| 169 |
+
notación entrefija? Entonces, vamos a mirar, primero que
|
| 170 |
+
|
| 171 |
+
00:03:46.350 --> 00:03:54.110
|
| 172 |
+
todo, cómo sería la notación prefija. Recordemos que
|
| 173 |
+
|
| 174 |
+
00:03:54.110 --> 00:04:00.724
|
| 175 |
+
mi notación prefija va de la forma raíz
|
| 176 |
+
|
| 177 |
+
00:04:00.724 --> 00:04:07.204
|
| 178 |
+
izquierda y derecha. Así que empezaríamos, en este
|
| 179 |
+
|
| 180 |
+
00:04:07.204 --> 00:04:10.084
|
| 181 |
+
caso, con nuestra raíz principal, que sería la
|
| 182 |
+
|
| 183 |
+
00:04:10.084 --> 00:04:14.920
|
| 184 |
+
raíz principal de mi árbol, tendríamos menos, nos
|
| 185 |
+
|
| 186 |
+
00:04:14.920 --> 00:04:18.520
|
| 187 |
+
iríamos a la izquierda, a la izquierda se
|
| 188 |
+
|
| 189 |
+
00:04:18.520 --> 00:04:23.320
|
| 190 |
+
convertirían nuevamente en raíz, así que tendríamos, la
|
| 191 |
+
|
| 192 |
+
00:04:23.320 --> 00:04:26.395
|
| 193 |
+
escribiríamos, iríamos a la izquierda, es una izquierda
|
| 194 |
+
|
| 195 |
+
00:04:26.395 --> 00:04:29.294
|
| 196 |
+
porque ya no tiene más hijos. Entonces, raíz
|
| 197 |
+
|
| 198 |
+
00:04:29.675 --> 00:04:35.035
|
| 199 |
+
izquierda la escribimos, a y derecha. Esta derecha
|
| 200 |
+
|
| 201 |
+
00:04:35.035 --> 00:04:39.260
|
| 202 |
+
pasa a ser raíz, entonces, tendríamos más. Izquierda,
|
| 203 |
+
|
| 204 |
+
00:04:39.800 --> 00:04:45.080
|
| 205 |
+
raíz izquierda, derecha, BCY ya tenemos todo lo
|
| 206 |
+
|
| 207 |
+
00:04:45.080 --> 00:04:47.560
|
| 208 |
+
que es la raíz, la izquierda y simplemente
|
| 209 |
+
|
| 210 |
+
00:04:47.560 --> 00:04:51.325
|
| 211 |
+
nos falta la derecha, que sería, empezamos con
|
| 212 |
+
|
| 213 |
+
00:04:51.325 --> 00:04:53.085
|
| 214 |
+
esta que se vuelve raíz, por lo tanto
|
| 215 |
+
|
| 216 |
+
00:04:53.085 --> 00:04:58.365
|
| 217 |
+
la escribimos raíz, izquierda y derecha. Y ya
|
| 218 |
+
|
| 219 |
+
00:04:58.365 --> 00:05:04.530
|
| 220 |
+
tenemos la expresión prefija de mi árbol, que
|
| 221 |
+
|
| 222 |
+
00:05:04.530 --> 00:05:07.090
|
| 223 |
+
encontramos a partir de su expresión posfija. Por
|
| 224 |
+
|
| 225 |
+
00:05:07.090 --> 00:05:11.730
|
| 226 |
+
último, vamos a encontrar la expresión infija o
|
| 227 |
+
|
| 228 |
+
00:05:11.730 --> 00:05:15.170
|
| 229 |
+
entrefija, como lo hemos llamado, y que su
|
| 230 |
+
|
| 231 |
+
00:05:15.170 --> 00:05:23.515
|
| 232 |
+
orden va a ser izquierda raíz derecha. Recordemos
|
| 233 |
+
|
| 234 |
+
00:05:23.515 --> 00:05:26.235
|
| 235 |
+
que siempre vamos a empezar por nuestra raíz
|
| 236 |
+
|
| 237 |
+
00:05:26.235 --> 00:05:29.915
|
| 238 |
+
principal, pero no la vamos a escribir porque
|
| 239 |
+
|
| 240 |
+
00:05:29.915 --> 00:05:32.520
|
| 241 |
+
arrancamos siempre por la izquierda en este caso.
|
| 242 |
+
|
| 243 |
+
00:05:33.560 --> 00:05:35.720
|
| 244 |
+
Entonces, esta es una raíz, vamos a su
|
| 245 |
+
|
| 246 |
+
00:05:35.720 --> 00:05:39.259
|
| 247 |
+
izquierda, no la escribimos, vamos a la raíz,
|
| 248 |
+
|
| 249 |
+
00:05:39.639 --> 00:05:42.220
|
| 250 |
+
se convierte en raíz, vamos a su izquierda
|
| 251 |
+
|
| 252 |
+
00:05:42.280 --> 00:05:44.780
|
| 253 |
+
y como esta sí es una izquierda totalmente,
|
| 254 |
+
|
| 255 |
+
00:05:45.319 --> 00:05:49.885
|
| 256 |
+
esa sí la escribimos. Escribimos la izquierda, escribimos
|
| 257 |
+
|
| 258 |
+
00:05:50.025 --> 00:05:53.705
|
| 259 |
+
su raíz y vamos a la derecha. Como
|
| 260 |
+
|
| 261 |
+
00:05:53.705 --> 00:05:57.005
|
| 262 |
+
esta es nuevamente raíz, vamos a su izquierda,
|
| 263 |
+
|
| 264 |
+
00:05:57.385 --> 00:06:03.620
|
| 265 |
+
esta izquierda, izquierda, su raíz y su derecha.
|
| 266 |
+
|
| 267 |
+
00:06:04.080 --> 00:06:07.440
|
| 268 |
+
Y ya tenemos esta parte de mi árbol,
|
| 269 |
+
|
| 270 |
+
00:06:07.440 --> 00:06:10.400
|
| 271 |
+
que es la izquierda. Recordemos que siempre se
|
| 272 |
+
|
| 273 |
+
00:06:10.400 --> 00:06:14.254
|
| 274 |
+
tiene que cumplir la estructura de la del
|
| 275 |
+
|
| 276 |
+
00:06:14.254 --> 00:06:16.895
|
| 277 |
+
de la anotación para todas las partes de
|
| 278 |
+
|
| 279 |
+
00:06:16.895 --> 00:06:18.835
|
| 280 |
+
mi árbol. Entonces, ya tenemos toda la izquierda.
|
| 281 |
+
|
| 282 |
+
00:06:19.694 --> 00:06:23.455
|
| 283 |
+
Ahora, anotamos la raíz, que sería menos, y
|
| 284 |
+
|
| 285 |
+
00:06:23.455 --> 00:06:27.060
|
| 286 |
+
vamos a la derecha. Y en la derecha
|
| 287 |
+
|
| 288 |
+
00:06:27.280 --> 00:06:30.800
|
| 289 |
+
tenemos nuevamente una raíz, esta sí es izquierda
|
| 290 |
+
|
| 291 |
+
00:06:30.800 --> 00:06:34.639
|
| 292 |
+
total, entonces la escribimos, escribimos su raíz y
|
| 293 |
+
|
| 294 |
+
00:06:34.639 --> 00:06:39.380
|
| 295 |
+
escribimos la derecha. Y tenemos ya las tres
|
| 296 |
+
|
| 297 |
+
00:06:41.764 --> 00:06:45.365
|
| 298 |
+
formas de representar o de notar lo que
|
| 299 |
+
|
| 300 |
+
00:06:45.365 --> 00:06:48.745
|
| 301 |
+
es una expresión aritmética a través de un
|
| 302 |
+
|
| 303 |
+
00:06:48.805 --> 00:06:52.425
|
| 304 |
+
árbol. Y así es como diferentes podemos pasar
|
| 305 |
+
|
| 306 |
+
00:06:52.660 --> 00:06:55.300
|
| 307 |
+
de una expresión aritmética a un código máquina
|
| 308 |
+
|
| 309 |
+
00:06:55.300 --> 00:06:57.620
|
| 310 |
+
para que lo apliques a tus proyectos. Y
|
| 311 |
+
|
| 312 |
+
00:06:57.620 --> 00:07:01.880
|
| 313 |
+
con esto hemos concluido el módulo de árboles.
|
| 314 |
+
|
| 315 |
+
00:07:02.580 --> 00:07:04.900
|
| 316 |
+
Acompáñenme en el siguiente módulo donde empezaremos a
|
| 317 |
+
|
| 318 |
+
00:07:04.900 --> 00:07:08.794
|
| 319 |
+
ver algunos algoritmos para que podamos recorrer estos
|
| 320 |
+
|
| 321 |
+
00:07:08.794 --> 00:07:11.834
|
| 322 |
+
árboles y que lo puedan aplicar a sus
|
| 323 |
+
|
| 324 |
+
00:07:11.834 --> 00:07:14.254
|
| 325 |
+
proyectos. Nos vemos en el siguiente módulo.
|
a/Curso de Matemáticas Discretas/05-Árboles/09-Árboles Altura Niveles y Recorridos Ordenados.mhtml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/01-Algoritmo de Prim Árbol de Expansión Mínimo en Grafos.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:175c06165344bd95053799197d346fcd301b4ced07659661122acef2b74cbdfd
|
| 3 |
+
size 122312057
|
a/Curso de Matemáticas Discretas/06-Algoritmos/01-Algoritmo de Prim Árbol de Expansión Mínimo en Grafos.vtt
ADDED
|
@@ -0,0 +1,550 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.640 --> 00:00:08.000
|
| 4 |
+
Bienvenidos a este módulo de algoritmos. Vamos a
|
| 5 |
+
|
| 6 |
+
00:00:08.000 --> 00:00:10.639
|
| 7 |
+
aprender los algoritmos más importantes y que nos
|
| 8 |
+
|
| 9 |
+
00:00:10.639 --> 00:00:13.845
|
| 10 |
+
permitirán tener un concepto claro sobre las gráficas,
|
| 11 |
+
|
| 12 |
+
00:00:14.005 --> 00:00:16.725
|
| 13 |
+
¿de acuerdo? El primer algoritmo con el que
|
| 14 |
+
|
| 15 |
+
00:00:16.725 --> 00:00:20.085
|
| 16 |
+
vamos a comenzar es el algoritmo de Prim,
|
| 17 |
+
|
| 18 |
+
00:00:20.085 --> 00:00:23.365
|
| 19 |
+
pero antes recordemos ¿qué es un algoritmo? Un
|
| 20 |
+
|
| 21 |
+
00:00:23.365 --> 00:00:26.325
|
| 22 |
+
algoritmo es una serie de pasos que nosotros
|
| 23 |
+
|
| 24 |
+
00:00:26.325 --> 00:00:28.680
|
| 25 |
+
seguimos de acuerdo a una lógica, que fue
|
| 26 |
+
|
| 27 |
+
00:00:28.680 --> 00:00:31.240
|
| 28 |
+
lo que vimos en nuestro primer módulo. Y
|
| 29 |
+
|
| 30 |
+
00:00:31.240 --> 00:00:36.140
|
| 31 |
+
si seguimos estos pasos consecutivamente lograremos el objetivo
|
| 32 |
+
|
| 33 |
+
00:00:36.280 --> 00:00:39.080
|
| 34 |
+
que fue trazado con la lógica, el objetivo
|
| 35 |
+
|
| 36 |
+
00:00:39.080 --> 00:00:42.445
|
| 37 |
+
del algoritmo. En este caso el algoritmo de
|
| 38 |
+
|
| 39 |
+
00:00:42.445 --> 00:00:44.785
|
| 40 |
+
Prim lo que nos va a permitir es
|
| 41 |
+
|
| 42 |
+
00:00:45.165 --> 00:00:48.525
|
| 43 |
+
encontrar el árbol de expansión mínimo que yo
|
| 44 |
+
|
| 45 |
+
00:00:48.525 --> 00:00:52.445
|
| 46 |
+
puedo encontrar en una representación gráfica. Por ejemplo,
|
| 47 |
+
|
| 48 |
+
00:00:52.445 --> 00:00:55.185
|
| 49 |
+
en esta representación gráfica que nosotros tenemos aquí,
|
| 50 |
+
|
| 51 |
+
00:00:55.460 --> 00:00:58.580
|
| 52 |
+
si recordamos la teoría de gráficos, esto puede
|
| 53 |
+
|
| 54 |
+
00:00:58.580 --> 00:01:01.860
|
| 55 |
+
ser una red de comunicación, una serie de
|
| 56 |
+
|
| 57 |
+
00:01:01.860 --> 00:01:05.700
|
| 58 |
+
computadores, una serie de casas, ciudades que yo
|
| 59 |
+
|
| 60 |
+
00:01:05.700 --> 00:01:08.505
|
| 61 |
+
trato de conectar a través de carreteras, computadores
|
| 62 |
+
|
| 63 |
+
00:01:08.505 --> 00:01:11.405
|
| 64 |
+
que yo trato de comunicar a través de
|
| 65 |
+
|
| 66 |
+
00:01:11.865 --> 00:01:15.065
|
| 67 |
+
redes o, por ejemplo, aeropuertos, que yo trato
|
| 68 |
+
|
| 69 |
+
00:01:15.065 --> 00:01:17.785
|
| 70 |
+
de conectar a través de líneas aéreas. Y
|
| 71 |
+
|
| 72 |
+
00:01:17.785 --> 00:01:20.285
|
| 73 |
+
esos números que vemos allí son los costes
|
| 74 |
+
|
| 75 |
+
00:01:20.345 --> 00:01:22.800
|
| 76 |
+
asociados de comunicar un punto con el otro.
|
| 77 |
+
|
| 78 |
+
00:01:22.880 --> 00:01:26.640
|
| 79 |
+
Por ejemplo a con b me cuesta cuatro,
|
| 80 |
+
|
| 81 |
+
00:01:26.640 --> 00:01:30.660
|
| 82 |
+
¿cuatro qué? Por ejemplo pueden ser cuatro kilómetros
|
| 83 |
+
|
| 84 |
+
00:01:31.760 --> 00:01:34.580
|
| 85 |
+
de distancia, pueden ser cuatro horas de recorrido,
|
| 86 |
+
|
| 87 |
+
00:01:34.640 --> 00:01:37.120
|
| 88 |
+
pueden ser cuatro aviones que yo puedo pasar
|
| 89 |
+
|
| 90 |
+
00:01:37.120 --> 00:01:40.704
|
| 91 |
+
a través de ellos. Entonces, el algoritmo de
|
| 92 |
+
|
| 93 |
+
00:01:40.704 --> 00:01:43.744
|
| 94 |
+
Print lo que me permite es encontrar el
|
| 95 |
+
|
| 96 |
+
00:01:43.744 --> 00:01:46.804
|
| 97 |
+
coste mínimo mediante el cual yo pueda conectar
|
| 98 |
+
|
| 99 |
+
00:01:47.424 --> 00:01:50.804
|
| 100 |
+
todos esos puntos, todos esos aeropuertos, esas casas,
|
| 101 |
+
|
| 102 |
+
00:01:51.585 --> 00:01:54.020
|
| 103 |
+
esas ciudades con el mínimo coste. ¿Cuál es
|
| 104 |
+
|
| 105 |
+
00:01:54.020 --> 00:01:57.000
|
| 106 |
+
el mínimo coste de conectar absolutamente todos los
|
| 107 |
+
|
| 108 |
+
00:01:57.300 --> 00:01:59.460
|
| 109 |
+
puntos? Y nuestro algoritmo va a ser el
|
| 110 |
+
|
| 111 |
+
00:01:59.460 --> 00:02:02.820
|
| 112 |
+
siguiente. Vamos a iniciar, vamos a seleccionar un
|
| 113 |
+
|
| 114 |
+
00:02:02.820 --> 00:02:05.960
|
| 115 |
+
vértice al azar, no nos importa cuál vértice
|
| 116 |
+
|
| 117 |
+
00:02:06.580 --> 00:02:11.834
|
| 118 |
+
seleccionemos. Luego vamos a seleccionar la conexión de
|
| 119 |
+
|
| 120 |
+
00:02:11.834 --> 00:02:15.295
|
| 121 |
+
menor valor que este incidente en ese vértice
|
| 122 |
+
|
| 123 |
+
00:02:16.795 --> 00:02:20.095
|
| 124 |
+
y en cada nueva interacción vamos a seleccionar
|
| 125 |
+
|
| 126 |
+
00:02:20.395 --> 00:02:25.129
|
| 127 |
+
la conexión que esté que cueste menos, dependiendo
|
| 128 |
+
|
| 129 |
+
00:02:25.549 --> 00:02:27.810
|
| 130 |
+
de esos vértices que yo ya tengo conectados,
|
| 131 |
+
|
| 132 |
+
00:02:28.349 --> 00:02:30.989
|
| 133 |
+
y el algoritmo va a finalizar cuando yo
|
| 134 |
+
|
| 135 |
+
00:02:30.989 --> 00:02:35.330
|
| 136 |
+
tenga todos mis vértices conectados con n menos
|
| 137 |
+
|
| 138 |
+
00:02:35.390 --> 00:02:38.275
|
| 139 |
+
uno aristas o conexiones. ¿Qué es n? El
|
| 140 |
+
|
| 141 |
+
00:02:38.275 --> 00:02:40.935
|
| 142 |
+
número de vértices. Vamos a ver un ejemplo
|
| 143 |
+
|
| 144 |
+
00:02:41.234 --> 00:02:44.754
|
| 145 |
+
para tenerlo perfectamente claro. Lo que tenemos en
|
| 146 |
+
|
| 147 |
+
00:02:44.754 --> 00:02:48.515
|
| 148 |
+
pantallas es un árbol de expansión, acá podemos
|
| 149 |
+
|
| 150 |
+
00:02:48.515 --> 00:02:51.075
|
| 151 |
+
ver los vértices que están identificados con el
|
| 152 |
+
|
| 153 |
+
00:02:51.075 --> 00:02:56.010
|
| 154 |
+
color rojo ABCD hasta ahí, tenemos nuestras conexiones
|
| 155 |
+
|
| 156 |
+
00:02:56.010 --> 00:02:59.670
|
| 157 |
+
que están representadas con verde y el coste
|
| 158 |
+
|
| 159 |
+
00:02:59.670 --> 00:03:03.510
|
| 160 |
+
asociadas entre ellas. Recordemos que esos vértices y
|
| 161 |
+
|
| 162 |
+
00:03:03.510 --> 00:03:06.585
|
| 163 |
+
esas conexiones, por ejemplo, puede ser una red
|
| 164 |
+
|
| 165 |
+
00:03:06.825 --> 00:03:09.645
|
| 166 |
+
de ciudades que tú quieres conectar entre ellas,
|
| 167 |
+
|
| 168 |
+
00:03:10.265 --> 00:03:12.505
|
| 169 |
+
una red de aeropuertos entre los cuales te
|
| 170 |
+
|
| 171 |
+
00:03:12.505 --> 00:03:16.285
|
| 172 |
+
estás comunicando, una red marítima, una conexión eléctrica,
|
| 173 |
+
|
| 174 |
+
00:03:16.345 --> 00:03:18.265
|
| 175 |
+
por ejemplo haz de cuenta que son puntos
|
| 176 |
+
|
| 177 |
+
00:03:18.265 --> 00:03:21.970
|
| 178 |
+
eléctricos que tú quieres conectar entre ellos Y
|
| 179 |
+
|
| 180 |
+
00:03:21.970 --> 00:03:24.550
|
| 181 |
+
estos números que tú ves allí es el
|
| 182 |
+
|
| 183 |
+
00:03:25.170 --> 00:03:27.410
|
| 184 |
+
coste de unir esas dos cosas. Por ejemplo,
|
| 185 |
+
|
| 186 |
+
00:03:27.410 --> 00:03:29.890
|
| 187 |
+
si yo quisiera unir el nodo B con
|
| 188 |
+
|
| 189 |
+
00:03:29.890 --> 00:03:32.804
|
| 190 |
+
el nodo B, me costaría siete unidades. Si
|
| 191 |
+
|
| 192 |
+
00:03:32.804 --> 00:03:32.941
|
| 193 |
+
estamos hablando de un cableado eléctrico, por ejemplo,
|
| 194 |
+
|
| 195 |
+
00:03:32.941 --> 00:03:39.005
|
| 196 |
+
necesitaría siete kilómetros de cable. O distancia, es
|
| 197 |
+
|
| 198 |
+
00:03:39.005 --> 00:03:50.610
|
| 199 |
+
decir es un recurso una unidad, un coste
|
| 200 |
+
|
| 201 |
+
00:03:50.670 --> 00:03:53.410
|
| 202 |
+
asociado unir a esa y si nos fijamos
|
| 203 |
+
|
| 204 |
+
00:03:53.630 --> 00:03:56.910
|
| 205 |
+
saldría mucho más económico unir e con f
|
| 206 |
+
|
| 207 |
+
00:03:56.910 --> 00:04:01.250
|
| 208 |
+
porque solo utilizaríamos dos unidades, solo dos recursos.
|
| 209 |
+
|
| 210 |
+
00:04:01.955 --> 00:04:04.355
|
| 211 |
+
El algoritmo de Prim lo que nos permite
|
| 212 |
+
|
| 213 |
+
00:04:04.355 --> 00:04:07.995
|
| 214 |
+
es identificar cómo yo puedo conectar todos los
|
| 215 |
+
|
| 216 |
+
00:04:07.995 --> 00:04:10.755
|
| 217 |
+
puntos, todos los vértices, todas esas ciudades, todas
|
| 218 |
+
|
| 219 |
+
00:04:10.755 --> 00:04:14.355
|
| 220 |
+
esas esos datos con el mínimo coste, cómo
|
| 221 |
+
|
| 222 |
+
00:04:14.355 --> 00:04:16.680
|
| 223 |
+
yo puedo garantizar que sea el mínimo coste.
|
| 224 |
+
|
| 225 |
+
00:04:17.240 --> 00:04:20.699
|
| 226 |
+
Vamos a ver en qué consiste este algoritmo.
|
| 227 |
+
|
| 228 |
+
00:04:22.600 --> 00:04:25.259
|
| 229 |
+
Empieza diciéndonos que escojamos un vértice al azar,
|
| 230 |
+
|
| 231 |
+
00:04:25.639 --> 00:04:27.880
|
| 232 |
+
en este caso yo voy a escoger el
|
| 233 |
+
|
| 234 |
+
00:04:27.880 --> 00:04:30.515
|
| 235 |
+
vértice e porque es el centro de mi
|
| 236 |
+
|
| 237 |
+
00:04:31.055 --> 00:04:34.575
|
| 238 |
+
estructura de datos. Y el algoritmo nos dice
|
| 239 |
+
|
| 240 |
+
00:04:34.575 --> 00:04:38.415
|
| 241 |
+
que escoja la conexión que cueste menos y
|
| 242 |
+
|
| 243 |
+
00:04:38.415 --> 00:04:41.315
|
| 244 |
+
que esté conectada a ese vértice que yo
|
| 245 |
+
|
| 246 |
+
00:04:41.535 --> 00:04:44.500
|
| 247 |
+
he escogido, que he seleccionado. En este caso
|
| 248 |
+
|
| 249 |
+
00:04:44.500 --> 00:04:47.060
|
| 250 |
+
vemos que está h con dos, que está
|
| 251 |
+
|
| 252 |
+
00:04:47.060 --> 00:04:50.820
|
| 253 |
+
d con cinco, a con cuatro, b con
|
| 254 |
+
|
| 255 |
+
00:04:50.820 --> 00:04:53.780
|
| 256 |
+
siete, f con dos, y I con cuatro,
|
| 257 |
+
|
| 258 |
+
00:04:53.780 --> 00:04:57.300
|
| 259 |
+
y observamos que podría escoger el vértice h
|
| 260 |
+
|
| 261 |
+
00:04:57.300 --> 00:04:58.995
|
| 262 |
+
con un coste de dos o el vértice
|
| 263 |
+
|
| 264 |
+
00:04:58.995 --> 00:05:03.475
|
| 265 |
+
f con un coste de dos. Así que
|
| 266 |
+
|
| 267 |
+
00:05:03.475 --> 00:05:06.035
|
| 268 |
+
yo puedo tomar esta decisión, puedo escoger entre
|
| 269 |
+
|
| 270 |
+
00:05:06.035 --> 00:05:07.475
|
| 271 |
+
cualquiera de los dos y no me va
|
| 272 |
+
|
| 273 |
+
00:05:07.475 --> 00:05:10.135
|
| 274 |
+
a afectar el algoritmo, ya veremos por qué.
|
| 275 |
+
|
| 276 |
+
00:05:10.195 --> 00:05:12.195
|
| 277 |
+
En este caso me voy a ir por
|
| 278 |
+
|
| 279 |
+
00:05:12.195 --> 00:05:15.480
|
| 280 |
+
este camino y voy a tener un coste
|
| 281 |
+
|
| 282 |
+
00:05:15.480 --> 00:05:18.940
|
| 283 |
+
de dos donde ya tengo conectado mi nodo
|
| 284 |
+
|
| 285 |
+
00:05:19.080 --> 00:05:22.280
|
| 286 |
+
f y mi nodo e. El algoritmo dice
|
| 287 |
+
|
| 288 |
+
00:05:22.280 --> 00:05:26.380
|
| 289 |
+
que repitamos esta interacción sigamos eligiendo las conexiones
|
| 290 |
+
|
| 291 |
+
00:05:26.680 --> 00:05:29.945
|
| 292 |
+
de menor valor teniendo en cuenta los vértices
|
| 293 |
+
|
| 294 |
+
00:05:29.945 --> 00:05:32.425
|
| 295 |
+
que ya tengo conectados, es decir que ya
|
| 296 |
+
|
| 297 |
+
00:05:32.425 --> 00:05:34.765
|
| 298 |
+
no se ya no solo tengo las opciones
|
| 299 |
+
|
| 300 |
+
00:05:34.985 --> 00:05:37.945
|
| 301 |
+
que están asociadas a e, sino que ya
|
| 302 |
+
|
| 303 |
+
00:05:37.945 --> 00:05:41.650
|
| 304 |
+
tengo las opciones que están asociadas AFY vemos
|
| 305 |
+
|
| 306 |
+
00:05:41.650 --> 00:05:45.190
|
| 307 |
+
que el menor valor de todas ellas es
|
| 308 |
+
|
| 309 |
+
00:05:45.330 --> 00:05:49.410
|
| 310 |
+
esta que tengo acá, este uno. Y ya
|
| 311 |
+
|
| 312 |
+
00:05:49.410 --> 00:05:52.770
|
| 313 |
+
tengo conectados tres de mis nodos. Y ya
|
| 314 |
+
|
| 315 |
+
00:05:52.770 --> 00:05:56.365
|
| 316 |
+
tengo abiertas ahora muchas más posibilidades, ya podría
|
| 317 |
+
|
| 318 |
+
00:05:56.365 --> 00:06:00.905
|
| 319 |
+
elegir entre cuatro, dos, cinco, cuatro, siete, cinco,
|
| 320 |
+
|
| 321 |
+
00:06:01.845 --> 00:06:05.385
|
| 322 |
+
cinco y vemos que la que el coste
|
| 323 |
+
|
| 324 |
+
00:06:06.165 --> 00:06:09.069
|
| 325 |
+
de unir, que el coste menor de unir
|
| 326 |
+
|
| 327 |
+
00:06:09.069 --> 00:06:12.350
|
| 328 |
+
otro vértice sería este h de acá con
|
| 329 |
+
|
| 330 |
+
00:06:12.350 --> 00:06:16.530
|
| 331 |
+
este dos que tenemos acá y ya tenemos
|
| 332 |
+
|
| 333 |
+
00:06:17.389 --> 00:06:22.845
|
| 334 |
+
cuatro vértices conectados EFHYI. En el algoritmo de
|
| 335 |
+
|
| 336 |
+
00:06:22.845 --> 00:06:25.645
|
| 337 |
+
Print tenemos que tener mucho cuidado de no
|
| 338 |
+
|
| 339 |
+
00:06:25.645 --> 00:06:29.005
|
| 340 |
+
formar ciclos, ya que los ciclos cancelarían el
|
| 341 |
+
|
| 342 |
+
00:06:29.005 --> 00:06:31.725
|
| 343 |
+
algoritmo, no nos servirían. Es decir, yo no
|
| 344 |
+
|
| 345 |
+
00:06:31.725 --> 00:06:34.785
|
| 346 |
+
podría unir e con I porque tendría un
|
| 347 |
+
|
| 348 |
+
00:06:34.960 --> 00:06:37.840
|
| 349 |
+
un circuito cerrado, ni ya podría ir h
|
| 350 |
+
|
| 351 |
+
00:06:37.840 --> 00:06:41.599
|
| 352 |
+
con I porque tendría un circuito cerrado. Además
|
| 353 |
+
|
| 354 |
+
00:06:41.599 --> 00:06:44.560
|
| 355 |
+
que ya tenemos esos vértices conectados, entonces no
|
| 356 |
+
|
| 357 |
+
00:06:44.560 --> 00:06:50.335
|
| 358 |
+
habría ningún ninguna valor agregado en en agregar
|
| 359 |
+
|
| 360 |
+
00:06:50.335 --> 00:06:54.655
|
| 361 |
+
estos nodos. Vamos a elegir el siguiente vértice
|
| 362 |
+
|
| 363 |
+
00:06:54.655 --> 00:06:57.315
|
| 364 |
+
con conexión de menor coste. En este caso
|
| 365 |
+
|
| 366 |
+
00:06:57.615 --> 00:07:03.440
|
| 367 |
+
tenemos las opciones siete, cinco, cuatro, cinco y
|
| 368 |
+
|
| 369 |
+
00:07:03.440 --> 00:07:07.920
|
| 370 |
+
seis. Vemos que la opción más indicada sería
|
| 371 |
+
|
| 372 |
+
00:07:07.920 --> 00:07:12.580
|
| 373 |
+
unir esta a con un coste de cuatro,
|
| 374 |
+
|
| 375 |
+
00:07:14.160 --> 00:07:18.025
|
| 376 |
+
de cuatro, y repetimos el proceso. Ahora cuál
|
| 377 |
+
|
| 378 |
+
00:07:18.025 --> 00:07:21.965
|
| 379 |
+
será la conexión asociada con el menor coste.
|
| 380 |
+
|
| 381 |
+
00:07:22.104 --> 00:07:25.544
|
| 382 |
+
Vemos que tenemos seis, cinco, por acá tenemos
|
| 383 |
+
|
| 384 |
+
00:07:25.544 --> 00:07:29.400
|
| 385 |
+
seis, por arriba este cuatro es una muy
|
| 386 |
+
|
| 387 |
+
00:07:29.400 --> 00:07:32.040
|
| 388 |
+
buena opción, así que esa es la mejor
|
| 389 |
+
|
| 390 |
+
00:07:32.040 --> 00:07:38.840
|
| 391 |
+
opción. Tenemos que conectar este nodo b con
|
| 392 |
+
|
| 393 |
+
00:07:38.840 --> 00:07:42.815
|
| 394 |
+
un coste de cuatro y solo nos quedarían
|
| 395 |
+
|
| 396 |
+
00:07:42.955 --> 00:07:45.275
|
| 397 |
+
conectar estos nodos de acá y el nodo
|
| 398 |
+
|
| 399 |
+
00:07:45.275 --> 00:07:48.395
|
| 400 |
+
C. Continuamos nuestro algoritmo y miramos cuál es
|
| 401 |
+
|
| 402 |
+
00:07:48.395 --> 00:07:50.555
|
| 403 |
+
la opción que mejor se ajusta y que
|
| 404 |
+
|
| 405 |
+
00:07:50.555 --> 00:07:53.035
|
| 406 |
+
nos representa un menor coste, y nos damos
|
| 407 |
+
|
| 408 |
+
00:07:53.035 --> 00:07:55.139
|
| 409 |
+
cuenta que es el tres que tenemos arriba.
|
| 410 |
+
|
| 411 |
+
00:07:55.840 --> 00:07:59.539
|
| 412 |
+
Es este tres que vemos acá para conectar
|
| 413 |
+
|
| 414 |
+
00:07:59.759 --> 00:08:04.160
|
| 415 |
+
el nodo c, ¿de acuerdo? Y solo nos
|
| 416 |
+
|
| 417 |
+
00:08:04.160 --> 00:08:08.255
|
| 418 |
+
quedan estos dos nodos, el g, el d
|
| 419 |
+
|
| 420 |
+
00:08:08.875 --> 00:08:13.354
|
| 421 |
+
y el nodo g. Vemos que la mejor
|
| 422 |
+
|
| 423 |
+
00:08:13.354 --> 00:08:16.555
|
| 424 |
+
opción entre seis y cinco viene siendo este
|
| 425 |
+
|
| 426 |
+
00:08:16.555 --> 00:08:19.035
|
| 427 |
+
cinco de acá, y ya tenemos este nuevo
|
| 428 |
+
|
| 429 |
+
00:08:19.035 --> 00:08:22.919
|
| 430 |
+
conectado, y solo nos faltaría el nodo g.
|
| 431 |
+
|
| 432 |
+
00:08:22.919 --> 00:08:26.360
|
| 433 |
+
Cuando solo tenemos un nuevo faltante, no importa
|
| 434 |
+
|
| 435 |
+
00:08:26.360 --> 00:08:30.440
|
| 436 |
+
que hayan opciones menores, por ejemplo, acá, porque
|
| 437 |
+
|
| 438 |
+
00:08:30.440 --> 00:08:33.485
|
| 439 |
+
solo tenemos esas dos opciones. Así que nos
|
| 440 |
+
|
| 441 |
+
00:08:33.485 --> 00:08:36.365
|
| 442 |
+
iremos por la de menor coste que tengamos
|
| 443 |
+
|
| 444 |
+
00:08:36.365 --> 00:08:40.865
|
| 445 |
+
acá, que sería esta opción g con seis
|
| 446 |
+
|
| 447 |
+
00:08:41.644 --> 00:08:46.125
|
| 448 |
+
y hemos logrado conectar todos nuestros vértices con
|
| 449 |
+
|
| 450 |
+
00:08:46.125 --> 00:08:50.570
|
| 451 |
+
el coste mínimo. Vamos a graficar nuestro árbol
|
| 452 |
+
|
| 453 |
+
00:08:50.570 --> 00:08:54.649
|
| 454 |
+
de expansión mínimo que hemos obtenido. Nosotros empezamos
|
| 455 |
+
|
| 456 |
+
00:08:54.649 --> 00:08:57.370
|
| 457 |
+
el nodo g, el nodo e, tenemos acá
|
| 458 |
+
|
| 459 |
+
00:08:57.370 --> 00:09:00.829
|
| 460 |
+
el nodo f, el nodo I con uno,
|
| 461 |
+
|
| 462 |
+
00:09:01.014 --> 00:09:04.615
|
| 463 |
+
con dos. Acá tenemos el nodo h con
|
| 464 |
+
|
| 465 |
+
00:09:04.615 --> 00:09:07.654
|
| 466 |
+
un coste de dos. Nos vinimos acá con
|
| 467 |
+
|
| 468 |
+
00:09:07.654 --> 00:09:10.235
|
| 469 |
+
el nodo g con un coste de seis.
|
| 470 |
+
|
| 471 |
+
00:09:10.774 --> 00:09:15.449
|
| 472 |
+
Nos vinimos acá al nodo d con un
|
| 473 |
+
|
| 474 |
+
00:09:15.449 --> 00:09:18.970
|
| 475 |
+
coste de cinco, acá al nodo A con
|
| 476 |
+
|
| 477 |
+
00:09:18.970 --> 00:09:24.649
|
| 478 |
+
cuatro, nos fuimos al nodo B con cuatro,
|
| 479 |
+
|
| 480 |
+
00:09:24.649 --> 00:09:29.025
|
| 481 |
+
y el nodo C con tres. Y ese
|
| 482 |
+
|
| 483 |
+
00:09:29.025 --> 00:09:32.265
|
| 484 |
+
es el árbol de expansión mínimo utilizando el
|
| 485 |
+
|
| 486 |
+
00:09:32.265 --> 00:09:35.464
|
| 487 |
+
algoritmo de Prim para este para este gráfico
|
| 488 |
+
|
| 489 |
+
00:09:35.464 --> 00:09:38.024
|
| 490 |
+
que analizamos al principio. Solo nos queda responder
|
| 491 |
+
|
| 492 |
+
00:09:38.024 --> 00:09:40.524
|
| 493 |
+
una pregunta y es, ¿cuál fue el coste
|
| 494 |
+
|
| 495 |
+
00:09:40.745 --> 00:09:43.706
|
| 496 |
+
total de unir todos esos vértices? De unir
|
| 497 |
+
|
| 498 |
+
00:09:43.706 --> 00:09:47.280
|
| 499 |
+
todas esas ciudades, esas carreteras, esas conexiones, esos
|
| 500 |
+
|
| 501 |
+
00:09:47.280 --> 00:09:50.540
|
| 502 |
+
datos. Pues bien, tenemos que sumar cada uno
|
| 503 |
+
|
| 504 |
+
00:09:50.540 --> 00:09:55.280
|
| 505 |
+
de de las conexiones totales. Acá tenemos cuatro
|
| 506 |
+
|
| 507 |
+
00:09:55.340 --> 00:09:59.945
|
| 508 |
+
más tres, siete, más dos, nueve, diez, catorce,
|
| 509 |
+
|
| 510 |
+
00:10:02.005 --> 00:10:10.725
|
| 511 |
+
diecinueve, veinte, veintiuno y veintisiete. El coste total
|
| 512 |
+
|
| 513 |
+
00:10:10.725 --> 00:10:15.440
|
| 514 |
+
si sumamos todas las aristas conectadas fue de
|
| 515 |
+
|
| 516 |
+
00:10:16.600 --> 00:10:22.780
|
| 517 |
+
veintisiete unidades. Importante que el algoritmo de prime
|
| 518 |
+
|
| 519 |
+
00:10:22.780 --> 00:10:25.900
|
| 520 |
+
nos dice que se termina cuando hemos conectado
|
| 521 |
+
|
| 522 |
+
00:10:25.900 --> 00:10:29.075
|
| 523 |
+
todos los vértices con n menos uno aristas
|
| 524 |
+
|
| 525 |
+
00:10:29.075 --> 00:10:31.415
|
| 526 |
+
conectados, donde n es el número de vértices.
|
| 527 |
+
|
| 528 |
+
00:10:31.795 --> 00:10:34.995
|
| 529 |
+
Recordemos que teníamos uno, dos, tres, cuatro, cinco,
|
| 530 |
+
|
| 531 |
+
00:10:34.995 --> 00:10:38.035
|
| 532 |
+
seis, siete, ocho, nueve, vértices, por lo tanto
|
| 533 |
+
|
| 534 |
+
00:10:38.035 --> 00:10:41.730
|
| 535 |
+
tenemos que tener n menos uno conexiones, es
|
| 536 |
+
|
| 537 |
+
00:10:41.730 --> 00:10:45.830
|
| 538 |
+
decir ocho conexiones. Vamos a anotarlas acá, uno,
|
| 539 |
+
|
| 540 |
+
00:10:46.530 --> 00:10:52.905
|
| 541 |
+
dos, tres, cuatro, cinco, seis, siete y ocho.
|
| 542 |
+
|
| 543 |
+
00:10:53.385 --> 00:10:56.585
|
| 544 |
+
Lo hemos conseguido, hemos completado el algoritmo de
|
| 545 |
+
|
| 546 |
+
00:10:56.585 --> 00:10:59.005
|
| 547 |
+
print para encontrar el árbol de expansión mínimo.
|
| 548 |
+
|
| 549 |
+
00:10:59.385 --> 00:11:00.925
|
| 550 |
+
Vamos con el siguiente algoritmo.
|
a/Curso de Matemáticas Discretas/06-Algoritmos/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/02-Algoritmo de Dijkstra Ruta Óptima y Coste Mínimo.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7d9de80870251cd15294c6b1585fe7de51e1e305b358401b5c5c0b10462a86db
|
| 3 |
+
size 110547333
|
a/Curso de Matemáticas Discretas/06-Algoritmos/02-Algoritmo de Dijkstra Ruta Óptima y Coste Mínimo.vtt
ADDED
|
@@ -0,0 +1,514 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.000 --> 00:00:07.839
|
| 4 |
+
El algoritmo de Gixtra. Ya aprendiste el algoritmo
|
| 5 |
+
|
| 6 |
+
00:00:07.839 --> 00:00:10.179
|
| 7 |
+
de Print, que lo que nos permitía era
|
| 8 |
+
|
| 9 |
+
00:00:11.120 --> 00:00:13.840
|
| 10 |
+
encontrar el coste mínimo de conectar todos los
|
| 11 |
+
|
| 12 |
+
00:00:13.840 --> 00:00:18.185
|
| 13 |
+
puntos en una gráfica. El algoritmo de Gigstra,
|
| 14 |
+
|
| 15 |
+
00:00:18.185 --> 00:00:20.105
|
| 16 |
+
a diferencia de ese, lo que va a
|
| 17 |
+
|
| 18 |
+
00:00:20.105 --> 00:00:23.325
|
| 19 |
+
buscar es la ruta óptima o el coste
|
| 20 |
+
|
| 21 |
+
00:00:23.785 --> 00:00:26.665
|
| 22 |
+
mínimo de conectar un punto inicial con un
|
| 23 |
+
|
| 24 |
+
00:00:26.665 --> 00:00:29.460
|
| 25 |
+
punto final. ¿Cuál es esa ruta mínima? ¿Cómo
|
| 26 |
+
|
| 27 |
+
00:00:29.460 --> 00:00:32.580
|
| 28 |
+
encuentro esa ruta óptima? Esto no solo es
|
| 29 |
+
|
| 30 |
+
00:00:32.580 --> 00:00:35.540
|
| 31 |
+
aplicable para redes de comunicación o ciudades, también
|
| 32 |
+
|
| 33 |
+
00:00:35.540 --> 00:00:37.860
|
| 34 |
+
puede ser para proyectos. Si tú tienes, por
|
| 35 |
+
|
| 36 |
+
00:00:37.860 --> 00:00:41.380
|
| 37 |
+
ejemplo, diferentes rutas de tareas en tu proyecto,
|
| 38 |
+
|
| 39 |
+
00:00:41.380 --> 00:00:43.914
|
| 40 |
+
¿cuál es esa ruta crítica que tú necesitas
|
| 41 |
+
|
| 42 |
+
00:00:43.914 --> 00:00:47.195
|
| 43 |
+
para tu proyecto. Entonces, en el ejemplo que
|
| 44 |
+
|
| 45 |
+
00:00:47.195 --> 00:00:49.114
|
| 46 |
+
vamos a ver, vamos a tratar de conectar
|
| 47 |
+
|
| 48 |
+
00:00:49.114 --> 00:00:51.835
|
| 49 |
+
el punto a con el punto f de
|
| 50 |
+
|
| 51 |
+
00:00:51.835 --> 00:00:56.570
|
| 52 |
+
manera óptima, ¿de acuerdo? ¿En qué consiste este
|
| 53 |
+
|
| 54 |
+
00:00:56.570 --> 00:01:00.570
|
| 55 |
+
algoritmo? Vamos a iniciar y a cada nodo
|
| 56 |
+
|
| 57 |
+
00:01:00.570 --> 00:01:03.469
|
| 58 |
+
que no hayamos visitado le vamos a asignar
|
| 59 |
+
|
| 60 |
+
00:01:03.610 --> 00:01:06.330
|
| 61 |
+
una distancia de infinito. Vamos a verlo como
|
| 62 |
+
|
| 63 |
+
00:01:06.330 --> 00:01:08.970
|
| 64 |
+
que queda lejos, que nunca lo vamos a
|
| 65 |
+
|
| 66 |
+
00:01:08.970 --> 00:01:11.725
|
| 67 |
+
alcanzar, Y vamos a mantener un registro de
|
| 68 |
+
|
| 69 |
+
00:01:11.725 --> 00:01:14.925
|
| 70 |
+
los nodos no visitados. Como vamos a iniciar
|
| 71 |
+
|
| 72 |
+
00:01:14.925 --> 00:01:17.325
|
| 73 |
+
en un en un nodo inicial, a este
|
| 74 |
+
|
| 75 |
+
00:01:17.325 --> 00:01:20.385
|
| 76 |
+
le vamos a asignar una distancia de cero.
|
| 77 |
+
|
| 78 |
+
00:01:21.485 --> 00:01:24.870
|
| 79 |
+
Vamos a calcular los nodos que estén conectados
|
| 80 |
+
|
| 81 |
+
00:01:24.870 --> 00:01:27.530
|
| 82 |
+
con este vértice inicial y vamos a actualizar
|
| 83 |
+
|
| 84 |
+
00:01:28.310 --> 00:01:31.270
|
| 85 |
+
las distancias, es decir, si es menor que
|
| 86 |
+
|
| 87 |
+
00:01:31.270 --> 00:01:34.070
|
| 88 |
+
infinito lo vamos a reemplazar por este valor
|
| 89 |
+
|
| 90 |
+
00:01:34.070 --> 00:01:36.435
|
| 91 |
+
y si no lo vamos a ignorar y
|
| 92 |
+
|
| 93 |
+
00:01:36.435 --> 00:01:40.595
|
| 94 |
+
vamos a repetir esta alteración para cada nodo.
|
| 95 |
+
|
| 96 |
+
00:01:40.595 --> 00:01:44.034
|
| 97 |
+
El algoritmo finalizará cuando se llegue al nodo
|
| 98 |
+
|
| 99 |
+
00:01:44.034 --> 00:01:46.675
|
| 100 |
+
final. Sé que suena un poco enredado, pero
|
| 101 |
+
|
| 102 |
+
00:01:46.675 --> 00:01:49.240
|
| 103 |
+
cuando veamos el ejemplo vamos a ver que
|
| 104 |
+
|
| 105 |
+
00:01:49.240 --> 00:01:51.240
|
| 106 |
+
es muy sencillo y nos va a resultar
|
| 107 |
+
|
| 108 |
+
00:01:51.240 --> 00:01:54.759
|
| 109 |
+
de mucha utilidad en muchas aplicaciones. Vamos a
|
| 110 |
+
|
| 111 |
+
00:01:54.759 --> 00:01:58.119
|
| 112 |
+
ver cómo funciona el algoritmo de Jigstra. Vamos
|
| 113 |
+
|
| 114 |
+
00:01:58.119 --> 00:02:01.285
|
| 115 |
+
a aplicar el algoritmo de Jigstra para el
|
| 116 |
+
|
| 117 |
+
00:02:01.285 --> 00:02:05.545
|
| 118 |
+
gráfico, el árbol que tenemos en nuestras pantallas.
|
| 119 |
+
|
| 120 |
+
00:02:06.085 --> 00:02:09.764
|
| 121 |
+
Observemos que es un árbol de expansión porque
|
| 122 |
+
|
| 123 |
+
00:02:09.764 --> 00:02:14.709
|
| 124 |
+
tenemos un recurso o un coste asociado para
|
| 125 |
+
|
| 126 |
+
00:02:14.709 --> 00:02:17.510
|
| 127 |
+
cada uno de los trayectos. Por ejemplo ir
|
| 128 |
+
|
| 129 |
+
00:02:17.510 --> 00:02:20.790
|
| 130 |
+
de DAF me cuesta dos, me cuesta dos
|
| 131 |
+
|
| 132 |
+
00:02:20.790 --> 00:02:25.370
|
| 133 |
+
horas, dos unidades, dos cantidades de un elemento
|
| 134 |
+
|
| 135 |
+
00:02:26.230 --> 00:02:29.345
|
| 136 |
+
y a diferencia del algoritmo de Prim, donde
|
| 137 |
+
|
| 138 |
+
00:02:29.345 --> 00:02:33.265
|
| 139 |
+
yo busco conectar todos los vértices con el
|
| 140 |
+
|
| 141 |
+
00:02:33.265 --> 00:02:36.305
|
| 142 |
+
mínimo coste, en el algoritmo de Gixtal lo
|
| 143 |
+
|
| 144 |
+
00:02:36.305 --> 00:02:37.985
|
| 145 |
+
que vamos a usar, lo que vamos a
|
| 146 |
+
|
| 147 |
+
00:02:37.985 --> 00:02:41.620
|
| 148 |
+
tratar de hacer es conectar dos puntos con
|
| 149 |
+
|
| 150 |
+
00:02:41.620 --> 00:02:44.599
|
| 151 |
+
el mínimo coste. Es decir, yo en este
|
| 152 |
+
|
| 153 |
+
00:02:44.659 --> 00:02:46.599
|
| 154 |
+
caso voy a buscar ir de mi nodo
|
| 155 |
+
|
| 156 |
+
00:02:46.739 --> 00:02:50.340
|
| 157 |
+
a al nodo f buscando la ruta óptima,
|
| 158 |
+
|
| 159 |
+
00:02:50.340 --> 00:02:52.739
|
| 160 |
+
el mejor camino que me cueste menos y
|
| 161 |
+
|
| 162 |
+
00:02:52.739 --> 00:02:57.905
|
| 163 |
+
que me permita completar mi trayecto completo. Para
|
| 164 |
+
|
| 165 |
+
00:02:58.405 --> 00:03:01.045
|
| 166 |
+
empezar nuestro algoritmo de Jigstra, lo que vamos
|
| 167 |
+
|
| 168 |
+
00:03:01.045 --> 00:03:04.165
|
| 169 |
+
a hacer es colocar nuestro nodo inicial en
|
| 170 |
+
|
| 171 |
+
00:03:04.165 --> 00:03:07.765
|
| 172 |
+
ceros. Vamos a asignarle al nodo inicial donde
|
| 173 |
+
|
| 174 |
+
00:03:07.765 --> 00:03:10.660
|
| 175 |
+
vamos a colocar un cero y para los
|
| 176 |
+
|
| 177 |
+
00:03:10.660 --> 00:03:14.260
|
| 178 |
+
demás nodos que no hayamos visitado, vamos a
|
| 179 |
+
|
| 180 |
+
00:03:14.260 --> 00:03:19.140
|
| 181 |
+
colocarle un infinito. Así va a ser como
|
| 182 |
+
|
| 183 |
+
00:03:19.140 --> 00:03:26.105
|
| 184 |
+
nuestro algoritmo comienza. Vamos a asignar unas distancias
|
| 185 |
+
|
| 186 |
+
00:03:26.105 --> 00:03:28.345
|
| 187 |
+
o un coste de infinito que vamos a
|
| 188 |
+
|
| 189 |
+
00:03:28.345 --> 00:03:35.864
|
| 190 |
+
ir actualizando iteración tras iteración. Comencemos. Cuando tengo
|
| 191 |
+
|
| 192 |
+
00:03:35.864 --> 00:03:38.519
|
| 193 |
+
mi vértice a, observo que este tiene tres
|
| 194 |
+
|
| 195 |
+
00:03:38.519 --> 00:03:42.379
|
| 196 |
+
conexiones diferentes. Observamos que para ir a b
|
| 197 |
+
|
| 198 |
+
00:03:43.160 --> 00:03:46.120
|
| 199 |
+
tenemos cuatro, que para ir a c tres
|
| 200 |
+
|
| 201 |
+
00:03:46.120 --> 00:03:49.739
|
| 202 |
+
y para ir a e tenemos siete. Y
|
| 203 |
+
|
| 204 |
+
00:03:50.205 --> 00:03:53.985
|
| 205 |
+
empecemos analizando b. Cuatro es menor que infinito,
|
| 206 |
+
|
| 207 |
+
00:03:54.285 --> 00:03:58.224
|
| 208 |
+
por lo tanto yo actualizo esa ese infinito
|
| 209 |
+
|
| 210 |
+
00:03:58.364 --> 00:04:01.165
|
| 211 |
+
y le coloco que ir a b tiene
|
| 212 |
+
|
| 213 |
+
00:04:01.165 --> 00:04:04.540
|
| 214 |
+
una distancia de cuatro. Ir a c tiene
|
| 215 |
+
|
| 216 |
+
00:04:04.540 --> 00:04:06.940
|
| 217 |
+
una distancia o un coste de tres que
|
| 218 |
+
|
| 219 |
+
00:04:06.940 --> 00:04:10.379
|
| 220 |
+
es menor que infinito, por lo tanto esa
|
| 221 |
+
|
| 222 |
+
00:04:10.379 --> 00:04:13.760
|
| 223 |
+
es mi nueva distancia al nodo cero. Y
|
| 224 |
+
|
| 225 |
+
00:04:13.980 --> 00:04:17.500
|
| 226 |
+
por último el vértice e tiene un coste
|
| 227 |
+
|
| 228 |
+
00:04:17.500 --> 00:04:20.775
|
| 229 |
+
de siete, así que es menor que infinito,
|
| 230 |
+
|
| 231 |
+
00:04:20.775 --> 00:04:23.035
|
| 232 |
+
por lo tanto yo lo voy a cambiar.
|
| 233 |
+
|
| 234 |
+
00:04:24.615 --> 00:04:27.575
|
| 235 |
+
Una vez ya tenemos las distancias de los
|
| 236 |
+
|
| 237 |
+
00:04:27.575 --> 00:04:30.920
|
| 238 |
+
vértices más cercanos a mi vértice inicial, me
|
| 239 |
+
|
| 240 |
+
00:04:30.920 --> 00:04:32.680
|
| 241 |
+
voy a ir por la menor ruta. En
|
| 242 |
+
|
| 243 |
+
00:04:32.680 --> 00:04:35.660
|
| 244 |
+
este caso me voy a ir por este
|
| 245 |
+
|
| 246 |
+
00:04:35.880 --> 00:04:38.120
|
| 247 |
+
tres que tengo acá y ya he visitado
|
| 248 |
+
|
| 249 |
+
00:04:38.120 --> 00:04:41.640
|
| 250 |
+
este nodo c. Cuando visito este nodo c
|
| 251 |
+
|
| 252 |
+
00:04:41.640 --> 00:04:47.064
|
| 253 |
+
veo que él tiene conexiones ABADYAE. Por lo
|
| 254 |
+
|
| 255 |
+
00:04:47.064 --> 00:04:50.025
|
| 256 |
+
tanto vamos a revisar las distancias a esas
|
| 257 |
+
|
| 258 |
+
00:04:50.025 --> 00:04:53.384
|
| 259 |
+
conexiones. Empecemos con el nodo b. Yo sé
|
| 260 |
+
|
| 261 |
+
00:04:53.384 --> 00:04:56.664
|
| 262 |
+
que acá tengo tres y de ir y
|
| 263 |
+
|
| 264 |
+
00:04:56.664 --> 00:05:00.319
|
| 265 |
+
de CAB tengo seis. Tres más seis tendría
|
| 266 |
+
|
| 267 |
+
00:05:00.539 --> 00:05:03.900
|
| 268 |
+
nueve, pero nueve es mayor que cuatro, por
|
| 269 |
+
|
| 270 |
+
00:05:03.900 --> 00:05:06.699
|
| 271 |
+
lo tanto, vamos a descartar esa ruta porque
|
| 272 |
+
|
| 273 |
+
00:05:06.699 --> 00:05:09.020
|
| 274 |
+
ya tenemos una ruta más óptima a este
|
| 275 |
+
|
| 276 |
+
00:05:09.020 --> 00:05:14.585
|
| 277 |
+
nodo. Vamos a ir TCAD, entonces ya tenemos
|
| 278 |
+
|
| 279 |
+
00:05:14.585 --> 00:05:19.145
|
| 280 |
+
tres en este camino más once tendríamos catorce
|
| 281 |
+
|
| 282 |
+
00:05:19.145 --> 00:05:23.145
|
| 283 |
+
para ir ADY catorce efectivamente es menor que
|
| 284 |
+
|
| 285 |
+
00:05:23.145 --> 00:05:26.400
|
| 286 |
+
infinito, así que esa será por el momento
|
| 287 |
+
|
| 288 |
+
00:05:26.400 --> 00:05:29.759
|
| 289 |
+
nuestra ruta óptima a d, por el momento
|
| 290 |
+
|
| 291 |
+
00:05:29.759 --> 00:05:34.660
|
| 292 |
+
tenemos catorce. Y podemos visitar nuestro nodo e,
|
| 293 |
+
|
| 294 |
+
00:05:36.080 --> 00:05:42.294
|
| 295 |
+
que tendríamos tres más ocho, tendríamos once y
|
| 296 |
+
|
| 297 |
+
00:05:42.294 --> 00:05:44.535
|
| 298 |
+
once es mayor que siete, por lo tanto
|
| 299 |
+
|
| 300 |
+
00:05:44.535 --> 00:05:48.135
|
| 301 |
+
también descartamos esa ruta. Una vez ya hayamos
|
| 302 |
+
|
| 303 |
+
00:05:48.135 --> 00:05:51.975
|
| 304 |
+
visitado este camino de c, vamos con la
|
| 305 |
+
|
| 306 |
+
00:05:51.975 --> 00:05:54.555
|
| 307 |
+
segunda opción que teníamos que era irnos por
|
| 308 |
+
|
| 309 |
+
00:05:54.695 --> 00:05:56.760
|
| 310 |
+
el camino de b, que era este que
|
| 311 |
+
|
| 312 |
+
00:05:56.760 --> 00:05:59.960
|
| 313 |
+
tenemos acá. Vemos que ya tenemos la distancia
|
| 314 |
+
|
| 315 |
+
00:05:59.960 --> 00:06:02.120
|
| 316 |
+
de nuestro nuevo b y de b nos
|
| 317 |
+
|
| 318 |
+
00:06:02.120 --> 00:06:07.880
|
| 319 |
+
podemos conectar ADYAC. Para llegar a d, tenemos
|
| 320 |
+
|
| 321 |
+
00:06:07.880 --> 00:06:10.985
|
| 322 |
+
una distancia de cuatro y de cinco. Cuatro
|
| 323 |
+
|
| 324 |
+
00:06:11.525 --> 00:06:15.125
|
| 325 |
+
más cinco tenemos nueve y nueve es menor
|
| 326 |
+
|
| 327 |
+
00:06:15.125 --> 00:06:18.564
|
| 328 |
+
que catorce. Por lo tanto, podemos actualizar este
|
| 329 |
+
|
| 330 |
+
00:06:18.564 --> 00:06:21.844
|
| 331 |
+
nuevo valor. Hay una ruta más óptima para
|
| 332 |
+
|
| 333 |
+
00:06:21.844 --> 00:06:25.710
|
| 334 |
+
llegar acá, que sería nueve. Y para llegar
|
| 335 |
+
|
| 336 |
+
00:06:25.710 --> 00:06:28.590
|
| 337 |
+
a seis tendríamos cuatro y seis, diez. Ya
|
| 338 |
+
|
| 339 |
+
00:06:28.590 --> 00:06:31.950
|
| 340 |
+
sabemos que acá tenemos el tres, que es
|
| 341 |
+
|
| 342 |
+
00:06:31.950 --> 00:06:34.030
|
| 343 |
+
nuestra ruta óptima por el momento al llegar
|
| 344 |
+
|
| 345 |
+
00:06:34.030 --> 00:06:36.830
|
| 346 |
+
al nodo c. Y ya tenemos el nodo
|
| 347 |
+
|
| 348 |
+
00:06:36.830 --> 00:06:40.604
|
| 349 |
+
d. Podemos ahora ir a nuestra tercera opción,
|
| 350 |
+
|
| 351 |
+
00:06:41.544 --> 00:06:44.685
|
| 352 |
+
que era irnos por acá. Ya tenemos siete,
|
| 353 |
+
|
| 354 |
+
00:06:44.824 --> 00:06:46.925
|
| 355 |
+
y vemos que de ahí nos podemos conectar
|
| 356 |
+
|
| 357 |
+
00:06:47.065 --> 00:06:52.110
|
| 358 |
+
ADYAG. Siete más dos, nueve. Ya tenemos esa
|
| 359 |
+
|
| 360 |
+
00:06:52.110 --> 00:06:56.350
|
| 361 |
+
ruta óptima, así que dejamos ese valor. Para
|
| 362 |
+
|
| 363 |
+
00:06:56.350 --> 00:06:58.990
|
| 364 |
+
llegar a g todavía tenemos un infinito, así
|
| 365 |
+
|
| 366 |
+
00:06:58.990 --> 00:07:03.325
|
| 367 |
+
que tenemos siete más cinco, tendríamos doce, que
|
| 368 |
+
|
| 369 |
+
00:07:03.325 --> 00:07:08.305
|
| 370 |
+
es menor que infinito, y actualizamos nuestra ruta.
|
| 371 |
+
|
| 372 |
+
00:07:09.805 --> 00:07:12.445
|
| 373 |
+
Y ya hemos visitado todos estos nodos, ya
|
| 374 |
+
|
| 375 |
+
00:07:12.445 --> 00:07:15.245
|
| 376 |
+
hemos llegado hasta d y hasta g. Solo
|
| 377 |
+
|
| 378 |
+
00:07:15.245 --> 00:07:19.970
|
| 379 |
+
nos queda mirar cómo podemos llegar a f.
|
| 380 |
+
|
| 381 |
+
00:07:19.970 --> 00:07:22.290
|
| 382 |
+
¿Cuál es la ruta más óptima? Si ya
|
| 383 |
+
|
| 384 |
+
00:07:22.290 --> 00:07:25.410
|
| 385 |
+
tenemos esta ruta siete y cinco, para llegar
|
| 386 |
+
|
| 387 |
+
00:07:25.410 --> 00:07:28.770
|
| 388 |
+
a f tendríamos siete cinco doce y tres
|
| 389 |
+
|
| 390 |
+
00:07:28.770 --> 00:07:32.885
|
| 391 |
+
quince. Quince sería menor que infinito, así que
|
| 392 |
+
|
| 393 |
+
00:07:32.885 --> 00:07:37.445
|
| 394 |
+
lo actualizamos como nuestra ruta óptima. Por otro
|
| 395 |
+
|
| 396 |
+
00:07:37.445 --> 00:07:41.145
|
| 397 |
+
lado, si acá tenemos doce, ir a d,
|
| 398 |
+
|
| 399 |
+
00:07:41.205 --> 00:07:44.485
|
| 400 |
+
nos saldría mucho más costoso, entonces dejamos nueve
|
| 401 |
+
|
| 402 |
+
00:07:44.485 --> 00:07:48.050
|
| 403 |
+
como nuestra ruta óptima hasta ahí. Vámonos ahora
|
| 404 |
+
|
| 405 |
+
00:07:48.590 --> 00:07:51.790
|
| 406 |
+
por nuestra la primera ruta que tomamos, la
|
| 407 |
+
|
| 408 |
+
00:07:51.790 --> 00:07:55.150
|
| 409 |
+
segunda, cuatro más cinco, nueve, y llegar a
|
| 410 |
+
|
| 411 |
+
00:07:55.150 --> 00:08:01.155
|
| 412 |
+
f nos costaría once. Y once es menor
|
| 413 |
+
|
| 414 |
+
00:08:01.155 --> 00:08:04.354
|
| 415 |
+
que quince, por lo tanto, esa es nuestra
|
| 416 |
+
|
| 417 |
+
00:08:04.354 --> 00:08:08.915
|
| 418 |
+
ruta óptima para llegar a este nodo f.
|
| 419 |
+
|
| 420 |
+
00:08:08.915 --> 00:08:10.755
|
| 421 |
+
Y vemos que para llegar a nodo f
|
| 422 |
+
|
| 423 |
+
00:08:10.755 --> 00:08:12.880
|
| 424 |
+
solo tenemos esas dos opciones, por lo tanto,
|
| 425 |
+
|
| 426 |
+
00:08:12.880 --> 00:08:16.980
|
| 427 |
+
hemos encontrado nuestra ruta óptima, hemos encontrado la
|
| 428 |
+
|
| 429 |
+
00:08:17.320 --> 00:08:20.640
|
| 430 |
+
ruta óptima con el coste mínimo para ir
|
| 431 |
+
|
| 432 |
+
00:08:20.640 --> 00:08:23.120
|
| 433 |
+
de mi punto a a mi punto f.
|
| 434 |
+
|
| 435 |
+
00:08:23.120 --> 00:08:26.014
|
| 436 |
+
Vamos a colocarlo acá para que observemos cuál
|
| 437 |
+
|
| 438 |
+
00:08:26.014 --> 00:08:31.455
|
| 439 |
+
fue la ruta que tomamos y cuál es
|
| 440 |
+
|
| 441 |
+
00:08:31.455 --> 00:08:38.835
|
| 442 |
+
el coste total. YFY el coste sería cuatro,
|
| 443 |
+
|
| 444 |
+
00:08:41.600 --> 00:08:45.360
|
| 445 |
+
cinco y dos, para un total de once
|
| 446 |
+
|
| 447 |
+
00:08:45.360 --> 00:08:48.740
|
| 448 |
+
unidades. Y así es como funciona el algoritmo
|
| 449 |
+
|
| 450 |
+
00:08:48.800 --> 00:08:53.075
|
| 451 |
+
de JiExtra. Recordemos brevemente los pasos. Primero, inicio
|
| 452 |
+
|
| 453 |
+
00:08:53.075 --> 00:08:55.275
|
| 454 |
+
mi nodo inicial en cero y le asigno
|
| 455 |
+
|
| 456 |
+
00:08:55.275 --> 00:08:57.635
|
| 457 |
+
un valor de infinito a todos los nodos
|
| 458 |
+
|
| 459 |
+
00:08:57.635 --> 00:09:01.235
|
| 460 |
+
que no haya visitado. Segundo, en cada interacción
|
| 461 |
+
|
| 462 |
+
00:09:01.235 --> 00:09:04.835
|
| 463 |
+
yo voy a actualizar la distancia a cada
|
| 464 |
+
|
| 465 |
+
00:09:04.835 --> 00:09:07.430
|
| 466 |
+
nodo cercano que yo tenga con mi nodo
|
| 467 |
+
|
| 468 |
+
00:09:07.430 --> 00:09:10.470
|
| 469 |
+
inicial y vamos a repetir esto para cada
|
| 470 |
+
|
| 471 |
+
00:09:10.470 --> 00:09:14.550
|
| 472 |
+
nueva interacción para cada nueva interacción asignando nuevos
|
| 473 |
+
|
| 474 |
+
00:09:14.550 --> 00:09:19.290
|
| 475 |
+
valores a los nodos que vaya visitando continuamente.
|
| 476 |
+
|
| 477 |
+
00:09:20.084 --> 00:09:23.012
|
| 478 |
+
Si la distancia que encontramos es menor que
|
| 479 |
+
|
| 480 |
+
00:09:23.012 --> 00:09:26.324
|
| 481 |
+
la que teníamos actualmente, la reemplazamos. Si no,
|
| 482 |
+
|
| 483 |
+
00:09:26.324 --> 00:09:30.185
|
| 484 |
+
ignoramos esa ruta hasta encontrar la ruta óptima
|
| 485 |
+
|
| 486 |
+
00:09:30.564 --> 00:09:33.040
|
| 487 |
+
del punto a al punto f. El algoritmo
|
| 488 |
+
|
| 489 |
+
00:09:33.100 --> 00:09:37.500
|
| 490 |
+
finalizará cuando lleguemos a nuestro punto final. Ya
|
| 491 |
+
|
| 492 |
+
00:09:37.500 --> 00:09:40.060
|
| 493 |
+
sabes cómo funciona el algoritmo de Jigstra en
|
| 494 |
+
|
| 495 |
+
00:09:40.060 --> 00:09:42.939
|
| 496 |
+
la teoría. Si te interesa saber cómo llevarlo
|
| 497 |
+
|
| 498 |
+
00:09:42.939 --> 00:09:44.860
|
| 499 |
+
a la práctica y cómo llevarlo a tus
|
| 500 |
+
|
| 501 |
+
00:09:44.860 --> 00:09:48.365
|
| 502 |
+
proyectos en un lenguaje de programación, te invito
|
| 503 |
+
|
| 504 |
+
00:09:48.505 --> 00:09:50.745
|
| 505 |
+
a que veas el curso de algoritmos de
|
| 506 |
+
|
| 507 |
+
00:09:50.745 --> 00:09:53.625
|
| 508 |
+
Platzi, donde encontrarás todo lo que necesitas para
|
| 509 |
+
|
| 510 |
+
00:09:53.625 --> 00:09:56.905
|
| 511 |
+
llevar esto a la práctica. Nos vemos en
|
| 512 |
+
|
| 513 |
+
00:09:56.905 --> 00:09:57.805
|
| 514 |
+
la siguiente clase.
|
a/Curso de Matemáticas Discretas/06-Algoritmos/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/03-Algoritmo de Kruskal.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:725d5c9efb39c380d1f47d663eb62cedd406657bcf88bac677f561934ccdad6f
|
| 3 |
+
size 76789505
|
a/Curso de Matemáticas Discretas/06-Algoritmos/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/04-Algoritmo de Flury Encontrar Ciclos Eulerianos en Grafos.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:51e6034bf54809eccd4493fb9190402c7ce85d90fecdd283e0a339b7e1cbce8c
|
| 3 |
+
size 107533589
|
a/Curso de Matemáticas Discretas/06-Algoritmos/04-Algoritmo de Flury Encontrar Ciclos Eulerianos en Grafos.vtt
ADDED
|
@@ -0,0 +1,427 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.319 --> 00:00:06.580
|
| 4 |
+
En nuestro estudio de la teoría de gráficos
|
| 5 |
+
|
| 6 |
+
00:00:06.720 --> 00:00:09.040
|
| 7 |
+
vimos lo que era un camino y un
|
| 8 |
+
|
| 9 |
+
00:00:09.040 --> 00:00:13.759
|
| 10 |
+
ciclo euleriano. Recordemos que un ciclo euleriano nos
|
| 11 |
+
|
| 12 |
+
00:00:13.759 --> 00:00:17.695
|
| 13 |
+
permite visitar todas las aristas, todas las conexiones
|
| 14 |
+
|
| 15 |
+
00:00:18.074 --> 00:00:21.195
|
| 16 |
+
una y solo una vez pasando yo por
|
| 17 |
+
|
| 18 |
+
00:00:21.195 --> 00:00:24.875
|
| 19 |
+
todos los vértices. Y vimos que es muy
|
| 20 |
+
|
| 21 |
+
00:00:24.875 --> 00:00:28.154
|
| 22 |
+
fácil comprobar si había un ciclo euleriano en
|
| 23 |
+
|
| 24 |
+
00:00:28.154 --> 00:00:30.790
|
| 25 |
+
una gráfica. Teníamos que analizar el grado de
|
| 26 |
+
|
| 27 |
+
00:00:30.790 --> 00:00:33.030
|
| 28 |
+
cada uno de los vértices y si los
|
| 29 |
+
|
| 30 |
+
00:00:33.030 --> 00:00:36.490
|
| 31 |
+
grados de todos los vértices eran par significaba
|
| 32 |
+
|
| 33 |
+
00:00:36.790 --> 00:00:40.630
|
| 34 |
+
que existía un ciclo euleriano. El algoritmo de
|
| 35 |
+
|
| 36 |
+
00:00:40.630 --> 00:00:42.965
|
| 37 |
+
Fluri lo que nos va a permitir es
|
| 38 |
+
|
| 39 |
+
00:00:43.184 --> 00:00:46.144
|
| 40 |
+
encontrar un ciclo euleriano. Vamos a ver en
|
| 41 |
+
|
| 42 |
+
00:00:46.144 --> 00:00:49.664
|
| 43 |
+
qué consiste. Primero tendremos que verificar el grado
|
| 44 |
+
|
| 45 |
+
00:00:49.664 --> 00:00:52.245
|
| 46 |
+
de cada uno de los vértices para comprobar
|
| 47 |
+
|
| 48 |
+
00:00:52.545 --> 00:00:55.204
|
| 49 |
+
si sí existe o no un ciclo euleriano.
|
| 50 |
+
|
| 51 |
+
00:00:56.170 --> 00:00:58.429
|
| 52 |
+
Después de esto vamos a realizar un circuito
|
| 53 |
+
|
| 54 |
+
00:00:59.370 --> 00:01:01.690
|
| 55 |
+
cerrado, no importa que no incluyamos todas las
|
| 56 |
+
|
| 57 |
+
00:01:01.690 --> 00:01:04.890
|
| 58 |
+
aristas, todas las conexiones, lo importante es tener
|
| 59 |
+
|
| 60 |
+
00:01:04.890 --> 00:01:08.905
|
| 61 |
+
un circuito cerrado y en cada nueva iteracion
|
| 62 |
+
|
| 63 |
+
00:01:08.905 --> 00:01:12.665
|
| 64 |
+
agregar nuevos circuitos cerrados que incluyan conexiones que
|
| 65 |
+
|
| 66 |
+
00:01:12.665 --> 00:01:15.785
|
| 67 |
+
no hemos tenido en cuenta, conexiones que no
|
| 68 |
+
|
| 69 |
+
00:01:15.785 --> 00:01:20.185
|
| 70 |
+
hayan sido visitados. Vamos a reemplazar cada nuevo
|
| 71 |
+
|
| 72 |
+
00:01:20.185 --> 00:01:22.445
|
| 73 |
+
circuito que yo esté haciendo en el circuito
|
| 74 |
+
|
| 75 |
+
00:01:22.505 --> 00:01:26.640
|
| 76 |
+
inicial y así al final obtendremos nuestro ciclo
|
| 77 |
+
|
| 78 |
+
00:01:26.780 --> 00:01:30.240
|
| 79 |
+
euleriano. Qué fácil suena, ¿verdad? Vamos a hacerlo
|
| 80 |
+
|
| 81 |
+
00:01:30.539 --> 00:01:33.500
|
| 82 |
+
juntos. El algoritmo de Flury nos va a
|
| 83 |
+
|
| 84 |
+
00:01:33.500 --> 00:01:39.305
|
| 85 |
+
permitir encontrar un ciclo euleriano. Recordemos rápidamente qué
|
| 86 |
+
|
| 87 |
+
00:01:39.305 --> 00:01:42.825
|
| 88 |
+
es un ciclo euleriano. Es un ciclo donde
|
| 89 |
+
|
| 90 |
+
00:01:42.825 --> 00:01:45.405
|
| 91 |
+
yo inicio y termino en el mismo punto
|
| 92 |
+
|
| 93 |
+
00:01:45.465 --> 00:01:48.730
|
| 94 |
+
y he visitado todas las aristas o todas
|
| 95 |
+
|
| 96 |
+
00:01:48.730 --> 00:01:53.290
|
| 97 |
+
las conexiones una y solo una vez. Ya
|
| 98 |
+
|
| 99 |
+
00:01:53.290 --> 00:01:57.710
|
| 100 |
+
sabemos cómo identificar si existe un ciclo euleriano
|
| 101 |
+
|
| 102 |
+
00:01:58.010 --> 00:02:00.410
|
| 103 |
+
basándonos en el grado de cada uno de
|
| 104 |
+
|
| 105 |
+
00:02:00.410 --> 00:02:04.285
|
| 106 |
+
los vértices. Recordemos cómo es el grado de
|
| 107 |
+
|
| 108 |
+
00:02:04.285 --> 00:02:05.805
|
| 109 |
+
un vértice y cuál es el grado de
|
| 110 |
+
|
| 111 |
+
00:02:05.805 --> 00:02:08.145
|
| 112 |
+
los vértices que tenemos en la siguiente gráfica.
|
| 113 |
+
|
| 114 |
+
00:02:08.685 --> 00:02:11.325
|
| 115 |
+
Miremos que en a tenemos dos conexiones, por
|
| 116 |
+
|
| 117 |
+
00:02:11.325 --> 00:02:14.525
|
| 118 |
+
lo tanto, su grado es dos. Miremos que
|
| 119 |
+
|
| 120 |
+
00:02:14.525 --> 00:02:17.345
|
| 121 |
+
el grado de f es uno, dos, tres,
|
| 122 |
+
|
| 123 |
+
00:02:17.645 --> 00:02:21.360
|
| 124 |
+
cuatro, cuatro. En b, tenemos uno, dos, tres,
|
| 125 |
+
|
| 126 |
+
00:02:21.633 --> 00:02:25.260
|
| 127 |
+
cuatro. Para g, tenemos cuatro aristas que inciden
|
| 128 |
+
|
| 129 |
+
00:02:25.260 --> 00:02:28.880
|
| 130 |
+
en él. Por lo tanto, tendremos cuatro. Dos,
|
| 131 |
+
|
| 132 |
+
00:02:29.020 --> 00:02:33.425
|
| 133 |
+
tres, cuatro. Un, dos, tres, cuatro. Y por
|
| 134 |
+
|
| 135 |
+
00:02:33.425 --> 00:02:38.065
|
| 136 |
+
último en d tendremos dos. Si recordamos la
|
| 137 |
+
|
| 138 |
+
00:02:38.065 --> 00:02:41.025
|
| 139 |
+
regla para que haya un ciclo euleriano es
|
| 140 |
+
|
| 141 |
+
00:02:41.025 --> 00:02:45.025
|
| 142 |
+
que los vértices de todos los los grados
|
| 143 |
+
|
| 144 |
+
00:02:45.025 --> 00:02:48.620
|
| 145 |
+
de todos mis vértices sean pares. Efectivamente vemos
|
| 146 |
+
|
| 147 |
+
00:02:49.240 --> 00:02:52.540
|
| 148 |
+
que acá todos los vértices tienen grado par,
|
| 149 |
+
|
| 150 |
+
00:02:52.600 --> 00:02:55.720
|
| 151 |
+
por lo tanto nosotros sabemos a ciencia cierta
|
| 152 |
+
|
| 153 |
+
00:02:55.720 --> 00:03:00.055
|
| 154 |
+
que ahí podemos encontrar un ciclo heuleriano. ¿Cómo
|
| 155 |
+
|
| 156 |
+
00:03:00.055 --> 00:03:02.775
|
| 157 |
+
lo podemos encontrar? Pues bien, el algoritmo de
|
| 158 |
+
|
| 159 |
+
00:03:02.775 --> 00:03:06.375
|
| 160 |
+
Flury es la respuesta. El algoritmo de Flury
|
| 161 |
+
|
| 162 |
+
00:03:06.375 --> 00:03:09.834
|
| 163 |
+
nos dice que empecemos hallando un circuito cerrado,
|
| 164 |
+
|
| 165 |
+
00:03:10.295 --> 00:03:13.830
|
| 166 |
+
sin importar que no hayamos visitado todas las
|
| 167 |
+
|
| 168 |
+
00:03:14.150 --> 00:03:18.170
|
| 169 |
+
aristas o conexiones, entonces hagamos ese primer paso.
|
| 170 |
+
|
| 171 |
+
00:03:19.350 --> 00:03:22.550
|
| 172 |
+
Yo voy a elegir, por ejemplo, este camino
|
| 173 |
+
|
| 174 |
+
00:03:22.550 --> 00:03:27.270
|
| 175 |
+
cerrado que tengo acá, ABYF. Entonces, lo voy
|
| 176 |
+
|
| 177 |
+
00:03:27.270 --> 00:03:36.305
|
| 178 |
+
a describir acá, Camino1 o ciclo1, lo vamos
|
| 179 |
+
|
| 180 |
+
00:03:36.305 --> 00:03:44.959
|
| 181 |
+
a llamar, y va a ser a, f,
|
| 182 |
+
|
| 183 |
+
00:03:47.180 --> 00:03:56.299
|
| 184 |
+
por ejemplo, GYB, este ciclo que tenemos acá.
|
| 185 |
+
|
| 186 |
+
00:03:56.299 --> 00:03:58.459
|
| 187 |
+
Y como es un ciclo, yo termino nuevamente
|
| 188 |
+
|
| 189 |
+
00:03:58.459 --> 00:04:03.075
|
| 190 |
+
en AAY he obtenido un primer circuito cerrado
|
| 191 |
+
|
| 192 |
+
00:04:03.935 --> 00:04:07.314
|
| 193 |
+
dentro de lo que sería mi grafo total.
|
| 194 |
+
|
| 195 |
+
00:04:07.614 --> 00:04:10.515
|
| 196 |
+
El algoritmo de Flury nos dice que tenemos
|
| 197 |
+
|
| 198 |
+
00:04:10.894 --> 00:04:14.254
|
| 199 |
+
que encontrar un circuito dos o un ciclo
|
| 200 |
+
|
| 201 |
+
00:04:14.254 --> 00:04:17.550
|
| 202 |
+
dos que esté incluido dentro de mi gráfica
|
| 203 |
+
|
| 204 |
+
00:04:18.329 --> 00:04:20.410
|
| 205 |
+
y que incluya conexiones o aristas que yo
|
| 206 |
+
|
| 207 |
+
00:04:20.410 --> 00:04:22.889
|
| 208 |
+
no haya incluido. Por ejemplo, yo en este
|
| 209 |
+
|
| 210 |
+
00:04:22.889 --> 00:04:26.169
|
| 211 |
+
caso voy a escoger el ciclo dos, va
|
| 212 |
+
|
| 213 |
+
00:04:26.169 --> 00:04:37.305
|
| 214 |
+
a ser GECYGGECYGY lo que voy a hacer,
|
| 215 |
+
|
| 216 |
+
00:04:37.305 --> 00:04:39.165
|
| 217 |
+
el paso que voy a hacer a continuación
|
| 218 |
+
|
| 219 |
+
00:04:39.305 --> 00:04:42.120
|
| 220 |
+
es incluir este ciclo dos dentro de mi
|
| 221 |
+
|
| 222 |
+
00:04:42.120 --> 00:04:45.160
|
| 223 |
+
ciclo uno que yo había escrito acá. Entonces
|
| 224 |
+
|
| 225 |
+
00:04:45.160 --> 00:04:54.600
|
| 226 |
+
lo que tendríamos sería AFYG. Como partimos de
|
| 227 |
+
|
| 228 |
+
00:04:54.600 --> 00:04:56.715
|
| 229 |
+
g para mi segundo ciclo, eso es lo
|
| 230 |
+
|
| 231 |
+
00:04:56.715 --> 00:05:03.675
|
| 232 |
+
que yo voy a escribir acá. GECYGY continúo
|
| 233 |
+
|
| 234 |
+
00:05:03.675 --> 00:05:06.974
|
| 235 |
+
con lo que tenía en el primer ciclo.
|
| 236 |
+
|
| 237 |
+
00:05:08.474 --> 00:05:13.370
|
| 238 |
+
Y lo vamos a representar acá. Solo nos
|
| 239 |
+
|
| 240 |
+
00:05:13.370 --> 00:05:16.830
|
| 241 |
+
faltará incluir más ciclos hasta que yo complete
|
| 242 |
+
|
| 243 |
+
00:05:16.970 --> 00:05:19.610
|
| 244 |
+
todas las conexiones que no haya visitado. En
|
| 245 |
+
|
| 246 |
+
00:05:19.610 --> 00:05:22.250
|
| 247 |
+
este caso vemos que yo puedo hacer otro
|
| 248 |
+
|
| 249 |
+
00:05:22.250 --> 00:05:25.485
|
| 250 |
+
ciclo cerrado que incluya estos vértices de acá,
|
| 251 |
+
|
| 252 |
+
00:05:27.004 --> 00:05:31.245
|
| 253 |
+
que son f, mi ciclo tres, va a
|
| 254 |
+
|
| 255 |
+
00:05:31.245 --> 00:05:41.050
|
| 256 |
+
ser FEDCBYF. Es este ciclo que tenemos acá
|
| 257 |
+
|
| 258 |
+
00:05:41.350 --> 00:05:44.470
|
| 259 |
+
en azul y con eso ya habré visitado
|
| 260 |
+
|
| 261 |
+
00:05:44.470 --> 00:05:47.690
|
| 262 |
+
todas las aristas. ¿Y cuál será mi ciclo
|
| 263 |
+
|
| 264 |
+
00:05:47.830 --> 00:05:52.095
|
| 265 |
+
euleriano? ¿Cuál será ese ciclo euleriano? Pues solo
|
| 266 |
+
|
| 267 |
+
00:05:52.095 --> 00:05:55.175
|
| 268 |
+
tendremos que reemplazar este ciclo tres en lo
|
| 269 |
+
|
| 270 |
+
00:05:55.175 --> 00:05:58.495
|
| 271 |
+
que obtuvimos al final y tendremos que es
|
| 272 |
+
|
| 273 |
+
00:05:58.495 --> 00:06:04.255
|
| 274 |
+
lo siguiente. A, partimos de f para arrancar
|
| 275 |
+
|
| 276 |
+
00:06:04.255 --> 00:06:14.800
|
| 277 |
+
este ciclo, así que colocamos FEDCBFY continuamos con
|
| 278 |
+
|
| 279 |
+
00:06:14.800 --> 00:06:21.550
|
| 280 |
+
lo que teníamos en el ciclo pasado, GCGB,
|
| 281 |
+
|
| 282 |
+
00:06:21.825 --> 00:06:29.185
|
| 283 |
+
ah y ese sería nuestro ciclo euleriano. Vamos
|
| 284 |
+
|
| 285 |
+
00:06:29.185 --> 00:06:32.965
|
| 286 |
+
a distinguirlos con colores, este era el segundo
|
| 287 |
+
|
| 288 |
+
00:06:33.105 --> 00:06:36.305
|
| 289 |
+
camino que tomamos y este era parte del
|
| 290 |
+
|
| 291 |
+
00:06:36.305 --> 00:06:42.479
|
| 292 |
+
primero. Vamos a comprobar si efectivamente encontramos un
|
| 293 |
+
|
| 294 |
+
00:06:42.479 --> 00:06:45.680
|
| 295 |
+
ciclo euleriano, vamos a ver si efectivamente pasamos
|
| 296 |
+
|
| 297 |
+
00:06:45.680 --> 00:06:48.240
|
| 298 |
+
por todas las aristas una sola vez, para
|
| 299 |
+
|
| 300 |
+
00:06:48.240 --> 00:06:51.360
|
| 301 |
+
ello vamos a borrar todo lo que tenemos
|
| 302 |
+
|
| 303 |
+
00:06:51.360 --> 00:06:58.015
|
| 304 |
+
acá, todas las conexiones. Vamos a resetear nuestro
|
| 305 |
+
|
| 306 |
+
00:06:59.435 --> 00:07:03.675
|
| 307 |
+
dibujo y vamos a ver si efectivamente pasamos
|
| 308 |
+
|
| 309 |
+
00:07:03.675 --> 00:07:07.440
|
| 310 |
+
por todas las conexiones solo una vez, ¿de
|
| 311 |
+
|
| 312 |
+
00:07:07.440 --> 00:07:13.840
|
| 313 |
+
acuerdo? Entonces, vamos a volver al principio y
|
| 314 |
+
|
| 315 |
+
00:07:13.840 --> 00:07:15.940
|
| 316 |
+
vamos a seguir la ruta que hemos trazado.
|
| 317 |
+
|
| 318 |
+
00:07:17.120 --> 00:07:29.338
|
| 319 |
+
Hemos empezado de AAFAAF, después vamos AEAB, después
|
| 320 |
+
|
| 321 |
+
00:07:29.338 --> 00:07:33.944
|
| 322 |
+
a d, después a c, después a b,
|
| 323 |
+
|
| 324 |
+
00:07:35.844 --> 00:07:45.000
|
| 325 |
+
después a f, después AF, después AE, después
|
| 326 |
+
|
| 327 |
+
00:07:45.460 --> 00:07:52.264
|
| 328 |
+
AC, después AG, terminamos en b y terminamos
|
| 329 |
+
|
| 330 |
+
00:07:52.264 --> 00:07:55.465
|
| 331 |
+
en a. Hemos visitado todas las aristas una
|
| 332 |
+
|
| 333 |
+
00:07:55.465 --> 00:07:58.345
|
| 334 |
+
y solo una vez y hemos arrancado y
|
| 335 |
+
|
| 336 |
+
00:07:58.345 --> 00:08:01.384
|
| 337 |
+
hemos terminado exactamente en el mismo punto, así
|
| 338 |
+
|
| 339 |
+
00:08:01.384 --> 00:08:06.060
|
| 340 |
+
que hemos conseguido el ciclo eualeriano. Hay una
|
| 341 |
+
|
| 342 |
+
00:08:06.360 --> 00:08:09.500
|
| 343 |
+
condición para saber si lo hemos hecho totalmente
|
| 344 |
+
|
| 345 |
+
00:08:09.640 --> 00:08:12.120
|
| 346 |
+
bien y es que el número de veces
|
| 347 |
+
|
| 348 |
+
00:08:12.120 --> 00:08:15.020
|
| 349 |
+
que los nodos aparecen debe ser la mitad
|
| 350 |
+
|
| 351 |
+
00:08:15.480 --> 00:08:17.800
|
| 352 |
+
del grado que tenga cada uno de estos.
|
| 353 |
+
|
| 354 |
+
00:08:17.800 --> 00:08:19.400
|
| 355 |
+
Por ejemplo, ¿a qué me refiero? Por ejemplo,
|
| 356 |
+
|
| 357 |
+
00:08:19.400 --> 00:08:23.155
|
| 358 |
+
este nodo f tiene un grado de cuatro,
|
| 359 |
+
|
| 360 |
+
00:08:23.155 --> 00:08:25.414
|
| 361 |
+
por lo tanto, en nuestro ciclo de oleeriano
|
| 362 |
+
|
| 363 |
+
00:08:25.634 --> 00:08:28.194
|
| 364 |
+
debe aparecer la mitad, debe aparecer solo dos
|
| 365 |
+
|
| 366 |
+
00:08:28.194 --> 00:08:31.315
|
| 367 |
+
veces, y vemos que aparece una y dos
|
| 368 |
+
|
| 369 |
+
00:08:31.315 --> 00:08:35.569
|
| 370 |
+
veces. E aparece cuatro veces, tiene grado cuatro,
|
| 371 |
+
|
| 372 |
+
00:08:35.569 --> 00:08:37.970
|
| 373 |
+
así que tiene que aparecer solo dos veces
|
| 374 |
+
|
| 375 |
+
00:08:37.970 --> 00:08:42.850
|
| 376 |
+
la mitad. Una y dos. Mi nodo c
|
| 377 |
+
|
| 378 |
+
00:08:42.850 --> 00:08:45.170
|
| 379 |
+
tiene grado cuatro, por lo tanto debe aparecer
|
| 380 |
+
|
| 381 |
+
00:08:45.170 --> 00:08:50.085
|
| 382 |
+
la mitad solo dos veces, dos veces CYCD
|
| 383 |
+
|
| 384 |
+
00:08:50.345 --> 00:08:53.385
|
| 385 |
+
tiene grado dos, debe aparecer la mitad, la
|
| 386 |
+
|
| 387 |
+
00:08:53.385 --> 00:08:56.745
|
| 388 |
+
mitad solo debe aparecer una sola vez, que
|
| 389 |
+
|
| 390 |
+
00:08:56.745 --> 00:09:00.605
|
| 391 |
+
lo vemos aquí, b tiene grado cuatro, debe
|
| 392 |
+
|
| 393 |
+
00:09:01.225 --> 00:09:07.760
|
| 394 |
+
aparecer solo dos veces, BYBG tiene grado cuatro
|
| 395 |
+
|
| 396 |
+
00:09:07.760 --> 00:09:11.360
|
| 397 |
+
debe aparecer solo dos veces, tenemos g y
|
| 398 |
+
|
| 399 |
+
00:09:11.360 --> 00:09:15.360
|
| 400 |
+
tenemos g y obviamente la única parte donde
|
| 401 |
+
|
| 402 |
+
00:09:15.360 --> 00:09:16.880
|
| 403 |
+
no se cumple es para a porque es
|
| 404 |
+
|
| 405 |
+
00:09:16.880 --> 00:09:19.755
|
| 406 |
+
mi nodo inicial y mi nodo terminal que
|
| 407 |
+
|
| 408 |
+
00:09:19.755 --> 00:09:22.394
|
| 409 |
+
vemos que se ha cumplido, y hemos aplicado
|
| 410 |
+
|
| 411 |
+
00:09:22.394 --> 00:09:25.774
|
| 412 |
+
el algoritmo de Flury para encontrar un ciclo
|
| 413 |
+
|
| 414 |
+
00:09:25.915 --> 00:09:29.834
|
| 415 |
+
heuleriano. Ya sabes que puedes identificar fácilmente si
|
| 416 |
+
|
| 417 |
+
00:09:29.834 --> 00:09:33.181
|
| 418 |
+
un gráfico tiene un ciclo no heuleriano y
|
| 419 |
+
|
| 420 |
+
00:09:33.181 --> 00:09:36.221
|
| 421 |
+
ya sabes cómo encontrarlo. En la siguiente clase
|
| 422 |
+
|
| 423 |
+
00:09:36.221 --> 00:09:40.621
|
| 424 |
+
veremos otro algoritmo que será superinteresante. Vamos a
|
| 425 |
+
|
| 426 |
+
00:09:40.621 --> 00:09:41.521
|
| 427 |
+
la siguiente clase.
|
a/Curso de Matemáticas Discretas/06-Algoritmos/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/05-Algoritmo de Flujo Máximo en Redes Dirigidas.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:302ae674185ed524470a3cce2aeb57f5a1877b05c936158d32d06023f5bd9f72
|
| 3 |
+
size 145971780
|
a/Curso de Matemáticas Discretas/06-Algoritmos/05-Algoritmo de Flujo Máximo en Redes Dirigidas.vtt
ADDED
|
@@ -0,0 +1,640 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:04.000 --> 00:00:06.100
|
| 4 |
+
En la imagen que tenemos en nuestras pantallas
|
| 5 |
+
|
| 6 |
+
00:00:06.240 --> 00:00:08.960
|
| 7 |
+
vemos un gráfico y vemos que es un
|
| 8 |
+
|
| 9 |
+
00:00:08.960 --> 00:00:12.400
|
| 10 |
+
árbol de expansión, tenemos un número asociado a
|
| 11 |
+
|
| 12 |
+
00:00:12.400 --> 00:00:16.415
|
| 13 |
+
una conexión. Resulta que nosotros no siempre vamos
|
| 14 |
+
|
| 15 |
+
00:00:16.475 --> 00:00:19.515
|
| 16 |
+
a querer el coste mínimo, a veces lo
|
| 17 |
+
|
| 18 |
+
00:00:19.515 --> 00:00:22.175
|
| 19 |
+
que vamos a querer es el flujo máximo.
|
| 20 |
+
|
| 21 |
+
00:00:22.875 --> 00:00:25.275
|
| 22 |
+
Por ejemplo, supongamos que esta es una red
|
| 23 |
+
|
| 24 |
+
00:00:25.275 --> 00:00:27.915
|
| 25 |
+
de datos, una red de computadores y que
|
| 26 |
+
|
| 27 |
+
00:00:27.915 --> 00:00:30.840
|
| 28 |
+
esos números que vemos allí es el número
|
| 29 |
+
|
| 30 |
+
00:00:30.840 --> 00:00:33.280
|
| 31 |
+
de gigabytes que puede transmitir cada uno de
|
| 32 |
+
|
| 33 |
+
00:00:33.280 --> 00:00:36.160
|
| 34 |
+
estos canales entre sí. O supongamos que es
|
| 35 |
+
|
| 36 |
+
00:00:36.160 --> 00:00:41.200
|
| 37 |
+
una red de, por ejemplo, crudo, de petróleo
|
| 38 |
+
|
| 39 |
+
00:00:41.200 --> 00:00:44.325
|
| 40 |
+
y queremos enviar el máximo flujo de un
|
| 41 |
+
|
| 42 |
+
00:00:44.385 --> 00:00:47.504
|
| 43 |
+
punto A a un punto G. Entonces allí
|
| 44 |
+
|
| 45 |
+
00:00:47.504 --> 00:00:49.425
|
| 46 |
+
no vamos a buscar el coste mínimo, sino
|
| 47 |
+
|
| 48 |
+
00:00:49.425 --> 00:00:51.265
|
| 49 |
+
lo que vamos a buscar es el flujo
|
| 50 |
+
|
| 51 |
+
00:00:51.265 --> 00:00:54.644
|
| 52 |
+
máximo. En esta clase vamos a ver el
|
| 53 |
+
|
| 54 |
+
00:00:54.704 --> 00:00:57.504
|
| 55 |
+
algoritmo de flujo máximo y consiste en los
|
| 56 |
+
|
| 57 |
+
00:00:57.504 --> 00:01:02.340
|
| 58 |
+
pasos que vemos allí. Primero tenemos que direccionar
|
| 59 |
+
|
| 60 |
+
00:01:02.340 --> 00:01:05.360
|
| 61 |
+
todos los flujos, tenemos que tener consciencia de
|
| 62 |
+
|
| 63 |
+
00:01:05.740 --> 00:01:08.220
|
| 64 |
+
exactamente de dónde a dónde están yendo cada
|
| 65 |
+
|
| 66 |
+
00:01:08.220 --> 00:01:09.820
|
| 67 |
+
uno de los flujos para yo tener un
|
| 68 |
+
|
| 69 |
+
00:01:09.820 --> 00:01:13.500
|
| 70 |
+
recorrido desde mi punto inicial hasta mi punto
|
| 71 |
+
|
| 72 |
+
00:01:13.500 --> 00:01:18.935
|
| 73 |
+
final y vamos a iniciar en ceros. Vamos
|
| 74 |
+
|
| 75 |
+
00:01:18.935 --> 00:01:21.814
|
| 76 |
+
a obtener cada una de las trayectorias buscando
|
| 77 |
+
|
| 78 |
+
00:01:21.814 --> 00:01:26.555
|
| 79 |
+
siempre el mayor flujo entre los nodos. Después
|
| 80 |
+
|
| 81 |
+
00:01:27.160 --> 00:01:30.460
|
| 82 |
+
vamos a escoger el menor flujo de la
|
| 83 |
+
|
| 84 |
+
00:01:30.760 --> 00:01:33.960
|
| 85 |
+
trayectoria, vamos a actualizar el gráfico con las
|
| 86 |
+
|
| 87 |
+
00:01:33.960 --> 00:01:37.420
|
| 88 |
+
capacidades mínimas y vamos a buscar una trayectoria
|
| 89 |
+
|
| 90 |
+
00:01:37.800 --> 00:01:40.920
|
| 91 |
+
en aumento y repetir hasta que no existan
|
| 92 |
+
|
| 93 |
+
00:01:40.920 --> 00:01:43.865
|
| 94 |
+
más y hasta que hayamos llegado a nuestro
|
| 95 |
+
|
| 96 |
+
00:01:43.865 --> 00:01:47.545
|
| 97 |
+
punto final. Suena un poco complejo pero vamos
|
| 98 |
+
|
| 99 |
+
00:01:47.545 --> 00:01:51.465
|
| 100 |
+
a hacerlo juntos para que nos quede completamente
|
| 101 |
+
|
| 102 |
+
00:01:51.465 --> 00:01:54.025
|
| 103 |
+
claro, vamos al tablero. Lo que tenemos en
|
| 104 |
+
|
| 105 |
+
00:01:54.025 --> 00:01:57.720
|
| 106 |
+
nuestras pantallas es un grafo dirigido que es
|
| 107 |
+
|
| 108 |
+
00:01:57.720 --> 00:02:00.360
|
| 109 |
+
el que nos va a permitir hallar el
|
| 110 |
+
|
| 111 |
+
00:02:00.360 --> 00:02:03.960
|
| 112 |
+
o aplicar el algoritmo del flujo máximo. A
|
| 113 |
+
|
| 114 |
+
00:02:03.960 --> 00:02:07.640
|
| 115 |
+
diferencia de un grafo o un árbol de
|
| 116 |
+
|
| 117 |
+
00:02:07.640 --> 00:02:11.420
|
| 118 |
+
expansión mínima donde buscamos conectar todos los vértices
|
| 119 |
+
|
| 120 |
+
00:02:12.505 --> 00:02:15.385
|
| 121 |
+
con el mínimo coste, en el algoritmo del
|
| 122 |
+
|
| 123 |
+
00:02:15.385 --> 00:02:17.865
|
| 124 |
+
flujo máximo, como su nombre lo indica, lo
|
| 125 |
+
|
| 126 |
+
00:02:17.865 --> 00:02:21.305
|
| 127 |
+
que tratamos es de maximizar ese flujo que
|
| 128 |
+
|
| 129 |
+
00:02:21.305 --> 00:02:24.685
|
| 130 |
+
tenemos desde un punto inicial a un punto
|
| 131 |
+
|
| 132 |
+
00:02:24.825 --> 00:02:27.810
|
| 133 |
+
final. En este problema lo que vamos a
|
| 134 |
+
|
| 135 |
+
00:02:27.810 --> 00:02:31.170
|
| 136 |
+
intentar realizar es enviar lo máximo que podamos
|
| 137 |
+
|
| 138 |
+
00:02:31.170 --> 00:02:35.250
|
| 139 |
+
de AAG. Esto sirve, por ejemplo, si tú
|
| 140 |
+
|
| 141 |
+
00:02:35.250 --> 00:02:39.090
|
| 142 |
+
tienes una red de datos que tú sabes
|
| 143 |
+
|
| 144 |
+
00:02:39.090 --> 00:02:43.555
|
| 145 |
+
que ciertas conexiones transmiten a diferentes capacidades, entonces
|
| 146 |
+
|
| 147 |
+
00:02:43.555 --> 00:02:46.435
|
| 148 |
+
tú quieres enviar lo máximo posible o si
|
| 149 |
+
|
| 150 |
+
00:02:46.435 --> 00:02:50.275
|
| 151 |
+
por ejemplo estamos hablando de conexiones eléctricas, si
|
| 152 |
+
|
| 153 |
+
00:02:50.275 --> 00:02:53.150
|
| 154 |
+
tú quieres enviar lo máximo de la máxima
|
| 155 |
+
|
| 156 |
+
00:02:53.150 --> 00:02:56.590
|
| 157 |
+
potencia eléctrica de un punto a otro. Entonces,
|
| 158 |
+
|
| 159 |
+
00:02:56.590 --> 00:02:58.670
|
| 160 |
+
a diferencia del otro que buscamos hallar el
|
| 161 |
+
|
| 162 |
+
00:02:58.670 --> 00:03:00.830
|
| 163 |
+
coste mínimo, en este buscamos enviar lo más
|
| 164 |
+
|
| 165 |
+
00:03:00.830 --> 00:03:04.925
|
| 166 |
+
que podamos hacia allá. Es importante que el
|
| 167 |
+
|
| 168 |
+
00:03:04.925 --> 00:03:08.205
|
| 169 |
+
grafo sea dirigido, si tienes un grafo simple
|
| 170 |
+
|
| 171 |
+
00:03:08.205 --> 00:03:10.925
|
| 172 |
+
lo lo más importante es primero establecer las
|
| 173 |
+
|
| 174 |
+
00:03:10.925 --> 00:03:14.364
|
| 175 |
+
direcciones del flujo para que tengas idea de
|
| 176 |
+
|
| 177 |
+
00:03:14.364 --> 00:03:17.565
|
| 178 |
+
cómo ese flujo puede llegar hasta mi punto
|
| 179 |
+
|
| 180 |
+
00:03:17.565 --> 00:03:23.220
|
| 181 |
+
g Y es importante que establezcamos esa cantidad
|
| 182 |
+
|
| 183 |
+
00:03:23.220 --> 00:03:26.340
|
| 184 |
+
de flujo que cada vértice puede dar. Por
|
| 185 |
+
|
| 186 |
+
00:03:26.340 --> 00:03:29.700
|
| 187 |
+
ejemplo, el vértice a puede lanzar o puede
|
| 188 |
+
|
| 189 |
+
00:03:29.700 --> 00:03:32.520
|
| 190 |
+
fluir con un caudal o con una capacidad
|
| 191 |
+
|
| 192 |
+
00:03:32.580 --> 00:03:36.995
|
| 193 |
+
de seis. Y así es como iniciamos nuestro
|
| 194 |
+
|
| 195 |
+
00:03:36.995 --> 00:03:40.534
|
| 196 |
+
algoritmo. Vamos a poner todos los puntos finales
|
| 197 |
+
|
| 198 |
+
00:03:40.674 --> 00:03:42.754
|
| 199 |
+
en cero. Vamos a decir que acá tenemos
|
| 200 |
+
|
| 201 |
+
00:03:42.754 --> 00:03:49.230
|
| 202 |
+
cero, cero, cero, cero, cero y cero. Y
|
| 203 |
+
|
| 204 |
+
00:03:49.230 --> 00:03:51.790
|
| 205 |
+
queremos enviar el máximo de flujo de mi
|
| 206 |
+
|
| 207 |
+
00:03:51.790 --> 00:03:54.109
|
| 208 |
+
punto a a mi punto g. Por lo
|
| 209 |
+
|
| 210 |
+
00:03:54.109 --> 00:03:56.510
|
| 211 |
+
tanto, todo el sistema lo vamos a reiniciar
|
| 212 |
+
|
| 213 |
+
00:03:56.510 --> 00:04:00.555
|
| 214 |
+
en cero. No hemos enviado absolutamente nada. Y
|
| 215 |
+
|
| 216 |
+
00:04:00.555 --> 00:04:03.055
|
| 217 |
+
el algoritmo nos dice que tenemos que empezar
|
| 218 |
+
|
| 219 |
+
00:04:03.114 --> 00:04:05.275
|
| 220 |
+
seleccionando un camino de mi punto a a
|
| 221 |
+
|
| 222 |
+
00:04:05.275 --> 00:04:08.795
|
| 223 |
+
mi punto g. Entonces, vamos a seleccionar el
|
| 224 |
+
|
| 225 |
+
00:04:08.795 --> 00:04:16.290
|
| 226 |
+
camino ACFG. Entonces, mi camino uno va a
|
| 227 |
+
|
| 228 |
+
00:04:16.290 --> 00:04:24.310
|
| 229 |
+
ser ACFGY vamos a empezar analizando ese camino.
|
| 230 |
+
|
| 231 |
+
00:04:25.170 --> 00:04:28.370
|
| 232 |
+
¿Cómo qué tanto yo le puedo mandar de
|
| 233 |
+
|
| 234 |
+
00:04:28.370 --> 00:04:32.165
|
| 235 |
+
por este camino de AAG? Lo que tenemos
|
| 236 |
+
|
| 237 |
+
00:04:32.165 --> 00:04:35.125
|
| 238 |
+
que analizar ahí es el el el tubo
|
| 239 |
+
|
| 240 |
+
00:04:35.125 --> 00:04:37.925
|
| 241 |
+
o la conexión que tenga menos capacidad, ya
|
| 242 |
+
|
| 243 |
+
00:04:37.925 --> 00:04:40.165
|
| 244 |
+
que de nada le sirve a mi camino
|
| 245 |
+
|
| 246 |
+
00:04:40.165 --> 00:04:42.005
|
| 247 |
+
si yo por acá le envío siete, ya
|
| 248 |
+
|
| 249 |
+
00:04:42.005 --> 00:04:44.085
|
| 250 |
+
que este solo tiene la capacidad de enviar
|
| 251 |
+
|
| 252 |
+
00:04:44.085 --> 00:04:47.150
|
| 253 |
+
cuatro. Entonces, en este caso tenemos siete, cuatro
|
| 254 |
+
|
| 255 |
+
00:04:47.150 --> 00:04:50.110
|
| 256 |
+
y nueve, elegimos el menor que es este
|
| 257 |
+
|
| 258 |
+
00:04:50.110 --> 00:04:54.270
|
| 259 |
+
cuatro y vamos a enviar cuatro unidades por
|
| 260 |
+
|
| 261 |
+
00:04:54.270 --> 00:04:59.335
|
| 262 |
+
ese camino. Acá teníamos siete, mandamos cuatro, por
|
| 263 |
+
|
| 264 |
+
00:04:59.335 --> 00:05:02.775
|
| 265 |
+
lo tanto nos quedan tres unidades que podemos
|
| 266 |
+
|
| 267 |
+
00:05:02.775 --> 00:05:05.835
|
| 268 |
+
mandar a través de este camino. Acá arrancamos
|
| 269 |
+
|
| 270 |
+
00:05:06.215 --> 00:05:10.935
|
| 271 |
+
con cero y le acabamos de mandar cuatro,
|
| 272 |
+
|
| 273 |
+
00:05:10.935 --> 00:05:14.970
|
| 274 |
+
entonces acá tendríamos cuatro, de acá teníamos cuatro
|
| 275 |
+
|
| 276 |
+
00:05:14.970 --> 00:05:19.050
|
| 277 |
+
y mandamos las cuatro, entonces tendríamos cero, en
|
| 278 |
+
|
| 279 |
+
00:05:19.050 --> 00:05:22.490
|
| 280 |
+
este punto tendríamos cero y le mandamos cuatro,
|
| 281 |
+
|
| 282 |
+
00:05:22.490 --> 00:05:27.495
|
| 283 |
+
tendríamos cuatro y acá partíamos con nueve, mandamos
|
| 284 |
+
|
| 285 |
+
00:05:27.715 --> 00:05:31.474
|
| 286 |
+
cuatro, nos quedan cinco y por último llegamos
|
| 287 |
+
|
| 288 |
+
00:05:31.474 --> 00:05:36.294
|
| 289 |
+
a cero y tenemos cuatro. Del camino uno
|
| 290 |
+
|
| 291 |
+
00:05:36.354 --> 00:05:40.759
|
| 292 |
+
en total mandamos cuatro unidades y hemos terminado
|
| 293 |
+
|
| 294 |
+
00:05:40.759 --> 00:05:43.160
|
| 295 |
+
lo que sería nuestro primer camino. Vamos a
|
| 296 |
+
|
| 297 |
+
00:05:43.160 --> 00:05:47.160
|
| 298 |
+
seleccionar ahora un segundo camino que nos permita
|
| 299 |
+
|
| 300 |
+
00:05:47.160 --> 00:05:49.400
|
| 301 |
+
llegar a g. En este caso vamos a
|
| 302 |
+
|
| 303 |
+
00:05:49.400 --> 00:05:57.235
|
| 304 |
+
seleccionar el camino ABFGY vamos a ver qué
|
| 305 |
+
|
| 306 |
+
00:05:57.235 --> 00:06:06.355
|
| 307 |
+
podemos obtener por allá, entonces sería ABFYGY observemos
|
| 308 |
+
|
| 309 |
+
00:06:06.355 --> 00:06:09.255
|
| 310 |
+
cuál es el la conexión con menos capacidad,
|
| 311 |
+
|
| 312 |
+
00:06:09.395 --> 00:06:14.720
|
| 313 |
+
tenemos seis, tenemos tres y por acá nos
|
| 314 |
+
|
| 315 |
+
00:06:14.720 --> 00:06:19.280
|
| 316 |
+
quedan cinco, entonces nos queda tres, tres es
|
| 317 |
+
|
| 318 |
+
00:06:19.280 --> 00:06:22.159
|
| 319 |
+
la cantidad que vamos a mandar. Por este
|
| 320 |
+
|
| 321 |
+
00:06:22.159 --> 00:06:24.545
|
| 322 |
+
camino tenemos seis y mandamos tres, o sea,
|
| 323 |
+
|
| 324 |
+
00:06:24.545 --> 00:06:27.745
|
| 325 |
+
que nos quedan tres acá. Tres que llegan
|
| 326 |
+
|
| 327 |
+
00:06:27.745 --> 00:06:32.805
|
| 328 |
+
acá, tres que mandamos por acá serían cero.
|
| 329 |
+
|
| 330 |
+
00:06:33.505 --> 00:06:37.285
|
| 331 |
+
Acá teníamos cero, lo vamos a colocar acá.
|
| 332 |
+
|
| 333 |
+
00:06:37.830 --> 00:06:42.730
|
| 334 |
+
Ahora tenemos tres y de acá tenemos cinco.
|
| 335 |
+
|
| 336 |
+
00:06:43.430 --> 00:06:47.910
|
| 337 |
+
Mandamos tres, nos quedan dos y cuatro, mandamos
|
| 338 |
+
|
| 339 |
+
00:06:47.910 --> 00:06:52.245
|
| 340 |
+
tres, nos llegan siete. Ya hemos mandado por
|
| 341 |
+
|
| 342 |
+
00:06:52.245 --> 00:06:56.085
|
| 343 |
+
este camino, hemos mandado tres unidades, es decir,
|
| 344 |
+
|
| 345 |
+
00:06:56.085 --> 00:06:58.824
|
| 346 |
+
que acá tenemos un total ahora de siete.
|
| 347 |
+
|
| 348 |
+
00:06:59.044 --> 00:07:02.324
|
| 349 |
+
Podemos ir corroborando, mirando cuándo cuánto mandamos por
|
| 350 |
+
|
| 351 |
+
00:07:02.324 --> 00:07:06.030
|
| 352 |
+
cada camino y que efectivamente ese flujo llegue
|
| 353 |
+
|
| 354 |
+
00:07:06.030 --> 00:07:09.229
|
| 355 |
+
a mi punto final. Vamos a elegir un
|
| 356 |
+
|
| 357 |
+
00:07:09.229 --> 00:07:15.810
|
| 358 |
+
tercer camino, en este caso por ejemplo ADEYG,
|
| 359 |
+
|
| 360 |
+
00:07:16.669 --> 00:07:25.205
|
| 361 |
+
entonces vamos con mi tercer camino, ADEYGY observemos
|
| 362 |
+
|
| 363 |
+
00:07:25.205 --> 00:07:29.305
|
| 364 |
+
las cantidades que tenemos allí. Tenemos cuatro, siete
|
| 365 |
+
|
| 366 |
+
00:07:29.604 --> 00:07:32.820
|
| 367 |
+
y seis. La menor de ellas es cuatro,
|
| 368 |
+
|
| 369 |
+
00:07:32.900 --> 00:07:34.740
|
| 370 |
+
por lo tanto esa es la cantidad que
|
| 371 |
+
|
| 372 |
+
00:07:34.740 --> 00:07:37.460
|
| 373 |
+
vamos a mandar. Vamos a mandar por acá
|
| 374 |
+
|
| 375 |
+
00:07:37.460 --> 00:07:43.380
|
| 376 |
+
cuatro unidades y empezamos, mandamos cuatro, o sea
|
| 377 |
+
|
| 378 |
+
00:07:43.380 --> 00:07:46.014
|
| 379 |
+
que nos quedan cero acá, acá llegamos con
|
| 380 |
+
|
| 381 |
+
00:07:46.014 --> 00:07:49.455
|
| 382 |
+
cero y mandamos cuatro, tenemos cuatro, siete que
|
| 383 |
+
|
| 384 |
+
00:07:49.455 --> 00:07:52.414
|
| 385 |
+
nos quedan acá, le quitamos cuatro, nos quedan
|
| 386 |
+
|
| 387 |
+
00:07:52.414 --> 00:07:58.335
|
| 388 |
+
tres, mandamos cuatro, acá nos quedan cuatro, acá
|
| 389 |
+
|
| 390 |
+
00:07:58.335 --> 00:08:02.440
|
| 391 |
+
teníamos seis, le quitamos cuatro, nos quedan dos.
|
| 392 |
+
|
| 393 |
+
00:08:03.139 --> 00:08:07.220
|
| 394 |
+
Y acá tenemos siete, llegamos con cuatro y
|
| 395 |
+
|
| 396 |
+
00:08:07.220 --> 00:08:12.100
|
| 397 |
+
tenemos once unidades ahora. Y ya hemos actualizado
|
| 398 |
+
|
| 399 |
+
00:08:12.100 --> 00:08:15.145
|
| 400 |
+
nuestro gráfico. Nuevamente corroboramos, acá enviamos cuatro y
|
| 401 |
+
|
| 402 |
+
00:08:15.145 --> 00:08:17.805
|
| 403 |
+
cuatro, ocho, nueve, diez, once y nos llegan
|
| 404 |
+
|
| 405 |
+
00:08:17.945 --> 00:08:22.505
|
| 406 |
+
once unidades. Y vemos, analizamos nuestro gráfico y
|
| 407 |
+
|
| 408 |
+
00:08:22.505 --> 00:08:24.925
|
| 409 |
+
vemos que acá por ejemplo todavía tenemos tres,
|
| 410 |
+
|
| 411 |
+
00:08:25.065 --> 00:08:28.860
|
| 412 |
+
todavía podemos mandar acá otras tres y empezamos
|
| 413 |
+
|
| 414 |
+
00:08:29.080 --> 00:08:31.639
|
| 415 |
+
a mirar cuál sería la ruta mediante la
|
| 416 |
+
|
| 417 |
+
00:08:31.639 --> 00:08:35.080
|
| 418 |
+
cual la podríamos mandar. Como acá yo tengo
|
| 419 |
+
|
| 420 |
+
00:08:35.080 --> 00:08:39.880
|
| 421 |
+
tres, los podría mandar por acá porque si
|
| 422 |
+
|
| 423 |
+
00:08:39.880 --> 00:08:43.315
|
| 424 |
+
observamos, si nos vamos por arriba, tendríamos tres,
|
| 425 |
+
|
| 426 |
+
00:08:43.315 --> 00:08:45.955
|
| 427 |
+
pero acá solo podríamos mandar una, porque por
|
| 428 |
+
|
| 429 |
+
00:08:45.955 --> 00:08:47.795
|
| 430 |
+
este ya no tenemos nada y por este
|
| 431 |
+
|
| 432 |
+
00:08:47.795 --> 00:08:50.695
|
| 433 |
+
solo tenemos una. Mientras que acá todavía podríamos
|
| 434 |
+
|
| 435 |
+
00:08:50.835 --> 00:08:56.630
|
| 436 |
+
mandar cinco, cinco. Entonces vamos a hacer eso.
|
| 437 |
+
|
| 438 |
+
00:08:56.690 --> 00:08:59.810
|
| 439 |
+
Acá tenemos dos y acá tenemos dos. Vamos
|
| 440 |
+
|
| 441 |
+
00:08:59.810 --> 00:09:03.190
|
| 442 |
+
a elegir entonces, por acá no podemos llegar.
|
| 443 |
+
|
| 444 |
+
00:09:03.490 --> 00:09:05.810
|
| 445 |
+
Entonces la única ruta que nos queda es
|
| 446 |
+
|
| 447 |
+
00:09:05.810 --> 00:09:09.126
|
| 448 |
+
este e g que tenemos acá, porque ya
|
| 449 |
+
|
| 450 |
+
00:09:09.126 --> 00:09:12.031
|
| 451 |
+
esta ruta está con cero y esta ruta
|
| 452 |
+
|
| 453 |
+
00:09:12.031 --> 00:09:14.935
|
| 454 |
+
está con cero, solo tenemos esta ruta, así
|
| 455 |
+
|
| 456 |
+
00:09:14.935 --> 00:09:17.840
|
| 457 |
+
que lo que vamos a hacer es enviar
|
| 458 |
+
|
| 459 |
+
00:09:17.840 --> 00:09:22.196
|
| 460 |
+
de ACEGY esa va a ser nuestro camino
|
| 461 |
+
|
| 462 |
+
00:09:22.196 --> 00:09:29.279
|
| 463 |
+
cuatro. ACEGY vamos a ver las capacidades de
|
| 464 |
+
|
| 465 |
+
00:09:29.279 --> 00:09:32.640
|
| 466 |
+
esas conexiones. De acá nos quedan tres, de
|
| 467 |
+
|
| 468 |
+
00:09:32.640 --> 00:09:36.900
|
| 469 |
+
CAE tenemos cinco, de EAG tenemos solo dos,
|
| 470 |
+
|
| 471 |
+
00:09:37.185 --> 00:09:40.145
|
| 472 |
+
Por lo tanto, podemos mandar solo dos, así
|
| 473 |
+
|
| 474 |
+
00:09:40.145 --> 00:09:43.025
|
| 475 |
+
que mandamos solo dos unidades a través de
|
| 476 |
+
|
| 477 |
+
00:09:43.025 --> 00:09:46.165
|
| 478 |
+
ese camino. ¿Por dónde? Por aquí por a.
|
| 479 |
+
|
| 480 |
+
00:09:46.305 --> 00:09:48.865
|
| 481 |
+
Teníamos tres, eso quiere decir que acá nos
|
| 482 |
+
|
| 483 |
+
00:09:48.865 --> 00:09:52.325
|
| 484 |
+
queda una unidad, la mandamos acá por c,
|
| 485 |
+
|
| 486 |
+
00:09:53.160 --> 00:09:56.120
|
| 487 |
+
y teníamos cinco, vamos a mandar dos, nos
|
| 488 |
+
|
| 489 |
+
00:09:56.120 --> 00:10:01.800
|
| 490 |
+
quedan tres. Acá llegan esas dos unidades de
|
| 491 |
+
|
| 492 |
+
00:10:01.800 --> 00:10:04.940
|
| 493 |
+
cero a dos, y estas dos que teníamos
|
| 494 |
+
|
| 495 |
+
00:10:05.000 --> 00:10:08.665
|
| 496 |
+
acá las hemos agotado, nos llegan cero y
|
| 497 |
+
|
| 498 |
+
00:10:08.665 --> 00:10:11.945
|
| 499 |
+
acá nos llegan dos y tenemos trece que
|
| 500 |
+
|
| 501 |
+
00:10:11.945 --> 00:10:15.305
|
| 502 |
+
nos puede llegar. Si analizamos la gráfica, observamos
|
| 503 |
+
|
| 504 |
+
00:10:15.305 --> 00:10:18.425
|
| 505 |
+
que solo hay dos posibles formas de llegar
|
| 506 |
+
|
| 507 |
+
00:10:18.425 --> 00:10:21.225
|
| 508 |
+
a g, que es FYEY por e ya
|
| 509 |
+
|
| 510 |
+
00:10:21.225 --> 00:10:24.480
|
| 511 |
+
no tenemos más capacidad. Y por f solo
|
| 512 |
+
|
| 513 |
+
00:10:24.480 --> 00:10:26.960
|
| 514 |
+
tenemos la opción de llegar por c que
|
| 515 |
+
|
| 516 |
+
00:10:26.960 --> 00:10:29.120
|
| 517 |
+
ya no tenemos nada y por b que
|
| 518 |
+
|
| 519 |
+
00:10:29.120 --> 00:10:32.660
|
| 520 |
+
ya no nos queda a ningún ninguna capacidad,
|
| 521 |
+
|
| 522 |
+
00:10:33.120 --> 00:10:36.480
|
| 523 |
+
por lo tanto hemos encontrado el flujo máximo
|
| 524 |
+
|
| 525 |
+
00:10:36.480 --> 00:10:38.634
|
| 526 |
+
que podemos enviar de mi punto a a
|
| 527 |
+
|
| 528 |
+
00:10:38.634 --> 00:10:42.235
|
| 529 |
+
mi punto g utilizando este algoritmo. Vamos a
|
| 530 |
+
|
| 531 |
+
00:10:42.235 --> 00:10:46.074
|
| 532 |
+
ver cuál fue el resultado final. Vamos a
|
| 533 |
+
|
| 534 |
+
00:10:46.074 --> 00:10:56.000
|
| 535 |
+
hacer nuestra gráfica ABC una, y colocamos acá.
|
| 536 |
+
|
| 537 |
+
00:10:56.860 --> 00:11:00.139
|
| 538 |
+
Este fue nuestro nuevo final, este era nuestro
|
| 539 |
+
|
| 540 |
+
00:11:00.139 --> 00:11:09.324
|
| 541 |
+
nuevo inicial, BCDEFY los caminos que teníamos eran
|
| 542 |
+
|
| 543 |
+
00:11:09.324 --> 00:11:13.885
|
| 544 |
+
los siguientes, de acá a acá, acá, acá,
|
| 545 |
+
|
| 546 |
+
00:11:13.885 --> 00:11:14.015
|
| 547 |
+
acá, acá, acá, acá, acá, acá, acá, acá,
|
| 548 |
+
|
| 549 |
+
00:11:14.015 --> 00:11:22.339
|
| 550 |
+
acá, acá, acá, acá, acá, acá, acá, acá,
|
| 551 |
+
|
| 552 |
+
00:11:22.339 --> 00:11:27.220
|
| 553 |
+
acá y acá. Y empecemos a analizar nodo
|
| 554 |
+
|
| 555 |
+
00:11:27.220 --> 00:11:30.200
|
| 556 |
+
por nodo. Por mi camino de acá, enviamos
|
| 557 |
+
|
| 558 |
+
00:11:30.675 --> 00:11:35.095
|
| 559 |
+
tres unidades, por este camino terminamos enviando seis,
|
| 560 |
+
|
| 561 |
+
00:11:36.115 --> 00:11:42.035
|
| 562 |
+
y por este camino terminamos enviando cuatro, que
|
| 563 |
+
|
| 564 |
+
00:11:42.035 --> 00:11:45.555
|
| 565 |
+
concuerda con las trece unidades que recibimos al
|
| 566 |
+
|
| 567 |
+
00:11:45.555 --> 00:11:48.900
|
| 568 |
+
final. De estas tres vemos que todas se
|
| 569 |
+
|
| 570 |
+
00:11:48.900 --> 00:11:53.860
|
| 571 |
+
fueron a través de este camino, de estas
|
| 572 |
+
|
| 573 |
+
00:11:53.860 --> 00:11:56.180
|
| 574 |
+
seis vemos que se dividieron, si bien acá
|
| 575 |
+
|
| 576 |
+
00:11:56.180 --> 00:11:58.580
|
| 577 |
+
miramos, por acá se fueron cuatro y por
|
| 578 |
+
|
| 579 |
+
00:11:58.580 --> 00:12:01.275
|
| 580 |
+
acá se fueron dos y estas cuatro que
|
| 581 |
+
|
| 582 |
+
00:12:01.275 --> 00:12:04.075
|
| 583 |
+
se llegaron por acá, se fueron cuatro por
|
| 584 |
+
|
| 585 |
+
00:12:04.075 --> 00:12:08.095
|
| 586 |
+
acá, de acá vemos que llegamos con seis,
|
| 587 |
+
|
| 588 |
+
00:12:09.275 --> 00:12:12.895
|
| 589 |
+
cuatro y dos, y por último en este
|
| 590 |
+
|
| 591 |
+
00:12:13.035 --> 00:12:17.580
|
| 592 |
+
camino empezamos con nueve y terminamos con dos,
|
| 593 |
+
|
| 594 |
+
00:12:17.800 --> 00:12:22.840
|
| 595 |
+
por lo tanto recibimos siete. Esas siete vemos
|
| 596 |
+
|
| 597 |
+
00:12:22.840 --> 00:12:24.760
|
| 598 |
+
que llegaron tres por acá y cuatro por
|
| 599 |
+
|
| 600 |
+
00:12:24.760 --> 00:12:28.440
|
| 601 |
+
acá para al final obtener mi flujo máximo
|
| 602 |
+
|
| 603 |
+
00:12:28.440 --> 00:12:31.905
|
| 604 |
+
de tres. Y esta gráfica nos permite identificar
|
| 605 |
+
|
| 606 |
+
00:12:31.905 --> 00:12:33.985
|
| 607 |
+
cómo se reparte el flujo en cada uno
|
| 608 |
+
|
| 609 |
+
00:12:33.985 --> 00:12:36.545
|
| 610 |
+
de mis vértices, cómo yo llego acá, por
|
| 611 |
+
|
| 612 |
+
00:12:36.545 --> 00:12:38.785
|
| 613 |
+
ejemplo, con seis, pero se divide en cuatro
|
| 614 |
+
|
| 615 |
+
00:12:38.785 --> 00:12:41.105
|
| 616 |
+
por acá, dos por acá, y al final
|
| 617 |
+
|
| 618 |
+
00:12:41.105 --> 00:12:46.000
|
| 619 |
+
me permiten recibir todo ese flujo máximo. Así
|
| 620 |
+
|
| 621 |
+
00:12:46.000 --> 00:12:48.080
|
| 622 |
+
es, por ejemplo, cómo funciona una red de
|
| 623 |
+
|
| 624 |
+
00:12:48.080 --> 00:12:51.440
|
| 625 |
+
alcantarillado, una red de distribución eléctrica, una red
|
| 626 |
+
|
| 627 |
+
00:12:51.440 --> 00:12:54.375
|
| 628 |
+
de comunicaciones, los datos, por ejemplo, también se
|
| 629 |
+
|
| 630 |
+
00:12:54.535 --> 00:12:57.255
|
| 631 |
+
entrelazan así a través de los vértices. Ahora
|
| 632 |
+
|
| 633 |
+
00:12:57.255 --> 00:13:00.395
|
| 634 |
+
ya sabes cómo puedes encontrar el flujo máximo
|
| 635 |
+
|
| 636 |
+
00:13:01.015 --> 00:13:05.035
|
| 637 |
+
de una gráfica y cómo puedes interpretar estos
|
| 638 |
+
|
| 639 |
+
00:13:05.575 --> 00:13:09.115
|
| 640 |
+
sistemas. Nos vemos en la siguiente clase.
|
a/Curso de Matemáticas Discretas/06-Algoritmos/05-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/06-Algoritmos/06-Algoritmos de Grafos Prim Dijkstra Kruskal y Fleury.mhtml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Matemáticas Discretas/07-Conclusiones/01-Repaso Final de Matemáticas Discretas Lógica Conjuntos y Algoritmos.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8e7e82b237f136edd570d32b82e8ecc8991da6b23ab9ee837a3b38ed59090045
|
| 3 |
+
size 12623514
|
a/Curso de Matemáticas Discretas/07-Conclusiones/01-Repaso Final de Matemáticas Discretas Lógica Conjuntos y Algoritmos.vtt
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:00.000 --> 00:00:08.320
|
| 4 |
+
Felicitaciones lo has conseguido has completado el curso
|
| 5 |
+
|
| 6 |
+
00:00:08.320 --> 00:00:12.000
|
| 7 |
+
de matemáticas discretas vamos a hacer un breve
|
| 8 |
+
|
| 9 |
+
00:00:12.000 --> 00:00:13.935
|
| 10 |
+
repaso de todos los temas que hemos visto
|
| 11 |
+
|
| 12 |
+
00:00:14.095 --> 00:00:17.935
|
| 13 |
+
Arrancamos con un poco de lógica viendo cómo
|
| 14 |
+
|
| 15 |
+
00:00:17.935 --> 00:00:22.895
|
| 16 |
+
la lógica nos permite diseñar o crear cosas
|
| 17 |
+
|
| 18 |
+
00:00:22.895 --> 00:00:25.635
|
| 19 |
+
que tengan una estructura, que tengan una coherencia.
|
| 20 |
+
|
| 21 |
+
00:00:26.350 --> 00:00:29.310
|
| 22 |
+
Vimos lo que fueron tablas de verdad, pasamos
|
| 23 |
+
|
| 24 |
+
00:00:29.310 --> 00:00:32.190
|
| 25 |
+
a lo que fueron conjuntos donde vimos que
|
| 26 |
+
|
| 27 |
+
00:00:32.190 --> 00:00:34.510
|
| 28 |
+
un conjunto es un grupo de elementos que
|
| 29 |
+
|
| 30 |
+
00:00:34.510 --> 00:00:39.165
|
| 31 |
+
pertenecen y que tienen características afines, vimos lo
|
| 32 |
+
|
| 33 |
+
00:00:39.165 --> 00:00:43.085
|
| 34 |
+
que fueron las gráficas, vimos los árboles y
|
| 35 |
+
|
| 36 |
+
00:00:43.085 --> 00:00:47.325
|
| 37 |
+
vimos algunos algoritmos de mucha importancia para tus
|
| 38 |
+
|
| 39 |
+
00:00:47.325 --> 00:00:50.765
|
| 40 |
+
proyectos. Espero que me haya explicado lo mejor
|
| 41 |
+
|
| 42 |
+
00:00:50.765 --> 00:00:53.660
|
| 43 |
+
posible para mí fue un placer acompañarte en
|
| 44 |
+
|
| 45 |
+
00:00:53.660 --> 00:00:56.300
|
| 46 |
+
todo este viaje y ahora te invito a
|
| 47 |
+
|
| 48 |
+
00:00:56.300 --> 00:00:59.180
|
| 49 |
+
que tomes el examen que tenemos preparado para
|
| 50 |
+
|
| 51 |
+
00:00:59.180 --> 00:01:02.300
|
| 52 |
+
ti donde pondrás a prueba tus conocimientos y
|
| 53 |
+
|
| 54 |
+
00:01:02.300 --> 00:01:06.300
|
| 55 |
+
saldrás con un certificado exitoso. Nos vemos en
|
| 56 |
+
|
| 57 |
+
00:01:06.300 --> 00:01:08.400
|
| 58 |
+
una próxima oportunidad, muchas gracias.
|
a/Curso de Matemáticas Discretas/07-Conclusiones/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|