elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algoritmo de marshall
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo de marshall  (Leído 2,810 veces)
verakra

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Algoritmo de marshall
« en: 21 Marzo 2019, 04:56 am »

he investigado y leido sobre el algoritmo pero no encuentro las manera de como implementarlo en C++, si alguien sabe su ayuda seria de mucha ayuda



En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Algoritmo de marshall
« Respuesta #1 en: 21 Marzo 2019, 06:58 am »

Qué parte es la que no sabes implementar??
Y qué datos tienes para empezar la ejecución??
Aparte te recomiendo que insertes tu programa para ver los avances  :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
verakra

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Algoritmo de marshall
« Respuesta #2 en: 23 Marzo 2019, 05:02 am »

no se ni como empezar , a implementar  ese algoritmo vi explicaciones de como hacerlo , pero no orientado para programarlo, osea que aprendi como hacerlo,, pero no como programarlo
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Algoritmo de marshall
« Respuesta #3 en: 23 Marzo 2019, 12:32 pm »

Por lo que he leído es tener una matriz inicial e ir realizando una serie de operaciones con el fin de modificar alguno de los valores de esta. Si lo tienes hecho en papel, fíjate en las condiciones que se tienen que ir cumpliendo para tener una idea de cómo implementarlo.
Y estoy dando por hecho que ya conoces la matriz inicial.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Algoritmo de marshall
« Respuesta #4 en: 23 Marzo 2019, 14:20 pm »

Es un algoritmo relativamente sencillo de programar.
Se compone de dos partes:
- En la primera hay dos bucles anidados para rellenar la matriz (bidimensional) cuyo contenido se puede expresar como para cada nodo, la distancia desde dicho nodo a todos los otros (la distancia de un nodo a sí mismo, obviamente siempre será 0). Esta parte viene dado por los pesos de las aristas que unen dos nodos, luego según como se proporcione el origen de datos puedes venir prácticamente sin cambios de origen. Básicamente es una adaptación de los datos de entrada sobre un array bidimensional.

- En la segunda se utiliza dicha matriz en 3 bucles anidados. Los 2 primeros son un recorrido completo, en el 3 se trata de localizar el par menor que es el que se asigna. es decir siempre que se encuentra uno menor, se asigna... ahora la distancia a batir es la recién asignada (similar a la ordenación de burbuja que cuando encuentras uno menor, luego hay que seguir buscando uno menor que el ahora hallado menor).

Ahora para terminar de entenderlo toma lápiz y papel, situa 3 o 4 puntos, dales indices desde 0 a n-1... traza líneas de uno a otro, marca un valor de distancia en cada línea (no importa si es exacta o sini es aproximada, pero ayuda a entenderlo visualmente si dichos valores son aproximados).
Supongamos que tienes 4 puntos 0,1,2 y 3 de 2 a 3 la distancia es 25, el algoritmo, trata de verificar si existe una distancia más corta que 25 para llegar del punto 2 al 3, y cual es esa distancia, que es la que finalmente constará. Natualmente el algoritmo  es para todos los pares de puntos (no solo para uno), pero si primero tratas de generar un algoritmo para dados 1 par de puntos encontrar un acceso entre ellos con una distancia más corta que la directa entre ellos, el siguiente paso es añadir un bucle que envuelva a este para hacer lo mismo pero con cada par de puntos, no solo con un par.

Con esta aclaración y lo anterior debiera serte sencillo generar el algoritmo, es trivial, basta un poco de lógica...
« Última modificación: 23 Marzo 2019, 14:38 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines