
Ayuda No compila!!
Publicado por Gise (2 intervenciones) el 13/11/2016 20:25:47
No me compila,me lo podrian arreglar por favor...
Algoritmo de Ford Fulkerson
enunciado
La idea es encontrar una ruta de penetración con un flujo positivo neto que una los nodos origen y destino.
El otro es este algoritmo de Kruskal
El algoritmo de Kruskal es un algoritmo de la teoría de grafos para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo. Si el grafo no es conexo, entonces busca un bosque expandido mínimo
Por favorrr Ayudaaaa
Algoritmo de Ford Fulkerson
enunciado
La idea es encontrar una ruta de penetración con un flujo positivo neto que una los nodos origen y destino.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Ford-Fulkerson(G,s,t){
for (cada arco (u,v) de E) {
f[u,v]= 0;
f[v,u]= 0;
}
while (exista un camino p desde s at en la red residual Gf) {
cf(p) = min{cf(u,v) : (u,v) está sobre p};
for (cada arco (u,v) en p) {
f[u,v]= f[u,v] + cf(p) ;
f[v,u]= - f[u,v];
}
}
}
Ford-Fulkerson(G,s,t){
for (cada arco (u,v) de E) {
f[u,v]= 0;
f[v,u]= 0;
}
while (exista un camino p desde s at en la red residual Gf)
{
cf(p) = min{cf(u,v) : (u,v) está sobre p};
for (cada arco (u,v) en p) {
f[u,v]= f[u,v] + cf(p) ;
f[v,u]= - f[u,v];
}
}
}
El otro es este algoritmo de Kruskal
El algoritmo de Kruskal es un algoritmo de la teoría de grafos para encontrar un árbol recubridor mínimo en un grafo conexo y ponderado. Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo. Si el grafo no es conexo, entonces busca un bosque expandido mínimo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const int INF = 1000000;
int cn; //cantidad de nodos
vector< vector > ady; //matriz de adyacencia
// Devuelve la matriz de adyacencia del arbol minimo.
vector< vector > Grafo :: prim(){
// uso una copia de ady porque necesito eliminar columnas
vector< vector > adyacencia = this->ady;
vector< vector > arbol(cn);
vector markedLines;
vector :: iterator itVec;
// Inicializo las distancias del arbol en INF.
for(int i = 0; i < cn; i++) arbol[i] = vector (cn, INF);
int padre = 0;
int hijo = 0;
while(markedLines.size() + 1 < cn){ padre = hijo;
// Marco la fila y elimino la columna del nodo padre. markedLines.push_back(padre);
for(int i = 0; i < cn; i++) adyacencia[i][padre] = INF;
// Encuentro la menor distancia entre las filas marcadas.
// El nodo padre es la linea marcada y el nodo hijo es la columna del minimo.
int min = INF; for(itVec = markedLines.begin(); itVec != markedLines.end(); itVec++) for(int i = 0; i < cn; i++) if(min > adyacencia[*itVec][i]){
min = adyacencia[*itVec][i];
padre = *itVec;
hijo = i;
}
arbol[padre][hijo] = min;
arbol[hijo][padre] = min;
}
return arbol;
}
Valora esta pregunta


-1