soadmetal Postado Junho 11, 2007 Denunciar Share Postado Junho 11, 2007 Estou precisando muito do algoritomo de Ford Fulkerson em linguagem C para Quarta - Feira...Sera que alguém poderia me ajudar ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Junho 18, 2007 Denunciar Share Postado Junho 18, 2007 Salve!Velho, vai no Google e procura pelo algoritmo e depois converta-o para a Linguagem C....E se precisar de ajuda em algo, sobre como converter para a Linguagem C, é só falar! ;)PS: Olhe também na WikipédiaAbraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 soadmetal Postado Junho 22, 2007 Autor Denunciar Share Postado Junho 22, 2007 Salve!Velho, vai no Google e procura pelo algoritmo e depois converta-o para a Linguagem C....E se precisar de ajuda em algo, sobre como converter para a Linguagem C, é só falar! ;)PS: Olhe também na WikipédiaAbraços,William RodriguesE ai Wiilian tudo bem cara, aqui eu consegui o algoritimo em C para calcular o fluxo maximo porem esta muito extenso será que teria um jeito de simplificar ele.Abs.#include <stdio.h>#include <iostream.h>//Definições básicas#define BRANCO 0#define VERDE 1#define AZUL 2#define MAX_NOS 1000//Declaraçõesint n; // numero de nosint e; // numero de arestasint capacidade[MAX_NOS][MAX_NOS]; // capacidade matrizint fluxo[MAX_NOS][MAX_NOS]; // fluxo matrizint cor[MAX_NOS]; // array de 0 e 1 int visitado[MAX_NOS]; // armazena no array o caminho aumentadoint min (int x, int y) { return x<y ? x : y; // returns minimum of x and y}//Uma fila para a buscaint origem,destino;int f[MAX_NOS+2];void enfilera (int x) { f[destino] = x; destino++; cor[x] = VERDE;}int desenfilera () { int x = f[origem]; origem++; cor[x] = AZUL; return x;}//Fila de busca no caminho aumentadoint busca (int saida, int objetivo) { int u,v; for (u=0; u<n; u++) { cor = BRANCO; } origem = destino = 0; enfilera(saida); visitado[saida] = -1; while (origem!=destino) { u = desenfilera(); // Para todo nó adjacente a v. Se a capacidade // de u para v na sua rede residual, // enfilera v. for (v=0; v<n; v++) { if (cor[v]==BRANCO && capacidade[v]-fluxo[v]>0) { enfilera(v); visitado[v] = u; } } } // Se a cor do nó objetivo é azul agora, // significa que alcançamos. return cor[objetivo]==AZUL;}//Algoritimo Ford-Fulkerson int max_fluxo (int fonte, int sorvedouro) { int i,j,u; // Inicializa o fluxo nulo. int max_fluxo = 0; for (i=0; i<n; i++) { for (j=0; j<n; j++) { fluxo[j] = 0; } } // enquanto existir caminho expandivel, // aumentar o fluxo ao longo desse caminho. while (busca(fonte,sorvedouro)) { // Determine a quantidade de nos que podemos incrementar o fluxo. int incrementar = 999; for (u=n-1; visitado>=0; u=visitado) { incrementar = min(incrementar,capacidade[visitado]- fluxo[visitado]); } // agora incrementar o fluxo. for (u=n-1; visitado>=0; u=visitado) { fluxo[visitado] += incrementar; fluxo[visitado] -= incrementar; } max_fluxo += incrementar; } return max_fluxo;}//Leitura do arquivo e funcão mainvoid leia_arquivo() { int a,b,c,i,j; FILE* input = fopen("matriz.txt","r"); // leia numero de nos e arestas fscanf(input,"%d %d",&n,&e); // inicializa a matriz vazia for (i=0; i<n; i++) { for (j=0; j<n; j++) { capacidade[j] = 0; } } // leia os valores das arestas for (i=0; i<e; i++) { fscanf(input,"%d %d %d",&a,&b,&c); capacidade[a] = c; } fclose(input); }int main () { leia_arquivo(); printf("\nO fluxo maximo e: %d\n",max_fluxo(0,n-1)); printf("\n"); system ("pause"); return 0; }//Arquivo/*6 10 // 6 nos, 10 edges0 1 16 // capacidade de 0 para 1 é 160 2 13 // capacidade de 0 para 2 é 131 2 10 // capacidade de 1 para 2 é 102 1 4 // capacidade de 2 para 1 é 43 2 9 // capacidade de 3 para 2 é 91 3 12 // capacidade de 1 para 3 é 122 4 14 // capacidade de 2 para 4 é 144 3 7 // capacidade de 4 para 3 é 73 5 20 // capacidade de 3 para 5 é 204 5 4 // capacidade de 4 para 5 é 4*///Saida do progrma //O programa verifica o fluxo máximo de 0 a 5. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
soadmetal
Estou precisando muito do algoritomo de Ford Fulkerson em linguagem C para Quarta - Feira...Sera que alguém poderia me ajudar ?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.