Principales respuestas
problema de logica con matriz

Pregunta
-
hola, buena a todos, tengo un gran problem y nose como resolverlo.
resulta que tengo una matriz[x,y], donde la cual tiene 0 y 1, donde 0 representa vacio y 1 ocupado, nesesito generar una trayectoria, me explico.
ingreso una posicion inicial y una pos final, si mi matriz es de [20,40] ingreso una pos inicial de [3,5] y una final de [17,34], entoces nesesito que desde la pos 3,5 me genere una trayectori si es que se puede hasta la pos 17,34, sin pasar por las posiciones con valor 1, y tampoco pasar en diagonal...
cualquier sugerencia o ayuda la acepto, de ante manos gracias.
Respuestas
-
Dado que tu matriz representa un grafo sin pesos (o se puede pasar o no se puede pasar), te vale un algoritmo como una busqueda en anchura o una busqueda en profundidad. Tambien podrias usar Dijkstra o A*, pero son un poco mas complicados de programar y de entender.
Unos cuantos links:
http://es.wikipedia.org/wiki/Busqueda_en_anchura
http://es.wikipedia.org/wiki/Busqueda_en_profundidad
http://es.wikipedia.org/wiki/Algoritmo_de_Dijkstra
http://es.wikipedia.org/wiki/A*
Vicente Cartas Espinel - MVP XNA/DirectX- Marcado como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator viernes, 29 de abril de 2011 15:54
-
Hola ARthmiaz
Te envío unos ejemplos:
http://msdn.microsoft.com/es-es/library/0sxy840k(VS.80).aspx
http://support.microsoft.com/kb/136420/es
http://msdn.microsoft.com/es-es/library/cc436629(VS.71).aspx
Espero que te ayude!
Saludos.
Eduardo Portescheller - LATAM Forum Support Engineer
Microsoft Corporation- Propuesto como respuesta Eduardo PorteschellerModerator martes, 19 de abril de 2011 15:18
- Marcado como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator viernes, 29 de abril de 2011 15:54
Todas las respuestas
-
Hola....
Arthemiaz,lo q deseas hacer es encontrar el camino de menor peso,es un problema relaciondo con grafos ???
Fijate si tienes una matriz[4x4] y tu posicion inicial es [1,3] y quieres llegar a [2,4] entonces tu ruta larga seria [1,4];[2,1];[2,2]:[2,3]d peso 4
pero una ruta corta seria [2,3]de peso 1 ,otra ruta corta [1,4] d peso 1 una vez hice uno parecido pero el tamaño de ña matriz era fijo....por lo q veo el tuyo puede cambiar......podrias resolver tu problema creando el mapa de la matriz y tratando cada pocision como nodos fijate la pos [1,1] solo se conecta con [1,2];[2,1];y [2,2]es decir si estas en [1,1] y quieres llegar a cualquier otra posicion tendras q pasar por una de las 3 poscisiones anteriores ...lo q tienes q evaluar es q el valor contenido sea =0 para acceder de lo contrario pruebas ota poscision...
EFRAIN MEJIAS C VALENCIA - VENEZUELA -
Dado que tu matriz representa un grafo sin pesos (o se puede pasar o no se puede pasar), te vale un algoritmo como una busqueda en anchura o una busqueda en profundidad. Tambien podrias usar Dijkstra o A*, pero son un poco mas complicados de programar y de entender.
Unos cuantos links:
http://es.wikipedia.org/wiki/Busqueda_en_anchura
http://es.wikipedia.org/wiki/Busqueda_en_profundidad
http://es.wikipedia.org/wiki/Algoritmo_de_Dijkstra
http://es.wikipedia.org/wiki/A*
Vicente Cartas Espinel - MVP XNA/DirectX- Marcado como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator viernes, 29 de abril de 2011 15:54
-
-
Hola ARthmiaz
Te envío unos ejemplos:
http://msdn.microsoft.com/es-es/library/0sxy840k(VS.80).aspx
http://support.microsoft.com/kb/136420/es
http://msdn.microsoft.com/es-es/library/cc436629(VS.71).aspx
Espero que te ayude!
Saludos.
Eduardo Portescheller - LATAM Forum Support Engineer
Microsoft Corporation- Propuesto como respuesta Eduardo PorteschellerModerator martes, 19 de abril de 2011 15:18
- Marcado como respuesta Juan Carlos Ruiz PachecoMicrosoft employee, Moderator viernes, 29 de abril de 2011 15:54
-
gracias a los dos vere que ago xD.
e creado diferentes tipos de algoritmo para esto, pero son para casos particulares, y no e podido crea uno que sirva para todos..... y para algunos casos que todabia no e podido resolver.
Vicente Cartas Espinel - MVP XNA/DirectX