522 views
# TDA | Practica 4 ejercicio 13 ## Consigna - $13.\star$El algoritmo de Kruskal (resp. Prim) con orden de selección es una variante del algoritmo de Kruskal (resp. Prim) donde a cada arista $e$ se le asigna una prioridad $q(e)$ además de su peso $p(e)$. Luego, si en alguna iteración del algoritmo de Kruskal (resp. Prim) hay más de una arista posible para ser agregada, entre esas opciones se elige alguna de mínima prioridad. - a) Demostrar que para todo árbol generador mínimo $T$ de $G$, si las prioridades de asignación están definidas por la función. $$q_T(e)=\begin{cases}0&\text{si }e\in T\\1&\text{si }e\notin T\end{cases}$$ - b) entonces se obtiene $T$ como resultado del algoritmo de Kruskal (resp. Prim) con orden de selección ejecutado sobre $G$ (resp. cualquiera sea el vértice inicial en el caso de Prim) Usando el inciso anterior, demostrar que si los pesos de $G$ son todos distintos, entonces $G$ tiene un único árbol generador mínimo. ## Resolución ### a) - Por cada arista del grafo tiene peso y prioridad. - Entonces en las iteraciones de kruskal si hay más de una arista posible para agregar, se elige la de menor prioridad. - Podemos pensar como en los algoritmos de sorting, es un factor de ordenamiento secundario para definir desempates. - $q$ viene de queue, o sea es una cola. - Entonces $q_t(e)$ significa la posición de la arista $e$ en la cola de $T$. - Nos dice que sí $e$ pertenece al arbol, dejalo en cero. - Y si no pertenece, dejalo en uno. - Entonces $min(0,1) = 0$. - Esto garantiza que $\forall e \in E(T)$ tiene que tener la minima prioridad. - Prioridad y formación de $T$: Esta asignación de prioridades no solo afecta la selección de aristas durante las iteraciones del algoritmo, sino que también garantiza que el árbol generador mínimo $T$ se forma con las aristas de menor prioridad posible. En el caso de aristas con el mismo peso, la prioridad se convierte en el factor decisivo. ### b) - Quiero demostrar que: - Si los pesos de $G$ son todos distintos - Entonces G tiene un único arbol - $(\forall e \in E(T) \Rightarrow \forall j \in E(T)) \Rightarrow (w(e) \neq w(j)) \Rightarrow G$ **tiene un único árbol**. - Pensando un rato la proposición, tiene mucho sentido. - Supongo que si los pesos de $G$ son todos distintos, entonces $G$ tiene más de un AGM. - Supongamos también que en el grafo $G$, hay 2 AGM diferentes entre sí, $T_1$, y $T_2$ - Esto significa que por lo menos la diferencia entre ellos tiene que ser de una arista. - Designamos $e_1 \in T_1 \land e_2 \in T_2$ - Pero Por definición, un AGM incluye aristas que en conjunto suman el peso mínimo posible para conectar todos los vértices. Dado que todos los pesos son distintos, $e_1$ y $e_2$ no pueden tener el mismo peso. - Entonces si tienen que tener una arista de diferencia y todos los pesos son distintos eso implica que una va a ser más pesada que la otra no siendo un AGM y esto es absurdo. - Sin pérdida de generalidad, supongamos que $w(e_1) < w(e_2)$. Esto implica que si $e_2$ fuese parte de un AGM, entonces reemplazar $e_2$ en $T_2$ por $e_1$ reduciría el peso total de $T_2$, lo que contradice la suposición de que $T_2$ es un AGM. Por lo tanto, $T_2$ no podría ser un AGM si $w(e_1) < w(e_2)$. $\square$