Avatar billede mickni33 Nybegynder
13. april 2005 - 11:29 Der er 12 kommentarer og
2 løsninger

shortest path

Min figur står ved 3 tallet ved 1,1 hvordan kommer jeg hurtigst ned til 1 tallet i modsatte hjørne. figuren skal holde sig til banen som er markeret med 3

0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 3 3 3 3 3 3 3 0
0 3 0 3 0 0 3 0 3 0 0 3 0
0 3 0 3 0 0 3 0 3 0 0 3 0
0 3 0 3 0 0 3 3 3 3 3 3 0
0 3 0 3 0 0 0 0 2 0 0 3 0
0 3 0 3 0 0 0 0 2 0 0 3 0
0 3 3 3 3 3 3 3 3 3 3 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0

Det er denne matrix jeg bruger jeg vil så lige høre hvilken søgning / teori der er bedst at bruge når nu min bane ligger i denne matrix ?
Avatar billede snoop_one Nybegynder
13. april 2005 - 15:42 #1
Hvordan bliver din matrix bygget op? Er det dig selv der laver den?
Avatar billede soreno Praktikant
13. april 2005 - 17:11 #2
Hvis man betragter matricen som en graf så vil en brede-først søgning kunne finde den sti som er kortest.

Så på en eller anden måde skal du have emuleret en brede-først søgning i matricen eller også skal du på en eller anden måde oversætte matricen til en graf.

(Eller bruge en helt anden strategi, men jeg er ikke kreativ nok til at komme frem til noget brugbart.. :-)
Avatar billede soreno Praktikant
13. april 2005 - 17:12 #3
Hvad betyder 2 i matricen ?
Avatar billede zaim Nybegynder
13. april 2005 - 23:58 #4
jeg tror du skal bygge en rekursiv struktur, som efter prøver alle muligheder et 3-tal af gangen. Og så kan du vurdere hvilken af mulighederne der er bedst ud fra antallet af 3taller man skal forbi.

start med et 3tal. Send det kordinater ind i en funktion. Lad funktionen finde alle 3taller der er naboer til det første 3tal. Lad funktionen kalde sig selv for hvert af disse 3 taller. Funktionen skal så returnere falsk hvis den når til et 3-tal som ingen nye 3taller har som nabo eller hvis funktionen ikke er fader til en funktion som returnere true. Funktionen skal returner true hvis den rammer et tallet.
Du bliver vist nødt til at lave en eller anden struktur, der kan holde styr på hvad nye 3taller er. Og du skal finde en løsning på hvordan du tæller antal 3taller på vejen.
Håber jeg hjalp lidt.
Det er ikke den smukkeste løsning, og den er helt sikkert ikke den hurtigste. Men den vil kunne finde den hurtigste vej.
Avatar billede soreno Praktikant
14. april 2005 - 06:17 #5
Det lyder som en dybde-først søgning. Ulempen ved den er at den korteste vej kan risikere at være den sidste der undersøges.
Med bredde-først er man garanteret at den korteste vej er den første man finder der leder til målet.
Avatar billede mickni33 Nybegynder
14. april 2005 - 09:23 #6
der skulle stå 3 istedet for 2.
Avatar billede mickni33 Nybegynder
14. april 2005 - 09:25 #7
Ja jeg har selv lavet matricen... Jeg tegner en vej på skærmen og ved kordinaterne smider jeg et 3 ind i matricen. 1 = slutstedet
Avatar billede mickni33 Nybegynder
14. april 2005 - 09:34 #8
Hvordan laver man så grafen ug fra sådan en matrice ?
Avatar billede mickni33 Nybegynder
14. april 2005 - 09:36 #9
Man skal vel finde ud af hvor langt der er til slutpunktet ved hver af retningerne eller hva ?

Men hvordan opbygger man så denne Graf
Avatar billede snoop_one Nybegynder
14. april 2005 - 12:51 #10
Ja så skal du mens du opbygger din matrice også opbygge et søge træ... i dit tilfælde kan en knude have 3 børn... også ganske rigtigt som der bliver foreslået skal du køre en  brede første søgning igennem dette træ..

Ps: husk at tage højde for cykler når du opbygger dit søgetræ.
Avatar billede mickni33 Nybegynder
14. april 2005 - 14:31 #11
hvad skal jeg gemme i dt søgetræ?
og hvad mener du med cykler?
Avatar billede busschou Praktikant
14. april 2005 - 14:39 #12
Lyder som om der skal lidt læse stof til måske
Der findes tre metoder: Prims, Kruskals og Dijkstras metode
De bruges mere eller mindre til det samme nemlig at finde det mindste udspændende træ i grafen.
Dijkstra er nok den sikreste til at finde den korste vej
Se evt på det her link for at få ideer og inspiration - der er også kildekode i eksemplerne
http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/main/index.shtml
Avatar billede mickni33 Nybegynder
14. april 2005 - 14:43 #13
Regner helt klart med at der skal læses...Ville bare lige høre hvilken teori jeg skulle gå igang med når jeg nu havde opbygget min bane i en matrice.
Det kunne være at der var en af metoderne som var bedre end den anden når jeg havde en matrix opbygning :-)
Avatar billede busschou Praktikant
14. april 2005 - 14:47 #14
Det "normale" ville være at lave en graf som man gennemløber. Det stemmer godt overens med at vi her har fat i graf-teori :o)
Så med mindre det kun er for sjov og spads...eller fordi du gerne vil bruge den struktur af en speciel grund
Så synes jeg nok du skulle overveje en anden struktur...
Men det er jo bare min mening :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester