Najkrótsza ścieżka w grafie, współrzędne jako punkty

Najkrótsza ścieżka w grafie, współrzędne jako punkty
sebastian kozyra
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam, mam zrobić program szukający najkrótszej ścieżki w grafie za pomocą algorytmu Dijkstra.
Program ma pobierać od użytkownika n wierzchołków w formie współrzędnych x,y i następnie od wybranego punktu wyświetlić najkrótsze ścieżki do pozostałych.

Praktycznie nie programuje i możliwe, że moje pytania będą łatwe, ale nie znalazłem odpowiedzi w internecie.

  1. W jaki sposób najprościej pobrać dane jako dwie współrzędne, by zbudować z nich graf? Wystarczy zrobić dwie tablice jedna dla x druga y?

  2. Jakie będą wagi? Będą nimi odległości między punktami ze wzoru sort(x2-x1)^2+(y2-y1)^2?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5068
1

Ad. 1. Zmapuj sobie jakoś, te współrzedne na wierzchołki, pierwsza para -> wierzchołek 1, itd..
Ad. 2. Algorytm nie obchodzi co znaczą wagi, ale jeśli chodzi o znalezienie najkrótszej odległości, to dobrałbym wagi zgodnie z odległościa euklidesową.

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0
sebastian kozyra napisał(a):

Witam, mam zrobić program szukający najkrótszej ścieżki w grafie za pomocą algorytmu Dijkstra.

Program ma pobierać od użytkownika n wierzchołków w formie współrzędnych x,y i następnie od wybranego punktu wyświetlić najkrótsze ścieżki do pozostałych.

Coś te zadanie wygląda na niekompletne.
Brak wyraźnej definicji dostępnych krawędzi. Zakładam, że waga krawędzi jest wyznaczoną odległością euklidesową.
Jeśli krawędzie są dostępne miedzy wyszkimi parami punktów to wtedy najkrótsza droga to skok bezpośredni i użycie Dijkstra traci sens.

I jeszcze standardowe: a co sam już zrobiłeś?

T3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
0

TUTAJ możesz przejrzeć gotowe rozwiązanie z wytłumaczeniem całego kodu. Przejrzyj, spróbuj napisać coś sam i wtedy zobaczymy, z czym rzeczywiście będziesz miał kłopot

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.