Tentukanlah lintasan terpendek dari A ke O pada graf berikut

Berikut ini adalah pertanyaan dari nazhifchan23 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Tentukanlah lintasan terpendek dari A ke O pada graf berikut dengan menggunakan simple hill climbing:​
Tentukanlah lintasan terpendek dari A ke O pada graf berikut dengan menggunakan simple hill climbing:​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban:

Jalur Terpendek: ['A', 'B', 'E', 'H', 'K', 'L', 'O']

Penjelasan:

def hill_climbing(graph, start, goal):

   current_node = start

   path = [current_node]

   visited = set()

   while current_node != goal:

       neighbors = graph[current_node]

       best_distance = float('inf')

       best_node = None

       for neighbor, distance in neighbors.items():

           if distance < best_distance and neighbor not in visited:

               best_distance = distance

               best_node = neighbor

       if best_node is None:

           break

       visited.add(current_node)

       current_node = best_node

       path.append(current_node)

   return path

# ubah grafik kalo ada yang salah

graph = {

   'A': {'B': 20, 'C': 30, 'D': 40},

   'B': {'E': 40, 'A': 20},

   'C': {'E': 20, 'D': 45},

   'D': {'F': 40},

   'E': {'F': 55, 'G': 35, 'H': 30},

   'F': {'I': 30},

   'G': {'H': 35, 'K': 30},

   'I': {'H': 40, 'J': 20, 'M': 30},

   'M': {'N': 20},

   'J': {'K': 40, 'N': 30},

   'K': {'L': 40},

   'N': {'L': 55, 'O': 55},

   'L': {'O': 50},

   'H': {'K': 20, 'E': 30, 'G': 35, 'I': 40},

   'O': {'L': 50, 'N': 55}

}

start_node = 'A'

goal_node = 'O'

# Menemukan jalur terpendek

shortest_path = hill_climbing(graph, start_node, goal_node)

print("Shortest Path:", shortest_path)


Menurut kode hill_climbing diatas, jawabannya ['A', 'B', 'E', 'H', 'K', 'L', 'O']. Silahkan ubah isi nested dictionary 'graph' kalau merasa datanya kurang akurat.

Semoga dengan pertanyaan yang sudah terjawab oleh itsreihan dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Wed, 16 Aug 23