Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
República bolivariana de venezuela
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Universidad Nacional Experimental Politécnica de la Fuerza Armada
UNEFA
Núcleo Portuguesa – Extensión Turen
TEORÍA DE GRAFOS
Autores:
Miguel Pérez
Vilmarys Castillo
Jesús Pérez
2. Red de flujo
En teoría de grafos, una red de flujo es un grafo dirigido donde existen
dos vértices especiales, uno llamado fuente, al que se le asocia un flujo positivo y otro
llamado sumidero que tiene un flujo negativo y a cada arista se le asocia
cierta capacidad positiva. En cada vértice diferente a los dos especiales se mantiene
la ley de corrientes de Kirchoff, en donde la suma de flujos entrantes a un vértice debe ser
igual a la suma de flujos que salen de él (propiedad de conservación del flujo ).
Puede ser utilizada para modelar el tráfico en un sistema de autopistas, fluidos viajando
en tuberías, corrientes eléctricas en circuitos eléctricos o sistemas similares por lo que
viaje algo entre nodos. Uno de los usos principales de los llamados algoritmos de flujo es
encontrar el flujo máximo de la fuente al sumidero, siempre cumpliendo unas
determinadas restricciones.
Fuetes
Es un punto de partida del flujo total de una red.
Una Red de Transporte es una gráfica dirigida, simple, con pesos y que debe cumplir las
siguientes:
Poseer una fuente o vértice fijo que no tiene aristas de entrada.
Poseer un sumidero o vértice fijo que no tiene arista de salida
El peso Cij de la arista dirigida de i a j llamado capacidad de “ij” es un número no
negativo.
En otras palabras fuente es el punto de partida del recorrido, donde no posee ninguna
arista de salida, y el sumidero es el punto de llegada o punto deseado el cual no posee
ninguna arista de salida.
3. Problema de la ruta más corta
En la teoría de grafos, el problema del camino más corto es el problema que consiste en
encontrar un camino entre dos vértices (o nodos) de tal manera que la suma de los pesos
de las aristas que lo constituyen es mínima. Un ejemplo de esto es encontrar el camino
más rápido para ir de una ciudad a otra en un mapa. En este caso, los vértices
representarían las ciudades y las aristas las carreteras que las unen, cuya ponderación
viene dada por el tiempo que se emplea en atravesarlas.
El problema del camino más corto puede ser definido para grafos no dirigidos, dirigidos o
mixtos. La siguiente es una definición para grafos no dirigidos, en el caso de grafos
dirigidos la definición de camino requiere que los vértices adyacentes estén conectados
por una apropiada arista dirigida.
Dos vértices son adyacentes cuando poseen una arista común. Un camino en un grafo no
dirigido es una secuencia de vértices tal que todo vértice es adyacente con el vértice .
Un camino se dice que es de longitud si va desde hasta.
Sea la arista incidente con los vértices y. Dada una función de variable real ponderada y
un grafo no dirigido, el camino más corto desde hasta es el camino (donde y) sobre
todos los posibles que minimiza la suma Cuando cada arista en el grafo tiene un peso
unitario o, hallar el camino más corto es equivalente a encontrar el camino con menor
número de aristas.
El problema es también conocido como el problema de los caminos más cortos entre dos
nodos, para diferenciarlo de las siguientes generalizaciones:
El problema de los caminos más cortos desde un origen, en el cual tenemos que
encontrar los caminos más cortos de un vértice origen v a todos los demás vértices del
grafo.
El problema de los caminos más cortos con un destino, en el cual tenemos que encontrar
los caminos más cortos desde todos los vértices del grafo a un único vértice destino, esto
puede ser reducido al problema anterior invirtiendo el orden.
El problema de los caminos más cortos entre todos los pares de vértices, el cual tenemos
que encontrar los caminos más cortos entre cada par de vértices (v, v') en el grafo.
4. Árbol de expansión
Un árbol de expansión (aristas azules gruesas) de un grafo de rejilla.
En teoría de grafos, un árbol de expansión, árbol generador o árbol recubierto T de
un grafo conexo, no dirigido G es un árbol compuesto por todos los vértices y algunas
(quizá todas) de las aristas de G. Informalmente, un árbol de expansión de G es una
selección de aristas de G que forman un árbol que cubre todos los vértices. Esto es, cada
vértice está en el árbol, pero no hay ciclos. Por otro lado, todos los puentes de G deben
estar contenidos en T.
Un árbol de expansión o árbol recubierto de un grafo conexo G puede ser también
definido como el mayor conjunto de aristas de G que no contiene ciclos, o como el mínimo
conjunto de aristas que conecta todos los vértices.
EJEMPLO
N= {1, 2, 3, 4, 5}
A= {(1,2),(1,3),(2,3),(2,5),(3,4),(3,5),(4,2),(4,5)}
Un árbol es una red conectada que puede consistir solo en un subconjunto de todos los
nodos en ella, donde no se permiten ciclos.
5. Un árbol de expansión es un árbol que enlaza todos los nodos de la red, también sin
permitir ciclos.
Algoritmo de flujo máximo
Tenemos el conocido problema de flujo máximo o máxima: ¿cuál es la tasa mayor a la
cual el material puede ser transportado de la fuente al sumidero sin violar ninguna
restricción de capacidad?
En otras palabras, el problema consiste en determinar la máxima capacidad de flujo que
puede ingresar a través de la fuente y salir por el nodo de destino.
El procedimiento para obtener el flujo máximo de una red, consiste en seleccionar
repetidas veces cualquier trayectoria de la fuente al destino y asignar el flujo máximo
posible en esa trayectoria.
Algoritmo de Ford-Fulkerson
El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda aumentar el
flujo, hasta que se alcance el flujo máximo. La idea es encontrar una ruta de
penetración con un flujo positivo neto que una los nodos origen y destino.
Consideraremos las capacidades iniciales del arco que une el nodo i y el
nodo j como Cij y Cji. Estas capacidades iniciales irán variando a medida que avanza el
algoritmo, denominaremos capacidades residuales a las capacidades restantes del arco
una vez pasa algún flujo por él, las representaremos como cij y cji.
Para un nodo j que recibe el flujo del nodo i, definimos una clasificación [aj,i] donde aj es
el flujo del nodo i al nodo j.
Los pasos del algoritmo se definen como sigue:
Paso 1: Inicializamos las capacidades residuales a las capacidades iniciales,
hacemos (cij,cji)=(Cij,Cji) para todo arco de la red. Suponiendo el nodo 1 como el nodo
origen, hacemos a1=∞ y clasificamos el nodo origen con [∞,-]. Tomamos i=1 y vamos al
paso 2.
Paso 2: Determinamos Si como un conjunto que contendrá los nodos a los que podemos
acceder directamente desde i por medio de un arco con capacidad positiva, y que no
formen parte del camino en curso. Si contiene algún nodo vamos al paso 3, en el caso de
que el conjunto sea vacío saltamos al paso 4.
6. Paso 3: Obtenemos kЄSi como el nodo destino del arco de mayor capacidad que salga
de i hacia un nodo perteneciente a Si. Es decir, cik = max{cij} con jЄSi. Hacemos ak=cik y
clasificamos el nodo k con [ak,i]. Si k es igual al nodo destino o sumidero, entonces
hemos encontrado una ruta de penetración, vamos al paso 5. En caso contrario
continuamos con el camino, hacemos=k y volvemos al paso 2.
Paso 4 (retroceso): Si i=1, estamos en el nodo origen, y como Si es vacío, entonces no
podemos acceder a ningún nodo, ni encontrar algún nuevo camino, hemos terminado,
vamos al paso 6.
En caso contrario, i≠1, le damos al valor i el del nodo que se ha clasificado
inmediatamente antes, eliminamos i del conjunto Si actual y volvemos al paso 2.
Paso 5: Llegados a este paso tenemos un nuevo camino: Np={1,k1,k2,...,n}, esta será
la p-ésima ruta de penetración desde el nodo origen al nodo destino. El flujo máximo a lo
largo de esta ruta será la capacidad mínima de las capacidades residuales de los arcos
que forman el camino, es decir: fp=min{a1,ak1,ak2,...,an}.
La capacidad residual de cada arco a lo largo de la ruta de penetración se disminuye
por fp en dirección del flujo y se incrementa por fp en dirección inversa, es decir, para los
nodos i y j en la ruta, el flujo residual se cambia de la (cij,cji) actual a (cij-fp,cji+fp)si el flujo
es de i a j, o (cij+fp,cji-fp) si el flujo es de j a i
Inicializamos i=1 y volvemos al paso 2 para intentar una nueva ruta de penetración.
Paso 6 (solución): Una vez aquí, hemos determinado m rutas de penetración. El flujo
máximo en la red será la suma de los flujos máximos en cada ruta obtenida, es
decir: F=f1+f2+...+fm. Teniendo en cuenta que las capacidades residuales inicial y final
del arco (i, j) las dan (Cij,Cji) y (cij,cji) respectivamente, el flujo máximo para cada arco se
calcula como sigue: sea (α, β)=(Cij-cij, Cji-cji), si α>0, el flujo óptimo de i a j es α, de lo
contrario, si β>0, el flujo óptimo de j a i es β. Es imposible lograr que tanto αcomo β sean
positivas.
7. Corte Mínimo
Es un corte cuyo porte es mínimo, es decir, el corte mínimo en una red
corresponde a la capacidad mínima sobre los demás cortes de la red o si dicha capacidad
del corte posee un valor menor, es importante acotar que este córtenos muestra la
mínima capacidad del corte efectuado en un grafo. Los cortes mínimos serán
aquellos cortes cuyo valor de la capacidad coincida con el valor del flujo en este
último paso. Este teorema del corte mínimo se establece como sigue: Sea F un flujo en G
y sea (P, P) un corte en G si la igualdad se cumple entonc es el flujo es máximo y el
corte es mínimo si y solo si se cumple lo siguiente:
1) FIJ =CI J para I ЄP, J Є P
2) Fij=0 para i Є P, J Є P
Una nota importante es que el valor del flujo máximo de una red es igual a la capacidad
del corte mínimo que se puede aplicar a la red. Por consiguiente el corte mínimo se
obtiene por medio del algoritmo anterior.
Ejemplo de un corte mínimo en una red o grafo es la siguiente: En este ejemplo hay 3
cortes mínimo.
8. Capacidad residual
Es la capacidad adicional de flujo que un arco puede llevar:
Dada una red de flujo máximo, plantee la red residual asociada.
Encuentre la trayectoria de la fuente al destino con capacidad de flujo estrictamente
positivo (si no existe alguno, es porque se ha encontrado el óptimo).
Examine estas trayectorias para encontrar la rama o arco con la menor capacidad de flujo
restante e incremente en éste valor, la capacidad del flujo en sentido contrario.
Determine todas las trayectorias estrictamente positivas, hasta que no se permita flujo del
nodo a un nodo destino.
Podemos, mediante el Algoritmo de Ford-Fulkerson, encontrar el flujo máximo de una red.
Este algoritmo es un método iterativo, el cual, empieza con un flujo nulo y en cada
iteración se va obteniendo un valor del flujo que va aumentando el camino, hasta que no
se pueda aumentar más. Depende de tres puntos vitales:
Red residual: camino de la fuente al sumidero, donde cada una de las aristas tiene un
flujo residual mayor que cero. Siendo el flujo residual, el flujo que se puede obtener en
una arista una vez que haya pasado un flujo por ella.
Aumento de camino: se basa en ir aumentando el camino, hasta alcanzar el máximo
(capacidad residual, definido anteriormente).
Corte en redes de flujo: consiste simplemente en realizar una partición del conjunto de
vértices en dos subconjuntos.