Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
Problema TSP

Problema TSP

Ratings: (0)|Views: 101|Likes:
Solución al problema TSP por medio de algoritmo greedy y por búsqueda exhaustiva.
Solución al problema TSP por medio de algoritmo greedy y por búsqueda exhaustiva.

More info:

Published by: Jesús David Venzor Cárdenas on Nov 16, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

04/13/2013

pdf

text

original

 
Problema:
De un conjunto de N ciudades y sus conexiones con costos, se quiere encontrar la ruta másefectiva de manera que se recorran todas las ciudades partiendo de una ciudad K dada.
Restricciones:
* Sólo se puede pasar una vez por cada ciudad en el recorrido.* No existen islas (nodos aislados).* Las aristas son no dirigidas (se puede utilizar en ambos sentidos).* Existe al menos un camino hamiltoniano partiendo del punto dado.
 
Solución 1: Algoritmo Voraz.
El algoritmo consiste en siempre tomar el óptimo local y proceder desde ahí. La acumulaciónsecuencial de estos óptimos locales nos arrojan la respuesta.Cabe recalcar que dado que no se exploran el resto de las opciones es muy posible que elóptimo global encontrado no sea el mejor.
Ej. Para el siguiente grafo, magistralmente dibujado:
Se quiere encontrar la mejor ruta partiendo de la ciudad "1".Primeramente, se requiere convertir dicha información a un formato entendible para elprograma, se ha elegido lo siguiente: Un número N, denotando la cantidad de nodos en elgrafo; un número K, la ciudad de partida; un número M, denotando la cantidad de aristas en elgrafo y a continuación M líneas en la forma A B C, dónde A B C es el coste C que existe en viajarde la ciudad A a la B (o viceversa).4 // N1 //K6 // M1 2 7 // El camino de 1 a 2 cuesta 71 3 9 //El camino de 1 a 3 cuesta 91 4 8 //El camino de 1 a 4 cuesta 82 3 6 //El camino de 2 a 3 cuesta 62 4 5 //El camino de 2 a 4 cuesta 53 4 4 //El camino de 3 a 4 cuesta 4
 
A continuación el algoritmo codificado en C
#include<stdio.h>#include<stdlib.h>int i,c,n,n2,m,k,a,b,pos,costo,min,costos[100][100];bool v[100];int main()//freopen("entrada.txt", "r", stdin);//freopen("optimo.txt", "w", stdout);printf("Programa que calcula la ruta más corta/barata por algoritmo voraz paraun grafo con camino hamiltoniano, partiendo de un punto dado.\n");printf("Introduzca la cantidad de vértices ");scanf("%d",&n);printf("Introduce el punto de partida ");scanf("%d",&k);printf("Introduzca la cantidad de aristas ");scanf("%d",&m);for(i=0;i<n;i++)for(c=0;c<n;c++)costos[i][c]=-1;v[i]=false; }printf("A continuación introduzca las aristas en el formato: A B C, donde A y Bson el número de los vértices y C el costo entre ellos\n");for(i=0;i<m;i++)scanf("%d %d %d",&a,&b,&c);a--; b--;if(costos[a][b]==-1||costos[a][b]>c)costos[a][b]=costos[b][a]=c; }k--;v[k]=true;n2=n-1;costo=0;while(n2)min=-1;for(i=0;i<n;i++)if(!v[i]&&(min==-1||(costos[k][i]<min&&costos[k][i]!=-1)))min=costos[k][i];pos=i; }costo+=min;v[pos]=true;k=pos;n2--;

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->