Avatar billede BenedikteJ Nybegynder
04. marts 2011 - 17:32 Der er 6 kommentarer og
1 løsning

Algoritmer og A*

Jeg sidder med en opgave indeholdende algoritmer og A*. Jeg har IKKE fat i emnet, så jeg er (næsten) totalt blank.

Der skal laves:

- En metode til at finde den korteste vej fra punkt A til punkt B
- En kantklasse, der indeholder en pris for at følge kanten
- Et gitter/net på 10*10 felter, hvor der skal findes en vej fra punkt A til punkt B udenom forhindringer

Det skal laves med A*

Er der nogen der har styr på det emne, som har tid eller lyst til at give en hånd? Jeg har intet på nuværende tidspunkt.
Avatar billede Syska Mester
04. marts 2011 - 17:44 #1
Hvad er A* ?

Ikke at jeg som sådan kan løse det ...
http://en.wikipedia.org/wiki/Bor%C5%AFvka's_algorithm

Der er i hvert fald lidt at læse.

Lyder som en skole opgave ... har i ingen bog omkring emnet ?
Avatar billede BenedikteJ Nybegynder
04. marts 2011 - 17:47 #2
A* : http://en.wikipedia.org/wiki/A*_search_algorithm og http://www.policyalmanac.org/games/aStarTutorial.htm

Det er også en skoleopgave, har bare slet ikke fanget emnet.
Ingen bog, kun en tekst og diverse wiki-artikler.
Mangler lidt en hjælp i hvordan jeg omsætter principperne i algoritmer til egentlig kode...
Avatar billede Syska Mester
04. marts 2011 - 18:19 #3
Ahhh.

Der står da pseudocode på den artikel du selv linkede til. Så skal det jo bare skrives om til C#.

mvh
Avatar billede BenedikteJ Nybegynder
04. marts 2011 - 18:23 #4
Som jeg skrev, jeg har overhovedet intet fanget ud over princippet i det og aner ikke rigtigt hvad jeg skal skrive og hvor jeg skal starte.
Avatar billede Knobtemor Nybegynder
11. marts 2011 - 11:07 #5
Aner ikke hvad A* er.

Men shortest path fra A-B med edge beregning, uden en metode angivelse, ville jeg bare hurtigt implementere en greedy algorithm, også aflevere det.

Lidt hints til at oprette rammerne:

int[] x = new {0,1,2,4,5,6,7,8,9};
int[] y = new {0,1,2,4,5,6,7,8,9};

Point begin = new Point(0,0);
Point end = new Point(9,9);

Public Class Route
{
    List<Point> route = new List<Point>
    publíc void Route()
    {
       
    }
   
    public void addPoint(Point p)
    {
        route.add(p);
    }

    public void showPath()
    {

        Debug.WriteLine("Path was: ");
        int count = 0;
        foreach(Point p in route)
        {
            if(count == route.Count()-1)
            {
              Debug.WriteLine("(" + p.x + "," + p.y + ")");
            }
            else
            {
              Debug.WriteLine("(" + p.x + "," + p.y + ") ->" );
            }
           
        }
    }

}

public void calculatePath(Route result, Point begin, Point end)
{
    // Implementer algoritme.
}
Avatar billede BenedikteJ Nybegynder
30. marts 2011 - 17:38 #6
Tak for svar, jeg fandt en løsning ved en lang søgning på google.
Avatar billede Syska Mester
30. marts 2011 - 21:30 #7
Husk at skrive løsningen ned til andre som måtte have samme problem.

mvh
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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