Algoritme untuk Optimasi [eBook PDF, 621 hlm]
(algorithmsbook.com)- Buku ajar ini membahas prinsip dan keseluruhan algoritme optimasi matematis secara sistematis, mencakup masalah kontinu maupun diskret
- Menjelaskan beragam pendekatan secara bertahap, mulai dari metode berbasis turunan hingga metode stokastik dan evolusioner
- Mencakup struktur matematis yang dibutuhkan untuk aplikasi nyata seperti kendala, dualitas, pemrograman linear, dan pemrograman kuadratik
- Setiap bab menyediakan ringkasan dan soal latihan agar pembelajaran dapat berjalan beriringan dengan praktik
- Didistribusikan dengan lisensi terbuka MIT Press (CC BY-NC-ND)
Kata pengantar dan ikhtisar
- Buku ini adalah buku ajar tentang teori dan implementasi algoritme untuk menyelesaikan masalah optimasi, diterbitkan dalam edisi ke-2
- Penulisnya adalah Mykel J. Kochenderfer dan Tim A. Wheeler
- Diterbitkan oleh MIT Press dan dibuka dengan lisensi Creative Commons nonkomersial tanpa turunan
- Setelah kata pengantar dan ucapan terima kasih, buku ini terdiri dari 13 bab
- Setiap bab disusun dengan konsep inti, ringkasan, dan soal latihan, sehingga mempertahankan struktur yang berfokus pada pembelajaran
Bab 1. Pendahuluan
- Memperkenalkan sejarah, proses, formulasi matematis, dan bidang aplikasi optimasi
- Menjelaskan nilai ekstrem (minima) dan kondisi optimalitas (optimality conditions)
- Mencakup ikhtisar, ringkasan, dan soal latihan untuk keseluruhan bab
Bab 2. Turunan dan gradien
- Menjelaskan definisi dan cara menghitung turunan satu variabel dan multivariabel
- Mencakup teknik diferensiasi numerik (numerical differentiation) dan diferensiasi otomatis (automatic differentiation)
- Membahas gradient regresi dan teknik aproksimasi stokastik (SPSA)
Bab 3. Bracketing
- Menjelaskan konsep unimodalitas (unimodality) dan prosedur menemukan interval awal
- Memuat algoritme berbasis interval seperti pencarian Fibonacci, pencarian golden section, dan pencarian aproksimasi kuadratik
- Mencakup metode Shubert-Piyavskii dan bisection
Bab 4. Penurunan lokal (Local Descent)
- Menjelaskan konsep iterasi arah turun (descent direction iteration) dan ukuran langkah (step factor)
- Mencakup teknik line search dan aproksimasi line search
- Membahas pendekatan trust region dan kondisi terminasi
Bab 5. Metode orde pertama (First-Order Methods)
- Mencakup teknik utama seperti gradient descent, conjugate gradient, momentum, dan Nesterov momentum
- Memuat algoritme optimasi modern seperti AdaGrad, RMSProp, Adadelta, Adam, Hypergradient Descent
- Menyediakan karakteristik dan ringkasan perbandingan untuk tiap metode
Bab 6. Metode orde kedua (Second-Order Methods)
- Menjelaskan Newton’s Method dan Secant Method
- Mencakup algoritme Levenberg-Marquardt dan metode Quasi-Newton
- Ditutup dengan ringkasan dan soal latihan
Bab 7. Metode langsung (Direct Methods)
- Memperkenalkan coordinate search, Powell, Hooke-Jeeves, pattern search, dan metode simplex Nelder-Mead
- Mencakup teknik Divided Rectangles
- Berfokus pada pendekatan optimasi tanpa berbasis turunan
Bab 8. Metode stokastik (Stochastic Methods)
- Membahas pendekatan stokastik seperti noisy descent, mesh adaptive search, dan optimasi tanpa turunan
- Mencakup simulated annealing, cross-entropy, natural evolution strategies, dan covariance matrix adaptation (CMA)
- Menekankan efisiensi pencarian berbasis probabilitas
Bab 9. Metode berbasis populasi (Population Methods)
- Menjelaskan teknik pencarian populasi seperti algoritme genetika, differential evolution, dan particle swarm optimization (PSO)
- Mencakup Firefly, Cuckoo Search, dan metode hibrida
- Menyelesaikan masalah melalui struktur iterasi populasi (population iteration)
Bab 10. Kendala (Constraints)
- Menjelaskan konsep dasar optimasi berkendala (constrained optimization) dan jenis-jenis kendala
- Mencakup metode pengali Lagrange, variabel slack, penalti, dan interior point
- Membahas transformasi penghilangan kendala (transformations) dan method of multipliers
Bab 11. Dualitas (Duality)
- Menjelaskan masalah dual (dual problem) dan metode primal-dual
- Mencakup dual ascent dan ADMM (Alternating Direction Method of Multipliers)
- Membahas aplikasi optimasi terdistribusi (distributed methods)
Bab 12. Pemrograman linear (Linear Programming)
- Menjelaskan formulasi masalah, Simplex Algorithm, dan dual certificates
- Menyajikan secara sistematis struktur optimasi di bawah kendala linear
Bab 13. Pemrograman kuadratik (Quadratic Programming)
- Formulasi masalah yang mencakup fungsi objektif kuadratik dan kendala linear
- Membahas masalah least squares dan kendala pertidaksamaan linear
- Mencakup least distance programming
Lampiran dan informasi lain
- Ringkasan dan soal latihan disertakan di akhir setiap bab
- Diterbitkan oleh MIT Press sebagai edisi 2025, dengan izin berbagi nonkomersial (CC BY-NC-ND)
- Disusun dengan LaTeX, untuk pertanyaan diarahkan ke bugs@algorithmsbook.com
4 komentar
Sekarang tidak bisa diakses ya T_T
https://algorithmsbook.com/optimization/#download
Sepertinya tautannya sekarang sedikit berubah; di sini Anda bisa melihat atau mengunduh PDF-nya.
Terima kasih!!
Opini Hacker News
Senang melihat topik optimization muncul di halaman utama HN
Saya ingin memperkenalkan situs visualisasi LP yang saya buat. Di sana kita bisa melihat secara visual bagaimana algoritme Linear Programming bereaksi saat kendala atau fungsi objektif berubah
Jika masuk ke halaman demo, poligon akan digambar otomatis, dan Anda bisa mengamati iteration algoritme sambil menyeret titik sudut atau garis kendala
Memang belum terlalu matang, tetapi bagi orang yang suka pembelajaran visual, sepertinya ini bisa cukup menyenangkan untuk dipakai. Masukan sangat diterima
Saya ingin membagikan materi terkait metaheuristics
Di Timefold, tempat saya bekerja, kami memakai algoritme seperti Tabu Search dan Simulated Annealing yang dibahas di buku-buku ini untuk cepat menemukan solusi optimal hampiran
Diagram algoritme local search di dokumentasi Timefold juga layak dilihat
Ini adalah buku ajar optimization berlisensi CC setebal 521 halaman, dan kelihatannya sangat bagus
Di bagian awal dibahas algoritme gradient-based modern berbasis diferensiasi otomatis, misalnya Adam, lalu di bagian akhir (Bab 12) dibahas optimisasi linear seperti simplex
Ada banyak latihan juga, dan ini persis jenis buku yang sudah lama saya tunggu
Saya merasa algoritme optimisasi bukan sekadar alat untuk menyelesaikan masalah, tetapi upaya menuju “pemecah masalah umum”. Alih-alih program langsung menemukan jawaban, kita mendefinisikan dulu ‘bentuk seperti apa jawaban itu’, lalu menerapkan optimisasi di atasnya
AI saat ini juga dibangun di atas pendekatan seperti ini
Buku ini karya Kochenderfer, bersama buku sebelumnya Decision Making Under Uncertainty(PDF), termasuk salah satu buku teknis favorit saya
Penjelasannya jelas, visualisasinya sangat bagus, dan membahas berbagai cara berpikir tentang optimisasi di luar gradient descent
Kodenya memang ditulis dalam Julia, tetapi tidak sulit dipindahkan ke bahasa lain. Jangan terpaku pada bahasanya; fokuslah pada konsepnya
Optimisasi bukan sekadar teknik, melainkan cara berpikir untuk memecahkan masalah sulit itu sendiri
Buku ini termasuk sumber yang langka karena membahas CMA-ES, surrogate model, Gaussian process dan lain-lain dalam satu volume
Kalau buku seperti ini sudah ada saat saya masih riset S1, pasti akan sangat membantu. Dulu materi terkait tersebar di banyak paper dan buku
Saat menempuh doktoral, saya membaca buku ini dengan saksama berkali-kali. Saya meneliti jaringan saraf dan analisis numerik, dan menurut saya kedalaman serta cakupannya seimbang dengan baik
Sampai sekarang pun saya masih sering memakainya sebagai referensi
Saya terkejut melihat buku ini memasukkan metaheuristik seperti Firefly dan Cuckoo Search
Algoritme-algoritme ini kurang dipercaya di kalangan akademik, dan juga dikritik dalam paper ITOR
Ada komunitas kecil yang hanya meneliti pendekatan seperti ini lalu saling mengutip hingga membentuk gelembung. Di konferensi pun ini kadang menjadi bahan perdebatan
Bab tentang multiobjective optimization sangat bagus
Saya penasaran apakah ada buku atau materi lain yang fokus pada topik ini
Saya ingin tahu bagaimana perbandingan buku ini dengan Numerical Optimization karya Nocedal & Wright