• Sábado 5 de Octubre de 2024, 19:59

Autor Tema:  Algoritmo De Dijkstra En C++  (Leído 6724 veces)

Gabriela Salas

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Algoritmo De Dijkstra En C++
« en: Miércoles 26 de Mayo de 2004, 09:39 »
0
Hola!!!
De antemano gracias, a toda aquella persona que se tome la molestia de leer esta nota de auxilio !!!... y pues aun mas agradecida estare con la persona que me pueda ayudar...

El problema es el siguiente:
Tengo como trabajo de unidad, elaborar el diagrama de Dijkstra en C++, para este proximo lunes, pero no le entiendo a muchas cosas, hasta ahorita lo que hace mi codigo o programa como quieran llamarle, es:
1.- Pide numero de nodos del grafo.
2.- Llena la matriz del grafo con 0 y 1(si hay enlace de ese nodo con otro)
3.- Si hay un enlace de un nodo con otro es decir un (1), manda pedir el peso de ese enlace, y lo voy guardando en un vector llamado pesos.
4.- Acumulo el numero de adyacencias por nodos en otro vector( es decir si V1 tiene 2 adyacencias las pone tal y como se dijo , solo 2)... Pero he aqui el dile aqui no se si en el algoritmo de dijkstra puede haver mas de 1 lazo conectado con el mismo nodo? y si solo maneja grafos dirigidos o tambien puede manejar grafos que no son dirijidos?...
Bueno el caso es que me genera el numero de adyacencias por vertice y hasta ahi no se si voy bien...

Ahora otra de mis miles de dudas en cuanto a este programa es, como voy a hacer la comparación de nodo por nodo hasta encontrar el camino mas corto de V1 hacia todos los nodos... NO ENTENDER!!! :(
AYUDENME!!!!!!!!!!!!!!!

bueno pues dejo de dar lata, de antemano como lo dije al principio MIL GRACIAS... :unsure:

Nota: Adjunte el codigo que he hecho del algoritmo para que se den cuenta masomenos lo que llevo (no es gran cosaaaaa!!! :( ... snif!!!

ATENTAMENTE, CON DESESPERACIÓN:
                                                              GABRIELA S.V. :hola:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Comstock

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Algoritmo De Dijkstra En C++
« Respuesta #1 en: Miércoles 26 de Mayo de 2004, 19:52 »
0
Hola al parecer de lo que entendi en una primera leida de tu problema es cuando tienes mas de un valor o conexion a un mismo grafo ,esto algoritmo por lo general es utilizado para grafos dirigidos ya q para los grafos no dirigidos se utiliza prim o kuskal , la idea de djikstra es que ve el camino mas corto de un nodo para llegar a todos los otros , por lo que al tener dos opciones para visitar se visitara al que requiera menor costo .
en resumen tu idea esta bastante bien en lo que estas haciendo pero debes notar que primero debes fijar el nodo del que desees comenza , ya q djisktra es para ir de un nodo al resto y no de cualquier nodo al resto ya que para esto se utiliza el algoritmode floyd , pero bueno luego tu comjunto inicial sera solo este nodo con el que comienzas , luego avanzas al mas cercano nodo de los que tienes en tu conjunto de nodos (al comienzo solo el nodo inicial), luego que vistas al nodo mas cercano ,tu conjunto se incrementara al inicial + el visitado y nuevamente tienes que ver cual de los que te quedan es el nodo mas cercano(los visitados ya no cuentan) y asi hasta que hayas visitado todos , bueno eso es mas o menos la idea de djiskra . Si te complique mas de lo que te ayude o si simplemente no fui ninguna ayuda disculpa . En todo caso esta es una pagina en que explican el algoritmo de una manera excelente(grafica) solo que tu ordenador debe entender JAVA ademas esta el codigo para dijkstra . Adios suerte