2. Algoritma Greedy Pada Penentuan Jalur Terpendek

  Pertemuan : 2

Dosen : Nesi Syafitri, S.Kom, M.Cs Graph Graph 

  Graph digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

  

  Gambar berikut ini sebuah graph yang menyatakan peta jaringan jalan raya yang

Graph Brebes Tegal

  Slawi Pemalang Purwokerto Banjarnegara Wonosobo

Kendal Semarang Pekalongan Purbalingga Salatiga Solo Purwodadi Demak Kudus Rembang Blora Sragen Boyolali Temanggung Komponen dalam Graph: Simpul (vertex)  menyatakan titik/node/ kota Sisi (edge)  menyatakan jalur / jalan

Definisi Graph

  Graph G = (V, E), yang dalam hal ini:

V = himpunan tidak-kosong dari simpul-

simpul (vertices)

Contoh Graph

  1

  1

  1

  2

  3

  2

  3

  2

  3 e 1 e 2 e

3 e 4 e 5 e

6 e 7 e 1 e 2 e 3 e 4 e 5 e 6 e 8 Menentukan Simpul dan Sisi pada Graph

  Graph G 1 G adalah graph dengan 1 1 Simpul(V) = { 1, 2, 3, 4 } Sisi(E) = { (1, 2), (1, 3), 2 (2, 4), (3, 4) } (2, 3), Graph 

  Graph G 2 G adalah graph dengan 2 V = { 1, 2, 3, 4 }

  e 1 e 4

  (1, 3), (2, 4), (3, 4),

  e 3 Graph 

  Graph G G adalah graph dengan 3 3

  e e E = { (1, 2), (2, 3), (1, 3),

  4

  1 e

  3

  (1, 3), (2, 4), (3, 4),

  e

  2

  2 e

  Graph 

  Graph G 2 Pada G , sisi e = (1, 3) 2 3 dan sisi e = (1, 3) 4 dinamakan sisi-ganda

  1

  (multiple edges atau

  e 1 e 4 paralel edges) karena e 3

  kedua sisi ini Graph 

  Graph G 3 Pada G , sisi e = (3, 3) 3 8

  1

  dinamakan gelang atau kalang (loop)

  e e

  4

  1

  karena ia berawal dan

  e

  3 e

  berakhir pada simpul

  2

  2 e

Jenis-Jenis Graph

  Berdasarkan ada tidaknya gelang atau sisi a. ganda pada suatu graph, maka graph digolongkan menjadi dua jenis:

  1. Graph sederhana (simple graph).

  2. Graph tak-sederhana (unsimple-graph).

  Graph sederhana (simple graph)

  Graph yang tidak mengandung gelang maupun sisi-ganda dinamakan graph sederhana. G1 adalah contoh graph sederhana

  1

  

Graph tak-sederhana (unsimple-graph)

  Graph yang mengandung sisi ganda atau gelang dinamakan graph tak-sederhana (unsimple graph). G2 dan G3 adalah contoh graph tak-sederhana

  1

  1

Jenis-Jenis Graph

  b. Berdasarkan jumlah simpul pada suatu graph, maka secara umum graph dapat digolongkan menjadi dua jenis:

  1. Graph berhingga (limited graph)

  2. Graph tak-berhingga (unlimited graph)

  Graph berhingga (limited graph)

  Graph berhingga adalah graph yang jumlah simpulnya, n, berhingga.

  

Graph tak-berhingga (unlimited graph)

  Graph yang jumlah simpulnya, n, tidak berhingga banyaknya disebut graph tak-

  berhingga.

Jenis-Jenis Graph

  c. Berdasarkan orientasi arah pada sisi, maka secara umum graph dibedakan atas 2 jenis:

  1. Graph tak-berarah (undirected

  graph)

  2. Graph berarah (directed graph atau

  

Graph tak-berarah (undirected graph)

Graph yang sisinya tidak mempunyai orientasi arah disebut graph tak-berarah.

  Graph G , G , dan G adalah graph tak-

  1

  2

  3 berarah. 1 e e e 1 1 4 e 1 1 4

  

Graph berarah (directed graph atau

digraph)

  Graph yang setiap sisinya diberikan orientasi arah disebut sebagai graph 1 1 berarah.

  2

3

2 3

Jenis-Jenis Graph

  d. Berdasarkan Nilai yang ada pada edge: Graph Berbobot

  • yaitu graph yang pada setiap sisinya terdapat nilai bilangan riil yang menyatakan sebuah bobot

Lintasan (Path)

  

  Tinjau graph G1: lintasan 1, 2, 4, 3 adalah lintasan dengan barisan sisi (1,2), (2,4), (4,3).

   Panjang lintasan

  adalah jumlah sisi dalam lintasan tersebut. Lintasan 1, 2, 4, 3 pada G1 1

Siklus (Cycle) atau Sirkuit (Circuit)

   

  

Lintasan yang berawal Tinjau graph G1:

dan berakhir pada 1, 2, 3, 1 adalah simpul yang sama sebuah sirkuit. 1 disebut sirkuit atau siklus.

  Representasi Graph dalam Matrik

  Sebuah graph dapat direpresentasikan dalam bentuk Matrik Adjacency, dengan cara sbb:

  sangkar nxn, sesuai banyaknya simpul / vertex yang ada. Contoh Graph Berarah-Berbobot v1 v1 v2 v3 v4 v5 v3 v2

  

Contoh Graph Tidak Berarah-Tidak

berbobot v1 v2 v3 v4 v5 v1 v2 v4 v3

  Pertemuan : 3,4

Pendahuluan

  • paling populer untuk memecahkan persoalan optimasi. Persoalan optimasi (optimization problems):

  Algoritma greedy merupakan metode yang

  • persoalan yang menuntut pencarian solusi

  Solusi optimum (terbaik) adalah solusi yang

  • bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin.

  Elemen persoalan optimasi:

  • fungsi objektif(atau fungsi optimasi)
  •   kendala (constraints)

    Contoh masalah sehari-hari yang menggunakan prinsip greedy: 

      Memilih beberapa jenis investasi (penanaman modal)

      

      Mencari jalur tersingkat dari kota asal ke kota yang dituju

      

      Bermain kartu remi

      

    Cara Kerja Algoritma Greedy

      Rumus tujuan d(i) = d(i-1) + bobot node 2.

      Lakukan berulang-ulang: terpilih(i)

      Periksa semua sisi yang terhubung langsung dengan node awal.

      b.

    • pilih sisi yang memiliki bobot paling kecil.
    • hitung panjang lintasan

      Loo pin g Menentuka n kandidat Menentukan kandidat solusi Node akhir Node

      Awal Solusi terpilih

      1 A-B : 7 A-C : 6 A-D : 5 A-E : 9

      Jalur : A-D D(1) = 0 + 5 = 5 D D D

      1. Tentukan node Awal: A Tentukan node tujuan: L

      2.