IF5110 Teori Komputasi. Teori Kompleksitas. (Bagian 1) Oleh: Rinaldi Munir. Program Studi Magister Informatika STEI-ITB

dokumen-dokumen yang mirip
Teori Kompleksitas (Bagian 2)

Review Teori P dan NP

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Teori P, NP, dan NP-Complete

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Aplikasi Graf dalam Rute Pengiriman Barang

MEMBANDINGKAN KEMANGKUSAN ALGORITMA PRIM DAN ALGORITMA KRUSKAL DALAM PEMECAHAN MASALAH POHON MERENTANG MINIMUM

Pemodelan Pembagian Kelompok Tugas Besar Strategi Algoritma dengan Masalah Sum of Subset

Algoritma Brute Force (lanjutan)

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

Algoritma Brute Force (lanjutan)

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

Pohon (TREE) Matematika Deskrit. Hasanuddin Sirait, MT 1

Matematika Diskret (Pohon) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

ALGORITMA GREEDY : MINIMUM SPANNING TREE. Perbandingan Kruskal dan Prim

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Algoritma Prim dengan Algoritma Greedy dalam Pohon Merentang Minimum

Soal dan Jawaban Materi Graf, Pohon, dan Kompleksitas Algoritma

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

Studi Algoritma Optimasi dalam Graf Berbobot

Decrease and Conquer

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Graf untuk soal nomor 7

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Pengantar Strategi Algoritma

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Algoritma Greedy (lanjutan)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kompleksitas Algoritma

Gambar 6. Graf lengkap K n

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Departemen Teknik Informatika Institut Teknologi Bandung 2004

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

RANCANG BANGUN APLIKASI MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

ALGORITMA RUTE FUZZY TERPENDEK UNTUK KONEKSI SALURAN TELEPON

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 05

Algoritma Branch & Bound

PRINSIP ALGORITMA GREEDY DAN APLIKASINYA DALAM BERBAGAI ALGORITMA LAIN

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

Graf. Bekerjasama dengan. Rinaldi Munir

UNIVERSITAS GUNADARMA

4. Undecidabality(Bagian1)

BAB II LANDASAN TEORI

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

Pohon (Tree) Contoh :

BAB 1 PENDAHULUAN. minimum secara langsung didasarkan pada algoritma MST (Minimum Spanning

BAB 1 PENDAHULUAN. 1.1 Latar belakang

Penerapan Teori Graf Pada Algoritma Routing

3. MesinTuring (Bagian3)

Implementasi Algoritma Greedy pada Permainan Ludo

TERAPAN POHON BINER 1

Algoritma Greedy (lanjutan)

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

BAB 2 LANDASAN TEORI. 2.1 Pengoptimalan, Optimisasi, Algoritma, dan Analisis Algoritma

Teori Pohon. Begin at the beginning and go on /ll you come to the end: then stop. Lewis Caroll, Alice s Adventures in Wonderland, 1865

Kompleksitas Algoritma

APLIKASI POHON DALAM PENCARIAN CELAH KEAMANAN SUATU JARINGAN

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Kompleksitas Algoritma

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Program Dinamis (Dynamic Programming)

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

Design and Analysis Algorithm

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Algoritma Huffman dan Kompresi Data

CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

BAB 2 LANDASAN TEORI

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Algoritma Prim sebagai Maze Generation Algorithm

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

PENERAPAN TEORI GRAF UNTUK MENYELESAIKAN MASALAH MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

INTRODUCTION TO GRAPH THEORY LECTURE 2

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

Penerapan Algoritma Prim dan Kruskal Acak dalam Pembuatan Labirin

BAB 2 LANDASAN TEORI

Algoritma Brute Force Oleh: Rinaldi Munir

Perbandingan Kompleksitas Algoritma Prim, Algoritma Kruskal, Dan Algoritma Sollin Untuk Menyelesaikan Masalah Minimum Spanning Tree

MATEMATIKA DISKRIT II ( 2 SKS)

Penyelesaian Traveling Salesman Problem dengan Algoritma Heuristik

ANALISIS ALGORITMA PEMBANGUN POHON EKSPRESI DARI NOTASI PREFIKS DAN POSTFIKS

Solusi UTS Stima. Alternatif 1 strategi:

BAB 2 LANDASAN TEORI

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Mesin Turing. Pertemuan Ke-14. Sri Handayaningsih, S.T., M.T. Teknik Informatika

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Transkripsi:

IF5110 Teori Komputasi Teori Kompleksitas (Bagian 1) Oleh: Rinaldi Munir Program Studi Magister Informatika STEI-ITB 1

Sebuah persoalan dikatakan Solvable, jika terdapat mesin Turing yang dapat menyelesaikannya. (atau decidable pada jenis persoalan keputusan) Unsolvable, jika tidak dapat dibuat mesin Turing untuk menyelesaikannya. (atau undecidable pada jenis persoalan keputusan) Solvable problem dapat dibagi menjadi dua kategori: 1. Tractable 2. Intractable 2

Sebuah persoalan dikatakan tractable jika ia dapat diselesaikan dalam waktu yang wajar (reasonable). Sebuah persoalan dikatakan intractable jika ia tidak dapat diselesaikan dalam waktu yang wajar dengan bertambahkanya ukuran persoalan. Apa yang dimaksud dengan waktu yang wajar? Standar waktunya adalah polynomial time. Polynomial time: O(n 2 ), O(n 3 ), O(1), O(n lg n) Not in polynomial time: O(2 n ), O(n n ), O(n!) untuk n yang kecil 3

Kompleksitas Waktu Mesin Turing adalah model matematis sebuah komputer. Persoalan dipecahkan dengan menggunakan mesin Turing. Mesin Turing menerima input sepanjang n, lalu, dimulai dari status awal, melakukan gerakan (transisi) dari satu status ke status lainnya. Kebutuhan waktu (running time) yang diperlukan oleh Mesin Turing untuk menyelesaikan persoalan dengan input dengan panjang n, dinyatakan dengan T(n), disebut kompleksitas waktu. 4

Sebuah mesin Turing M dikatakan kompleksitas waktunya T(n) bilamana jika M diberi input w yang panjangnya n maka M berhenti setelah melakukan gerakan sebanyak T(n), tanpa memperhatikan apakah M berhenti pada status accept atau reject. Contoh: T(n) = 5n + 2 T(n) = 2n 2 + n + 6 T(n) = 3 n + 10n 3 5

Kelas P Sebuah persoalan keputusan dikatakan di dalam kelas P jika ia dapat diselesaikan dalam waktu polinomial oleh mesin Turing deterministik. Dengan kata lain, tedapat mesin Turing determinsitik M yang memecahkan persoalan dan berhenti pada status akhir dengan jumlah gerakan tidak lebih dari T(n) bilamana mesin Turing M dberikan input sepanjang n. Karena persoalan berkoresponden dengan bahasa, maka kita katakan bahasa L termasuk dalam kelas P jika terdapat polinomial T(n) sedemikian sehingga L = L(M) untuk mesin Turing deterministik M yang kompleksitas waktunya T(n) 6

Contoh persoalan dalam kelas P: 1. Menentukan apakah sebuah integer n bilangan prima. 2. Menentukan apakah sebuah integer x terdapat di dalam sebuah senarai (list). 3. Menentukan apakah sebuah graf berbobot mengandung minimum spaning tree dengan bobot W? 4. Menentukan apakah sebuah integer n merupakan elemen terbesar di dalam sebuah senarai? Persoalan di dalam kelas P disebut tractable sedangkan persoalan yang bukan di dalam P disebut intractable. 7

Mesin Turing Deterministik vs. Mesin Turing non Determinisitik Pada mesin Turing deterministik, untuk satu status (p) dan satu simbol (X i ) di pita, hanya ada satu transisi ke status berikutnya (q). δ(p, X i ) = (q, Y, L) Sebaliknya pada mesin Turing non-deterministik, untuk satu status (p) dan satu simbol (X i ) di pita, terdapat lebih dari satu transisi ke status berikutnya (q). Mesin Turing non-deterministik memilik kemampuan untuk memilih suatu transisi δ(p, X i ) = (q, W, L), δ(p, X i ) = (r, Y, L), δ(p, X i ) = (s, Z, R), 8

Kelas NP Sebuah persoalan keputusan dikatakan di dalam kelas NP jika ia dapat diselesaikan dalam waktu polinomial oleh mesin Turing non deterministik. Karena persoalan berkoresponden dengan bahasa, maka kita katakan bahasa L termasuk dalam kelas NP jika terdapat mesin Turing non deterministik dan kompleksitas waktu polinomial T(n) sedemikian sehingga L = L(M), dan bilamana M dberikan input sepanjang n, maka jumlah gerakannya tidak lebih dari T(n). 9

Mesin Turing non deterministik dikatakan memiliki kebutuhan waktu polinomial karena ia memiliki kemampuan untuk menerka kemungkinan solusi yang jumlahnya eksponensial dan memverifikasi setiap kemungkinan solusi tersebut dalam waktu polinomial. Setiap mesin Turing deterministik adalah mesin Turing non determinstik, tetapi mesin Turing deterministik tidak memiliki kemampuan memilih transisi. Oleh karena itu, P NP. Meskipun demikian, NP mengandung beberapa persoalan yang tidak termasuk ke dalam P. 10

Contoh persoalan dalam kelas NP: 1. Travelling Salesperson Decision Problem (TSDP): Menentukan apakah sebuah graf berbobot memiliki tur terpendek yang melalui setiap simpul tepat sekali dan kembali ke simpul awal dengan bobot M? 2. Integer Knapsack Decision Problem: apakah dapat memasukkan objek-objek ke dalam knapsack namun tidak melebihi W tetapi total profitnya paling sedikit sebesar P. 3. Graph-Colouring Decision Problem: apakah terdapat pewarnaan graf yang menggunakan paling banyak m warna sedemikian sehingga dua simpul bertetangga memiliki warna berbeda? 11

Kelas Persoalan Algoritma Prim: O(n 2 ) P NP Halting Problem: O( ) Binary Search: O(log n) Knapsack Problem: O(2 n ) 21 April 2004 CS 200 Spring 2004 12

Contoh Persoalan P Mesin Turing M akan digunakan untuk mengenali bahasa L = {0 n 1 n n 1}. Diberikan string w, apakah w L? Algoritma: 1. Ganti simbol 0 paling kiri dengan simbol X. 2. Gerakkan head ke kanan hingga dijumpai simbol 1. 3. Ganti simbol 1 paling kiri dengan simbol Y 4. Gerakkan head ke kiri hingga dijumpai simbol X 5. Geser head ke kanan (akan diperoleh 0 paling kiri). 6. Kembali ke langkah 1. 13

Contoh: w = 000111 X 0 0 1 1 1 B B... X 0 0 Y 1 1 B B... X 0 0 Y 1 1 B B... X X 0 Y 1 1 B B... 14

X X 0 Y Y 1 B B... X X 0 Y Y 1 B B... X X X Y Y 1 B B... X X X Y Y Y B B... X X X Y Y Y B B... Kesimpulan: string 000111 dikenali oleh M. 15

Analisis kompleksitas: 1. Ganti simbol 0 paling kiri dengan simbol X. O(1) 2. Gerakkan head ke kanan hingga dijumpai simbol 1 O(n) 3. Ganti simbol 1 paling kiri dengan simbol Y O(1) 4. Gerakkan head ke kiri hingga dijumpai simbol X O(n) 5. Geser head ke kanan (akan diperoleh 0 paling kiri). O(1) 6. Kembali ke langkah 1. paling banyak n/2 kali Total kebutuhan waktu: n/2 { O(1) + O(n) + O(1) + On) + O(1) } = n/2 {O(n)} = O(n 2 ) 16

Algoritma Prim Algoritma untuk menentukan pohon merentang minimum (minimum spanning tree). Algoritma polinomial, karena kebutuhan waktunya O(n 2 ). 1 10 2 1 10 2 50 30 4 45 25 20 55 40 5 35 15 3 4 45 25 20 55 5 35 15 3 6 6 (a) Graf G = (V, E) (b) Pohon merentang minimum 17

Algoritma Prim Langkah 1: ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T. Langkah 2: pilih sisi (u, v) yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u, v) tidak membentuk sirkuit di T. Masukkan (u, v) ke dalam T. Langkah 3: ulangi langkah 2 sebanyak n 2 kali. 18

procedure Prim(input G : graf, output T : pohon) { Membentuk pohon merentang minimum T dari graf terhubungberbobot G. Masukan: graf-berbobot terhubung G = (V, E), dengan V = n Keluaran: pohon rentang minimum T = (V, E ) } Deklarasi i, p, q, u, v : integer Algoritma Cari sisi (p,q) dari E yang berbobot terkecil T {(p,q)} for i 1 to n-2 do Pilih sisi (u,v) dari E yang bobotnya terkecil namun bersisian dengan simpul di T T T {(u,v)} endfor Mencari sisi (p, q) dari E berbobot terkecil O(n) T {(p, q)} O(1) Pilih sisi (u, v) dari E berbobot terkecil namun bersisian dengan T O(n) T T {(u, v)} O(1) Jumlah pengulangan loop n 2 kali Total kebutuhan waktu O(n) + O(1) + (n 2) { O(n) + O(1) } = O(n) + O(n 2 ) = O(n 2 ) 19

Contoh: 1 10 2 50 30 4 45 25 20 55 40 5 35 15 3 6 20

Langkah Sisi Bobot Pohon rentang 1 (1, 2) 10 1 2 10 2 (2, 6) 25 1 10 2 25 3 (3, 6) 15 1 6 10 3 25 15 6 4 (4, 6) 20 1 10 2 3 4 25 20 15 6 5 (3, 5) 35 1 10 2 4 45 25 20 55 5 35 15 3 6 21

Pohon merentang minimum yang dihasilkan: 1 10 2 4 45 25 20 55 5 35 15 3 6 Bobot = 10 + 25 + 15 + 20 + 35 = 105 22

Algoritma MST lainnya: Algoritma Kruskal dengan kompleksitas O(m log m), m adalah jumlah sisi di dalam graf. Karena kita berhubungan dengan mesin Turing, maka kita memikirkan persoalan MST sebagai sebuah bahasa. Persolan keputusan Bahasa Jika MST dijadikan persoalan keputusan, maka deskripsinya adalah sbb: Diberikan sebuah graf berbobot G = (V, E) dan nilai W. Apakah G memiliki spanning tree dengan bobot W? 23

Pengkodean MST-decision problem pada mesin Turing: 1. Simpul-simpul diberi nomor 1 sampai m. 2. Setiap integer dikodekan dalam biner. 3. Kode dimulai dengan m dalam biner dan bobot W dalam biner, dipisahkan dengan koma. 4. Jika terdapat sisi dari simpul i dan j dengan bobot w, letakkan (i, j, w) di dalam kode. Integer dikodekan dalam biner. 5. Kode yang dihasilkan merupakan input di pita untuk mesin Turing deterministik M. 24

Contoh: Diberikan graf di bawah ini dan W = 40. Kode untuk MST-decision problem di atas adalah: 100, 101000(1, 10, 1111)(1, 11, 1010)(10, 11, 1100)(10, 100, 10100)(11, 100, 10010) 25