Escolar Documentos
Profissional Documentos
Cultura Documentos
LABORATORIO 09
ACTIVIDADES
1. Implementar en Python el siguiente cdigo correspondiente al modelo de
redes implementado a continuacin:
class FlowNetwork(object):
def __init__(self):
self.adj = {}
self.flow = {}
g = FlowNetwork()
[g.add_vertex(v) for v in "ABCDEF"]
g.add_edge('A','B',1)
g.add_edge('A','E',6)
g.add_edge('B','C',3)
g.add_edge('C','D',1)
g.add_edge('D','F',5)
g.add_edge('E','F',2)
print (g.max_flow('A','F'))
g = FlowNetwork()
[g.add_vertex(v) for v in "ABCDEF"]
g.add_edge('A','B',5)
g.add_edge('A','C',5)
g.add_edge('A','D',5)
g.add_edge('B','E',10)
g.add_edge('C','E',6)
g.add_edge('D','E',5)
g.add_edge('E','F',12)
print (g.max_flow('A','F'))
g = FlowNetwork()
[g.add_vertex(v) for v in "ABCDE"]
g.add_edge('A','B',12)
g.add_edge('A','D',87)
g.add_edge('B','E',11)
g.add_edge('C','A',19)
g.add_edge('D','C',10)
g.add_edge('D','B',23)
g.add_edge('E','D',43)
print (g.max_flow('A','E'))
EJERCICIOS
g = FlowNetwork()
[g.add_vertex(v) for v in "0ABCDEF"]
g.add_edge('0','A',8)
g.add_edge('0','B',7)
g.add_edge('0','C',4)
g.add_edge('A','D',3)
g.add_edge('A','B',1)
g.add_edge('B','D',4)
g.add_edge('B','C',2)
g.add_edge('B','E',5)
g.add_edge('C','E',4)
g.add_edge('D','F',9)
g.add_edge('E','D',1)
g.add_edge('E','F',6)
print (g.max_flow('0','F'))
g = FlowNetwork()
[g.add_vertex(v) for v in "sabcdt"]
g.add_edge('s','a',5)
g.add_edge('s','c',4)
g.add_edge('a','b',2)
g.add_edge('b','t',4)
g.add_edge('c','a',1)
g.add_edge('c','b',4)
g.add_edge('c','d',3)
g.add_edge('d','b',3)
g.add_edge('d','t',2)
print (g.max_flow('s','t'))
g = FlowNetwork()
[g.add_vertex(v) for v in "sabcdeft"]
g.add_edge('s','a',5)
g.add_edge('s','c',7)
g.add_edge('a','b',3)
g.add_edge('a','d',2)
g.add_edge('b','e',3)
g.add_edge('b','f',2)
g.add_edge('c','b',3)
g.add_edge('c','e',3)
g.add_edge('c','d',3)
g.add_edge('d','b',5)
g.add_edge('d','f',4)
g.add_edge('e','t',6)
g.add_edge('f','t',7)
print (g.max_flow('s','t'))
g = FlowNetwork()
[g.add_vertex(v) for v in "ABCDEF"]
g.add_edge('A','B',2)
g.add_edge('A','D',3)
g.add_edge('A','C',2)
g.add_edge('B','C',4)
g.add_edge('B','D',3)
g.add_edge('C','E',2)
g.add_edge('D','C',5)
g.add_edge('D','E',1)
g.add_edge('D','F',4)
g.add_edge('E','C',1)
g.add_edge('E','F',2)
print (g.max_flow('A','F'))
g = FlowNetwork()
[g.add_vertex(v) for v in "1234567"]
g.add_edge('1','2',7)
g.add_edge('1','3',4)
g.add_edge('1','4',8)
g.add_edge('2','4',7)
g.add_edge('2','5',2)
g.add_edge('3','5',9)
g.add_edge('3','6',5)
g.add_edge('4','5',9)
g.add_edge('5','6',8)
g.add_edge('5','7',6)
g.add_edge('6','7',8)
print (g.max_flow('1','7'))
g = FlowNetwork()
[g.add_vertex(v) for v in "0ABCDEF"]
g.add_edge('0','A',8)
g.add_edge('0','B',7)
g.add_edge('0','C',4)
g.add_edge('A','B',1)
g.add_edge('A','D',3)
g.add_edge('B','C',2)
g.add_edge('B','D',4)
g.add_edge('B','E',5)
g.add_edge('C','E',4)
g.add_edge('D','F',9)
g.add_edge('E','D',1)
g.add_edge('E','F',6)
print (g.max_flow('0','F'))
T[V] = [w]
T[w] = T[w] + [V]
if len(Vp)==len(G):
return
w=V
T = {r: []}
visit(G, r, T)
return T
DESVENTAJAS:
-
CUESTIONARIO
1. Cmo son los algoritmos de Flujo Mximo en los Modelos de redes?
Estos algoritmos buscan el flujo mximo de un grafo ponderado dirigido
recorriendo todo el grafo, nodo por nodo, y comparando las aristas,
asignndoles valores nulos al principio y despus de comparar todas las
aristas y sus pesos de nodo a nodo, se asigna el flujo que le
corresponde, imprimiendo al final el total de comparaciones que hizo,
siendo el flujo mximo de la red.