|
46 | 46 | - [Ejercicio 2](#ejercicio-2)
|
47 | 47 | - [Algoritmos](#algoritmos)
|
48 | 48 | - [Algoritmo de Prim](#algoritmo-de-prim)
|
| 49 | + - [Algoritmo Dijkstra](#algoritmo-dijkstra) |
| 50 | + - [Algoritmo de Kruskal](#algoritmo-de-kruskal) |
| 51 | + - [Algoritmo de Fleury](#algoritmo-de-fleury) |
| 52 | + - [Algoritmo de flujo máximo](#algoritmo-de-flujo-máximo) |
49 | 53 |
|
50 | 54 | # Lógica
|
51 | 55 | ## ¿Qué es la lógica?
|
@@ -692,4 +696,107 @@ El algoritmo de Prim nos indica que este se **termina cuando hemos conectado tod
|
692 | 696 |
|
693 | 697 | <div align="center">
|
694 | 698 | <img src="img/80.png">
|
| 699 | +</div> |
| 700 | + |
| 701 | +<div align="center"> |
| 702 | + <img src="img/81.png"> |
| 703 | +</div> |
| 704 | + |
| 705 | +<div align="center"> |
| 706 | + <img src="img/82.png"> |
| 707 | +</div> |
| 708 | + |
| 709 | +## Algoritmo Dijkstra |
| 710 | + |
| 711 | +El algoritmo de Dijkstra **va a buscar la ruta optima o de menor coste entre dos vértices.** |
| 712 | + |
| 713 | +Los pasos de este algoritmo son los siguientes: |
| 714 | + |
| 715 | +* Asignar el valor infinito a cada nodo que no ha sido visitado. |
| 716 | +* Mantener un registro de los nodos visitados. |
| 717 | +* Calcular la distancia a cada nuevo nodo sumando la distancia anterior. |
| 718 | +* Si la nueva distancia que se calculo es menor que la anterior entonces reemplazar en el nodo, sino dejar la anterior. |
| 719 | +* Se finalizará cuando se llega al nodo final. |
| 720 | + |
| 721 | +<div align="center"> |
| 722 | + <img src="img/83.png"> |
| 723 | +</div> |
| 724 | + |
| 725 | +<div align="center"> |
| 726 | + <img src="img/84.png"> |
| 727 | +</div> |
| 728 | + |
| 729 | +<div align="center"> |
| 730 | + <img src="img/85.png"> |
| 731 | +</div> |
| 732 | + |
| 733 | +<div align="center"> |
| 734 | + <img src="img/86.png"> |
| 735 | +</div> |
| 736 | + |
| 737 | +<div align="center"> |
| 738 | + <img src="img/87.png"> |
| 739 | +</div> |
| 740 | + |
| 741 | +## Algoritmo de Kruskal |
| 742 | + |
| 743 | +**El algoritmo de Kruskal al igual que el algoritmo de Prim sirve para buscar el árbol de expansión mínimo**, la diferencia es que el algoritmo de Kruskal inicia seleccionando la arista de menor valor y después en cada iteración se agrega la arista de menor valor del conjunto disponible. |
| 744 | + |
| 745 | +<div align="center"> |
| 746 | + <img src="img/88.png"> |
| 747 | +</div> |
| 748 | + |
| 749 | +<div align="center"> |
| 750 | + <img src="img/90.png"> |
| 751 | +</div> |
| 752 | + |
| 753 | +<div align="center"> |
| 754 | + <img src="img/89.png"> |
| 755 | +</div> |
| 756 | + |
| 757 | +## Algoritmo de Fleury |
| 758 | + |
| 759 | +El algoritmo de Fleury **va a encontrar un ciclo euleriano**. Recordemos que un ciclo euleriano es un ciclo donde **inicias y terminas en el mismo punto**, pasando por todas las aristas una sola vez. |
| 760 | + |
| 761 | +Los pasos que seguir son: |
| 762 | + |
| 763 | +* Verificar grado del grafo. |
| 764 | +* Realizar un circuito cerrado. |
| 765 | +* En cada nueva iteración realizar un nuevo camino cerrado visitando aristas que no han sido visitadas. |
| 766 | +* Reemplazar cada nuevo circuito en el inicial hasta visitar todas las aristas. |
| 767 | + |
| 768 | +Para grados **pares** |
| 769 | + |
| 770 | +<div align="center"> |
| 771 | + <img src="img/91.png"> |
| 772 | +</div> |
| 773 | + |
| 774 | +<div align="center"> |
| 775 | + <img src="img/92.png"> |
| 776 | +</div> |
| 777 | + |
| 778 | +Dependiendo del grado, unicamente pueden aparecer n/2 veces |
| 779 | + |
| 780 | +<div align="center"> |
| 781 | + <img src="img/93.png"> |
| 782 | +</div> |
| 783 | + |
| 784 | +## Algoritmo de flujo máximo |
| 785 | + |
| 786 | +Habrá ocasiones donde no vamos a querer el coste mínimo, sino buscar el flujo máximo, para esas ocasiones nos servirá este algoritmo. **Para este algoritmo usaremos un grafo dirigido empoderado.** |
| 787 | + |
| 788 | +Los pasos del algoritmo son los siguientes: |
| 789 | + |
| 790 | +* Direccionar los flujos e iniciar en ceros. |
| 791 | +* Obtener trayectorias buscando el mayor flujo. |
| 792 | +* Escoger el menor flujo de la trayectoria, esto es la arista de menor valor dentro de tu camino que seleccionaste. |
| 793 | +* Actualizar el gráfico con las capacidades mínimas, ósea, restando el valor de la arista del anterior paso a cada una de las aristas del camino. |
| 794 | +* Buscar nueva trayectoria o camina en aumento y repetir hasta que no existan más. |
| 795 | + |
| 796 | +<div align="center"> |
| 797 | + <img src="img/94.png"> |
| 798 | +</div> |
| 799 | + |
| 800 | +<div align="center"> |
| 801 | + <img src="img/95.png"> |
695 | 802 | </div>
|
0 commit comments