Navigasyon nedir ?
Navigasyon yada Türkçe karşılığı ile “Yol Kılavuzu” bulunulan noktadan gidilmek istenilen nokta için en kısa ve en hızlı yolu hesaplayabilen elektronik cihazdır. 90’ lı yılların sonlarına doğru Avrupa’ da yaygınlaşan navigasyon cihazları Türkiye’ ye 2005 yılının sonlarına doğru gelmiştir.
Kısa yolun bulunması :
Navigasyon cihazları iki nokta arasındaki kısa yolu hesaplayabilmek için Hollanda’ lı Matematikçi Dijkstra tarafından bulunan Dijkstra Algoritması’nı kullanırlar. Bu algoritmanın temeli çizge teoremine (Graf Teorisi) dayanır. Kısa yol probleminde harita üzerindeki yerleşim yerleri (iller/ilçeler/köyler vb.) nokta olarak ve bu noktalara giden yollar çizgiler halinde ifade edilmektedir.
Dijkstra Algoritmasının sözde kodu (pseudocode):
- Başlangıç noktasını belirle.
- Başlangıç noktasından diğer noktalara olan maliyeti belirle ve düşük maliyetli
noktayı işaretle. - İkinci adımda işaretlenen noktadan gidilebilen diğer noktalar arasında da
aynı işlemi tekrarla.
Dijkstra Algoritması Örnek
Resimde verilen çizgede A noktasından H noktasına olan en kısa yolu ve yolun maliyetini bulalım.
0 herzaman ∞’ dan küçüktür. Bu yüzden yeni oluşturulacak sütun A sütunu olur ve 0 değeri işaretlendiği için sarı renkli kalemle üzerinden geçilmiştir. A-B yolunun maliyeti 15 birim, A-C yolunun maliyeti 3 ve A-D yolunun maliyeti 8 birimdir. A noktasından E, F, G ve H noktalarına direkt geçiş olmadığı için ∞ değerini alırlar. “init” sütununda B, C ve D noktalarının maliyetleri sonsuz olarak belirlenmiştir. Ancak A noktasından bu 3 noktaya daha ucuz maliyetli yol bulunduğu için bu noktaların “pred” sütunundaki karşılığı A olur.
Bir sonraki adımda A sütununda bulunan ve işaretlenmemiş en düşük maliyetli nokta bulunur. Bu nokta 3 birim ile C noktasıdır.
Yani C-D arası yeni maliyet 3 + 9 = 12 birimdir. Bir önceki adımda bulunan 8 birimlik maliyet 12 birimden küçük olduğu için 8 birimlik maliyet yenilenmez ve “pred” sütununda bir değişiklik yapılmaz. C-E, C-G ve C-H noktaları arasında direkt geçiş olmadığı için maliyetleri ∞ olur. Ancak C-F arasındaki yeni maliyet 3 + 4 = 7 birim olarak belirlenir ve 7 birim ∞ birimden küçük olduğu için F’ nin maliyet karşılığına 7 yazılır. F noktasına C noktasından daha düşük maliyetle gidilebildiği için F’ nin “pred” sütunundaki karşılığı artık C noktası olur. C sütunundadki işaretlenmemiş diğer düşük maliyet F’ ye ait olduğu için yeni sütun F sütunu olacaktır.
D noktasının komşularına olan yeni maliyetleri hesaplandıktan sonra D sütunundaki işaretlenmemiş en düşük maliyetli nokta için yeni sütun oluşturulur (G sütunu).
noktası not edilir. Bu şekilde kalan noktalar için de aynı adımlar tekrarlanır.
Bu şekilde tüm noktalar için Dijkstra Algoritması uygulandığında aşağıdaki tabela oluşmaktadır.
A-H kısa yolu: A → C → F → H
A-H kısa yolu maliyeti: 12 birim.
A noktasından E noktasına olan en düşük maliyetli yol:
E’ nin pred karşılığı G, G’ nin pred karşılığı F, F’ nin pred karşılığı C ve C’ nin
pred karşılığı A.
Kısa yol: A → C → F → G → E
Maliyet: 17 Birim