Kompleksitas dan Analisis Algoritma
Analisis algoritma mengukur bagaimana waktu berjalan dan memori suatu algoritma tumbuh seiring dengan ukuran masukan, menyediakan kosakata asimtotik dan alat yang digunakan untuk membandingkan algoritma dan untuk mengidentifikasi masalah yang secara inheren sulit.
Definition
Analisis algoritma adalah studi tentang sumber daya komputasi — terutama waktu dan ruang — yang dikonsumsi oleh suatu algoritma sebagai fungsi dari ukuran masukannya, bersama dengan teknik yang digunakan untuk menurunkan, menyatakan, dan membandingkan batas sumber daya ini.
Scope
Area ini mencakup pengukuran dan perbandingan penggunaan sumber daya algoritmik: notasi asimtotik (big-O, big-Omega, big-Theta), solusi rekurensi yang muncul dari algoritma rekursif, analisis amortisasi urutan operasi, dan dasar-dasar kelas kompleksitas komputasi serta NP-kelengkapan sebagaimana diterapkan pada desain algoritma. Ini membahas biaya kasus terburuk, kasus rata-rata, dan amortisasi, serta perbedaan antara masalah yang dapat dipecahkan (tractable) dan tidak dapat dipecahkan (intractable). Teori komputasi yang lebih luas (komputabilitas, kelas kompleksitas formal) termasuk dalam subbidang terpisah; di sini fokusnya adalah menganalisis algoritma konkret.
Sub-topics
Core questions
- Bagaimana penggunaan sumber daya algoritma dinyatakan secara independen dari detail mesin dan implementasi?
- Apa yang masing-masing dijelaskan oleh analisis kasus terburuk, kasus rata-rata, dan amortisasi?
- Bagaimana rekurensi yang dihasilkan oleh algoritma rekursif diselesaikan untuk batas asimtotik?
- Bagaimana kita dapat menetapkan batas bawah yang menunjukkan bahwa tidak ada algoritma yang dapat melakukan lebih baik?
- Apa artinya suatu masalah menjadi NP-lengkap, dan mengapa itu penting untuk desain?
Key concepts
- big-O, big-Omega, big-Theta
- analisis kasus terburuk dan kasus rata-rata
- relasi rekurensi
- teorema master
- analisis amortisasi
- batas bawah
- waktu polinomial
- NP-kelengkapan
Key theories
- Notasi asimtotik
- Big-O, big-Omega, dan big-Theta menggambarkan laju pertumbuhan penggunaan sumber daya seiring peningkatan ukuran masukan, mengabstraksi konstanta dan suku berderajat lebih rendah untuk memungkinkan perbandingan algoritma yang independen dari mesin.
- Keterpecahan (Tractability) dan NP-kelengkapan
- Masalah yang dapat diselesaikan dalam waktu polinomial dianggap dapat dipecahkan; masalah NP-lengkap adalah masalah yang semua masalah dalam NP dapat direduksi kepadanya, dan menemukan algoritma polinomial untuk salah satunya akan menyelesaikan semuanya, sebuah pertanyaan (P versus NP) yang masih terbuka.
Clinical relevance
Analisis algoritma memandu setiap keputusan rekayasa tentang algoritma atau struktur data mana yang akan digunakan, memprediksi bagaimana sistem berskala seiring pertumbuhan data. Mengenali bahwa suatu masalah adalah NP-hard memberi tahu praktisi untuk mencari metode aproksimasi, heuristik, atau kasus khusus daripada algoritma polinomial yang tepat, membentuk pekerjaan di seluruh optimasi, penjadwalan, dan komputasi skala besar.
History
Notasi asimtotik diimpor ke ilmu komputer dari teori bilangan analitik dan dipopulerkan oleh Donald Knuth pada tahun 1960-an dan 1970-an. Teori NP-kelengkapan didirikan oleh Stephen Cook (1971) dan diperluas oleh Richard Karp (1972), membentuk kembali desain algoritma di sekitar batas antara masalah yang dapat dipecahkan dan tidak dapat dipecahkan.
Debates
- P versus NP
- Apakah setiap masalah yang solusinya dapat diverifikasi dengan cepat juga dapat diselesaikan dengan cepat (P = NP) adalah pertanyaan terbuka sentral dalam ilmu komputer teoretis; secara luas diduga bahwa P tidak sama dengan NP, tetapi belum ada bukti yang ada.
Key figures
- Donald Knuth
- Stephen Cook
- Richard Karp
- Robert Tarjan
Related topics
Seminal works
- cormen2009
- knuth1976bigo
- kleinberg2006
Frequently asked questions
- Apa perbedaan antara analisis kasus terburuk dan kasus rata-rata?
- Analisis kasus terburuk membatasi penggunaan sumber daya pada masukan yang paling tidak menguntungkan dari setiap ukuran, memberikan jaminan. Analisis kasus rata-rata memperkirakan penggunaan sumber daya yang diharapkan atas distribusi masukan, yang dapat lebih representatif dari kinerja tipikal tetapi bergantung pada asumsi tentang distribusi masukan.
- Jika suatu masalah adalah NP-lengkap, apakah tidak ada harapan untuk menyelesaikannya?
- Tidak. NP-kelengkapan berarti tidak ada algoritma efisien yang diketahui untuk kasus terburuk, tetapi instans seringkali dapat diselesaikan dengan algoritma aproksimasi, heuristik, algoritma eksponensial yang cukup cepat dalam praktiknya, atau dengan memanfaatkan struktur khusus. Ini menandakan perubahan strategi, bukan kemustahilan.