Strategi Algoritma Pertemuan ke-1: Pengantar …...•Persoalan: Diberikan sebuah papan catur yang berukuran •N × N dan N buah bidak ratu. •Bagaimana menempatkan N buah ratu (Q)

Post on 08-Jan-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Strategi AlgoritmaPertemuan ke-1: Pengantar Perkuliahan

Husni

Lab. Sistem Terdistribusi

JTIF UTM

Dosen Pengampu

• Husni, S.Kom., MT.• Graduated from University of Gadjah Mada (2001) and Bandung Institute of

Technology (2010)

• Research area

• Web Information Retrieval (Text Mining)

• Data Science (Analytics)

• Internetworking Technology: Web Services

• Industry experience

• Internetworking

• Software Development

• IT Blueprint

2

Outline

• Pengantar Strategi Algoritma

• Aturan Perkuliahan

Apakah Strategi Algoritma itu?

• Strategi algoritma (algorithm strategies) adalah:• pendekatan umum

• untuk memecahkan persoalan secara algoritmis

• yang dapat diterapkan pada bermacam-macam persoalan

• dari berbagai bidang komputasi [Levitin, 2003]

• Nama lain: algorithm design technique

Persoalan (Problem)

• Persoalan: pertanyaan atau tugas yang kita cari jawabannya.

• Contoh-contoh persoalan:

1. [Persoalan pengurutan] Diberikan senarai (list) S yang terdiri dari n buah integer. Bagaimana mengurutkan n buah integer tersebutsehingga terurut secara menaik?

Jawaban: barisan nilai di dalam senarai yang terurut menaik.

2. [Persoalan pencarian] Tentukan apakah suatu bilangan x terdapat di dalam sebuah senarai S yang berisi n buah bilangan bulat!

Jawaban: “ya” jika x ditemukan di dalam senarai, atau “tidak” jika x tidak terdapat di dalam senarai.

• Instansiasi persoalan: parameter nilai yang diasosiasikan di dalampersoalan.

• Jawaban terhadap instansiasi persoalan disebut solusi

• Contoh: Selesaikan persoalan pengurutan untuk

S = [15, 4, 8, 11, 2, 10, 19] n = 7

Solusi: S = [2, 4, 8, 10, 11, 15, 19].

Beberapa Contoh Persoalan Klasik

Persoalan: Diberikan n buah kota serta diketahui jarak antara setiap kota satu sama lain. Temukan perjalanan (tour) terpendek yang dimulaidari sebuah kota dan melalui setiap kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan.

1. Travelling Salesperson Problem (TSP)

• Persoalan: Diberikan n buah objek dan sebuah knapsack (karung, tas, buntilan, dsb) dengan kapasitas bobot K. Setiap objekmemiliki propert bobot (weigth) wi dan keuntungan (profit) pi.

• Bagaimana memilih objek-objek yang dimasukkan ke dalam knapsack sedemikiansehingga tidak melebihi kapasitas knapsack namun memberikan keuntungan maksimal?

2. Integer Knapsack Problem

• Misalkan terdapat n orang dan n buah pekerjaan (job).

• Setiap orang akan di-assign dengansebuah pekerjaan.

• Penugasan orang ke-i denganpekerjaan ke-j membutuhkan biayasebesar c(i, j).

• Bagaimana melakukan penugasansehingga total biaya penugasanadalah seminimal mungkin?

3. Persoalan penugasan (assignment problem)

• Contoh instansiasi persoalan:

• Persoalan: Diberikan sebuahpapan catur yang berukuran

• N × N dan N buah bidak ratu.

• Bagaimana menempatkan N buah ratu (Q) itu pada petak-petak papan catur sedemikiansehingga tidak ada dua ratu ataulebih yang terletak pada satubaris yang sama, atau pada satu kolom yang sama, atau pada satu diagonal yang sama ?

4. Persoalan N-Ratu (The N-Queens Problem)

• Persoalan: Diberikan n buah titik, tentukan dua buah titik yang terdekat satu sama lain.

5. Mencari Pasangan Titik Terdekat (Closest Pair)

• Persoalan: Diberikan sebuah 15-puzzle yang memuat 15 buah ubin(tile) yang diberi nomor 1 sampai 15, dan satu buah slot kosong yang digunakan untuk menggerakkan ubin ke atas, ke bawah, ke kiri, dan ke kanan. Misalkan diberikan keadaan awal dan keadaaan akhirsusunan ubin. Kita ingin mentransformasikan susunan awal menjadi susunan akhir.

6. Permainan 15-Puzzle

(a) Susunan awal (b) Susunan akhir

Persoalan: Diberikan sebuah labirindengan satu atau lebih pintu masuk dan satu atau lebih pintu keluar. Temukanjalan yang harus dilalui sehinggaseseorang dapat keluar dengan selamatdari labirin tersebut (tidak tersesat di dalamnya).

7. Menemukan jalan keluar dari labirin (Maze Problem)

• Persoalan: Diberikan sebuah graf G dengan n buah simpul dan disediakan m buah warna. Warnailah seluruh simpul graf G sedemikian sehingga tidak ada dua buah simpul bertetangga yang mempunyai warna sama (Perhatikan juga bahwa tidak seluruh warnaharus dipakai)

8. Pewarnaan Graf (Graph Colouring)

• Persoalan: Diketahui n buah kotadan diberikan jarak antara dua buah kota yang bertetangga. Tentukan lintasan terpendek darisebuah kota asal ke sebuah kotatujuan.

9. Lintasan terpendek (shortest path)

Algoritma

• Untuk persoalan dengan instansiasi yang besar, solusinya menjadilebih sulit ditentukan.

• Perlu sebuah prosedur umum yang berisi langkah-langkahpenyelesaian persoalan algoritma

• Algoritma: urutan langkah-langkah untuk memecahkan suatupersoalan, dengan memproses masukan menjadi keluaran.

Analisis Algoritma

• Tujuan analis: mengukur kinerja (performance) algoritma dari segi kemangkusannya (efficient)

• Alat ukur kemangkusan algoritma:1. Kompleksitas waktu, T(n)

2. Kompleksitas ruang, S(n)

• n = ukuran masukan yang diproses oleh algoritma

• T(n) : jumlah tahap komputasi yang dilakukan untuk menjalankansebuah algoritma sebagai fungsi dari ukuran masukan n.

• S(n): ruang memori yang dibutuhkan algoritma sebagai fungsi dariukuran masukan n .

• Tiga notasi kebutuhan waktu asimptotik:1. O(g(n)): batas lebih atas kebutuhan waktu algoritma

2. W(g(n)): batas lebih bawah kebutuhan waktu algoritma

3. Q(g(n)) : jika dan hanya jika O(g(n)) = W(g(n))

Strategi Algoritma

1. Algoritma Brute-Force

2. Algoritma Greedy

3. Algoritma Divide and Conquer

4. Algoritma Decrease and Conquer

5. Algoritma Bactracking

6. Algoritma Branch and Bound

7. Dynamic programming

Mengapa Perlu Mempelajari Strategi Algoritma?

• Ada dua alasan (Levitin, 2003):1. Memberikan panduan (guidance) untuk merancang algoritma bagi

persoalan baru.

2. Dapat mengklasifikasikan algoritma berdasarkan gagasan perancangan yang mendasarinya.

Klasifikasi Strategi Algoritma

1. Strategi solusi langsung (direct solution strategies)• Algoritma Brute Force

• Algoritma Greedy

2. Strategi berbasis pencarian pada ruang status (state-space base strategies)• Algoritma Backtracking

• Algoritma Branch and Bound

3. Strategi solusi atas-bawah (top-down solution strategies)• Algoritma Divide and Conquer

• Algoritma Decrease and Conquer

4. Strategi solusi bawah-atas (bottom-up solution strategies)• Dynamic Programming.

• Catatan: klasifikasi ini tidak kaku, dapat berbeda bergantungpendekatan yang digunakan.

Klasifikasi Strategi Algoritma

Tujuan Umum

• Mahasiswa memahami beberapa strategi yang digunakan dalammemecahkan persoalan secara mangkus sesuai dengan karakteristikpersoalan tersebut

Tujuan Khusus

• Mahasiswa mampu: 1. Memilih strategi yang tepat untuk menyelesaikan suatu persoalan.

2. Membuat program untuk menyelesaikan persoalan dengan strategi yang tepat.

Prasyarat Kuliah

• Algoritma Pemrograman

• Struktur Data

• Matematika Diskrit

LingkupBahasan

1. Pengantar Strategi Algoritma

2. Algoritma Brute Force

3. Exhaustive Search + Heuristic

4. Algoritma Greedy

5. Algoritma Divide and Conquer

6. Algoritma Decrease and Conquer

7. DFS dan BFS

8. Algoritma Backtracking

9. Branch and Bound

10. Algoritma A* , Best First Search, dan UCS

11. Pattern Matching

12. Dynamic Programming

13. Teori P, NP, dan NP-C

ReferensiAnany Levitin, Introduction to The Design & Analysis of Algorithms, 3rd Edition, Pearson Education Limited 2012

1. Introduction

2. Fundamentals of the Analysis of Algorithm

Efficiency

3. Brute Force and Exhaustive Search

4. Decrease-and-Conquer

5. Divide-and-Conquer

6. Transform-and-Conquer

7. Space and Time Trade-Offs

8. Dynamic Programming

9. Greedy Technique

10. Iterative Improvement

11. Limitations of Algorithm Power

12. Coping with the Limitations of Algorithm Power

Referensi

1. Introduction to complexity

2. Divide-and-conquer

3. Greedy algorithms

4. Dynamic programming

5. Amortized analysis

6. NP-completeness

7. Exercises on NP-completeness

8. Beyond NP-completeness

9. Exercises going beyond NP-completeness

10. Reasoning to assess a problem complexity

11. Chains-on-chains partitioning

12. Replica placement in tree networks

13. Packet routing

14. Matrix product, or tiling the unit Square

15. Online scheduling

Anne Benoit, Yves Robert, Frederic Vivien, A Guide To Algorithm Design Paradigms, Methods, and Complexity Analysis, CRC Press, 2014

Referensi

1. Preliminaries

2. Greedy Algorithms

3. Divide and Conquer

4. Dynamic Programming

5. Online Algorithms

6. Randomized Algorithms

7. Algorithms in Linear Algebra

8. Computational Foundations

9. Mathematical Foundations

Michael Soltys, An Introduction To The Analysis Of Algorithms, 3rd Edition, World Scientific Publishing, 2018

http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2018-2019/stima18-19.htm

Referensi

Apa yang Akan Didiskusikan?

Pekan Tanggal Topik

1. 21-08-2019 Pengantar Strategi Algoritma, Aturan Perkuliahan

2. 28-08-2019 Algoritma Brute ForceExhaustive Search + Heuristic

3. 04-09-2019 Algoritma Greedy

4. 11-09-2019 Algoritma Divide and Conquer

5. 18-09-2019 Algoritma Divide and Conquer Algoritma Decrease and Conquer

6. 25-09-2019 Algoritma Decrease and Conquer, DFS dan BFS

7. 02-10-2019 DFS dan BFS, Review Pra-UTS

8. 09-10-2019 Ujian Tengah Semester (UTS)

Apa yang Akan Didiskusikan?

Pekan Tanggal Topik

9. 16-10-2019 Algoritma Backtracking

10. 23-10-2019 Branch and Bound

11. 30-10-2019 Branch and Bound Algoritma A* , Best First Search, dan UCS

12. 06-11-2019 Pattern Matching

13. 13-11-2019 Dynamic Programming

14. 20-11-2019 Teori P, NP, dan NP-C

15. 27-11-2019 Review Pra-UAS

16. 11-12-2019 Ujian Akhir Semester (UAS)

Penilaian

• Ujian Tengah Semester (UTS) : 25%• Materi tertutup, tertulis, soal dari mahasiswa

• Ujian Akhir Semeter (UAS) : 30%• Materi terbuka, tertulis

• Proyek Pemrograman : 45%• Proposal dua halaman (25%)

• Presentasi 30 menit (30%)

• Laporan (makalah) 5 halaman (45%)

Pertanyaan?

Thank You

top related