1. algoritma greedy pada penentuan jalur terpendek

Upload: rofisnovel

Post on 03-Mar-2016

27 views

Category:

Documents


1 download

DESCRIPTION

algoritma djikstra

TRANSCRIPT

  • Pertemuan : 2Dosen : Nesi Syafitri, S.Kom, M.Cs

  • Graph GraphGraph digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.Gambar berikut ini sebuah graph yang menyatakan peta jaringan jalan raya yang menghubungkan sejumlah kota di Provinsi Jawa Tengah.

  • Graph

    Brebes

    Tegal

    Slawi

    Pemalang

    Purwokerto

    Cilacap

    Banjarnegara

    Wonosobo

    Kebumen

    Purworejo

    Kendal

    Semarang

    Pekalongan

    Purbalingga

    Magelang

    Salatiga

    Klaten

    Solo

    Purwodadi

    Demak

    Kudus

    Rembang

    Temanggung

    Blora

    Sukoharjo

    Wonogiri

    Sragen

    Boyolali

    Kroya

  • Komponen dalam Graph:Simpul (vertex) menyatakan titik/node/ kotaSisi (edge) menyatakan jalur / jalan

  • Definisi GraphGraph G = (V, E), yang dalam hal ini: V = himpunan tidak-kosong dari simpul-simpul (vertices) = { v1 , v2 , ... , vn } E = himpunan sisi (edges) yang menghubungkan sepasang simpul = {e1 , e2 , ... , en }

  • Contoh GraphG1 G2 G3

  • Menentukan Simpul dan Sisi pada GraphGraph G1 G1 adalah graph denganSimpul(V) = { 1, 2, 3, 4 }Sisi(E) = { (1, 2), (1, 3), (2, 3), (2, 4), (3, 4) }

  • GraphGraph G2G2 adalah graph dengan V = { 1, 2, 3, 4 }E = { (1, 2), (2, 3), (1, 3), (1, 3), (2, 4), (3, 4), (3, 4) } = { e1, e2, e3, e4, e5, e6, e7}

  • GraphGraph G3G3 adalah graph denganV = { 1, 2, 3, 4 }E = { (1, 2), (2, 3), (1, 3), (1, 3), (2, 4), (3, 4), (3, 4), (3, 3) } = { e1, e2, e3, e4, e5, e6, e7, e8}

  • GraphGraph G2Pada G2, sisi e3 = (1, 3) dan sisi e4 = (1, 3) dinamakan sisi-ganda (multiple edges atau paralel edges) karena kedua sisi ini menghubungi dua buah simpul yang sama, yaitu simpul 1 dan simpul 3. 4

  • GraphGraph G3Pada G3, sisi e8 = (3, 3) dinamakan gelang atau kalang (loop) karena ia berawal dan berakhir pada simpul yang sama.

  • Jenis-Jenis GraphBerdasarkan ada tidaknya gelang atau sisi 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

  • 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

  • Jenis-Jenis Graphb. 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 Graphc. 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 digraph)

  • Graph tak-berarah (undirected graph)Graph yang sisinya tidak mempunyai orientasi arah disebut graph tak-berarah. Graph G1, G2, dan G3 adalah graph tak-berarah.

  • Graph berarah (directed graph atau digraph)Graph yang setiap sisinya diberikan orientasi arah disebut sebagai graph berarah. (a) G4 (b) G5(a) graph berarah, (b) graph-ganda berarah

  • Jenis-Jenis Graphd. Berdasarkan Nilai yang ada pada edge:Graph Berbobotyaitu graph yang pada setiap sisinya terdapat nilai bilangan riil yang menyatakan sebuah bobotGraph Tidak berbobotyaitu graph yang pada setiap sisinya tidak terdapat sebuah bilangan, sehingga bobot pada setiap sisi akan dinyatakan dengan nilai 0 atau 1

  • 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 memiliki panjang 3.

  • Siklus (Cycle) atau Sirkuit (Circuit)Lintasan yang berawal dan berakhir pada simpul yang sama disebut sirkuit atau siklus.

    Panjang sirkuit adalah jumlah sisi dalam sirkuit tersebut. Sirkuit 1, 2, 3, 1 pada G1 memiliki panjang 3.Tinjau graph G1: 1, 2, 3, 1 adalah sebuah sirkuit.

  • Representasi Graph dalam MatrikSebuah graph dapat direpresentasikan dalam bentuk Matrik Adjacency, dengan cara sbb:Matrik yang terbentuk adalah matrik bujur sangkar nxn, sesuai banyaknya simpul / vertex yang ada.Elemen yang ada pada setiap matrik diperoleh berdasarkan bobot yang ada pada masing-masing sisinya dan berdasarkan orientasi arah darai graph tersebut.

  • Contoh Graph Berarah-Berbobotv1v2v3v4v5v1v2v3v4v5

  • Contoh Graph Tidak Berarah-Tidak berbobotv1v2v3v4v5v1v2v3v4v5

  • Pertemuan : 3,4

  • Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Persoalan optimasi (optimization problems): persoalan yang menuntut pencarian solusi optimum.

    Persoalan optimasi ada dua macam: Maksimasi (maximization) Minimasi (minimization)

    Pendahuluan

  • Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin.

    Elemen persoalan optimasi:kendala (constraints)fungsi objektif(atau fungsi optimasi)

    Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi optimum.

  • Contoh masalah sehari-hari yang menggunakan prinsip greedy:Memilih beberapa jenis investasi (penanaman modal)Mencari jalur tersingkat dari kota asal ke kota yang ditujuBermain kartu remi

  • Cara Kerja Algoritma Greedy Tentukan node awal dan node tujuanLakukan berulang-ulang:Menentukan kandidat: Periksa semua sisi yang terhubung langsung dengan node awal. b. Menentukan kandidat solusi- pilih sisi yang memiliki bobot paling kecil. - hitung panjang lintasan sementara d(i).Menentukan solusi terpilih - Cek node akhir node tujuan- set node awal = node akhir terpilih3. Lakukan tahap no.2 sampai node tujuan ketemu Rumus d(i) = d(i-1) + bobot node terpilih(i)

  • Tentukan node Awal: A Tentukan node tujuan: L2. 3. Jalur terpendek : A D H K L Panjang lintasan : 33

    LoopingMenentukan kandidatMenentukan kandidat solusiNode akhirNode AwalSolusi terpilih1A-B : 7A-C : 6A-D : 5A-E : 9Jalur : A-DD(1) = 0 + 5 = 5DDD2D-H : 9Jalur: D HD(2) = 5 + 9 = 14HHH3H J : 10H K : 8Jalur : H - KD(3) = 14 + 8 = 22KKK4K L : 11Jalur : K LD(4) = 22 + 11 = 33L-L

    *