- Matematiksel optimizasyonun ilkelerini ve algoritmalarını genel hatlarıyla sistematik biçimde ele alan, hem sürekli hem ayrık problemleri kapsayan bir ders kitabı
- Türev tabanlı tekniklerden olasılıksal ve evrimsel yöntemlere kadar çeşitli yaklaşımları aşamalı olarak açıklar
- Kısıtlar, düalite, doğrusal ve karesel programlama gibi gerçek uygulamalar için gerekli matematiksel yapıları içerir
- Her bölümde özet ve alıştırmalar sunarak öğrenme ile pratiğin birlikte ilerlemesini sağlar
- MIT Press'in açık lisansı (CC BY-NC-ND) ile dağıtılıyor
Önsöz ve genel bakış
- Bu kitap, optimizasyon problemlerini çözmeye yönelik algoritmaların teori ve uygulamasını ele alan, 2. baskı olarak yayımlanmış bir ders kitabıdır
- Yazarları Mykel J. Kochenderfer ve Tim A. Wheeler
- MIT Press tarafından yayımlanmış, Creative Commons ticari olmayan-değişiklik yapılamaz lisansı ile açık olarak sunulmuştur
- Önsöz ve teşekkürlerin ardından 13 bölümden oluşur
- Her bölüm temel kavramlar, özet ve alıştırmalar ile öğrenme odaklı bir yapıyı korur
1. Bölüm: Giriş
- Optimizasyonun tarihini, sürecini, matematiksel formülasyonunu ve uygulama alanlarını tanıtır
- Ekstremumlar (minima) ve optimalite koşulları (optimality conditions) açıklanır
- Kitabın genel özeti ve alıştırmaları da yer alır
2. Bölüm: Türevler ve gradyanlar
- Tek değişkenli ve çok değişkenli türevlerin tanımı ve hesaplanma yöntemleri açıklanır
- Sayısal türevleme (numerical differentiation) ve otomatik türevleme (automatic differentiation) teknikleri yer alır
- Regresyon gradyanı ve olasılıksal yaklaşım teknikleri (SPSA) ele alınır
3. Bölüm: Aralık içine alma (Bracketing)
- Tek modluluk (unimodality) kavramı ve başlangıç aralığı bulma prosedürü açıklanır
- Fibonacci araması, altın oran araması, karesel yaklaşım araması gibi aralık tabanlı algoritmalar yer alır
- Shubert-Piyavskii ve ikiye bölme (bisection) yöntemleri de dahildir
4. Bölüm: Yerel iniş (Local Descent)
- İniş yönü yinelemesi (descent direction iteration) ve adım büyüklüğü (step factor) kavramları açıklanır
- Doğru araması (line search) ve yaklaşık doğru araması teknikleri yer alır
- Güven bölgesi (trust region) yaklaşımı ve sonlandırma koşulları ele alınır
5. Bölüm: Birinci dereceden yöntemler (First-Order Methods)
- Gradyan inişi, eşlenik gradyan, momentum, Nesterov momentum gibi temel teknikleri içerir
- AdaGrad, RMSProp, Adadelta, Adam, Hypergradient Descent gibi modern optimizasyon algoritmalarına yer verir
- Her yöntemin özellikleri ve karşılaştırmalı özeti sunulur
6. Bölüm: İkinci dereceden yöntemler (Second-Order Methods)
- Newton yöntemi (Newton’s Method) ve sekant yöntemi (Secant Method) açıklanır
- Levenberg-Marquardt algoritması ve yarı-Newton (Quasi-Newton) yöntemleri içerir
- Özet ve alıştırmalarla tamamlanır
7. Bölüm: Doğrudan yöntemler (Direct Methods)
- Koordinat araması, Powell, Hooke-Jeeves, örüntü araması, Nelder-Mead simpleks yöntemi gibi yaklaşımlar tanıtılır
- Bölünmüş Dikdörtgenler (Divided Rectangles) tekniği de yer alır
- Ağırlıkla türev gerektirmeyen optimizasyon yaklaşımlarına odaklanır
8. Bölüm: Olasılıksal yöntemler (Stochastic Methods)
- Gürültülü iniş, ağ uyarlamalı arama, türevsiz optimizasyon gibi olasılıksal yaklaşımları ele alır
- Simulated annealing, çapraz entropi, doğal evrim stratejileri, kovaryans matrisi uyarlaması (CMA) içerir
- Olasılık tabanlı aramanın verimliliğini vurgular
9. Bölüm: Popülasyon tabanlı yöntemler (Population Methods)
- Genetik algoritmalar, diferansiyel evrim, parçacık sürüsü optimizasyonu (PSO) gibi toplu arama tekniklerini açıklar
- Firefly, Cuckoo Search, hibrit yöntemler de yer alır
- Problemleri popülasyon yinelemesi (population iteration) yapısıyla çözer
10. Bölüm: Kısıtlar (Constraints)
- Kısıtlı optimizasyonun (constrained optimization) temel kavramlarını ve kısıt türlerini açıklar
- Lagrange çarpanları, gevşek değişkenler, ceza ve iç nokta (interior point) yöntemleri yer alır
- Kısıt kaldırma dönüşümleri (transformations) ve çarpanlar yöntemi (method of multipliers) ele alınır
11. Bölüm: Düalite (Duality)
- Dual problem ve asal-dual (primal-dual) yöntemler açıklanır
- Dual ascent ve ADMM (Alternating Direction Method of Multipliers) içerir
- Dağıtık optimizasyon (distributed methods) uygulamaları ele alınır
12. Bölüm: Doğrusal programlama (Linear Programming)
- Problem formülasyonu, Simplex algoritması (Simplex Algorithm) ve dual sertifikalar (dual certificates) açıklanır
- Doğrusal kısıtlar altında optimizasyonun yapısını sistematik biçimde sunar
13. Bölüm: Karesel programlama (Quadratic Programming)
- Karesel amaç fonksiyonu ve doğrusal kısıtları içeren problem formülasyonu
- En küçük kareler (least squares) problemleri ve doğrusal eşitsizlik kısıtları ele alınır
- En kısa mesafe programlama (least distance programming) içerir
Ekler ve diğer bilgiler
- Her bölümün sonunda özet ve alıştırmalar bulunur
- MIT Press tarafından 2025 baskısı olarak yayımlanmış, ticari olmayan paylaşıma izin veren (CC BY-NC-ND) lisansla sunulmuştur
- LaTeX tabanlı dizgi kullanılmıştır; iletişim için bugs@algorithmsbook.com adresi verilmiştir
4 yorum
Şu anda erişilemiyor gibi görünüyor :(
https://algorithmsbook.com/optimization/#download
Görünüşe göre bağlantı biraz değişmiş; PDF’yi burada görüntüleyebilir veya indirebilirsiniz.
Teşekkürler!!
Hacker News görüşü
HN ana sayfasında optimizasyon (optimization) konusunu görmek sevindirici
Benim yaptığım LP görselleştirme sitesini paylaşmak isterim. Doğrusal programlama (Linear Programming) algoritmalarının kısıtlar veya amaç fonksiyonu değiştiğinde nasıl tepki verdiğini görsel olarak gösteriyor
Demo sayfasına girince çokgen otomatik çiziliyor; köşeleri veya kısıt doğrularını sürükleyerek algoritmanın iterasyonlarını gözlemleyebiliyorsunuz
Henüz çok olgun değil ama görsel öğrenmeyi sevenler için keyifli olabilir. Geri bildirimlere açığım
Metaheuristics (metaheuristics) ile ilgili bazı kaynaklar paylaşmak isterim
Çalıştığım yer olan Timefold'da bu kitaplarda geçen Tabu Search ve Simulated Annealing gibi algoritmalarla yaklaşık en iyi çözümü hızlıca buluyoruz
Timefold dokümanlarındaki local search algoritması diyagramı da bakmaya değer
521 sayfalık, CC lisanslı bir optimizasyon ders kitabı ve gerçekten çok iyi görünüyor
İlk kısımlarda otomatik türevleme tabanlı modern gradient-based algoritmaları (ör. Adam) ele alıyor, sonlarda ise (12. bölüm) doğrusal optimizasyona (simplex vb.) geçiyor
Bolca alıştırma da var; uzun zamandır beklediğim tam da böyle bir kitaptı
Bence optimizasyon algoritmaları sadece problem çözme aracı değil, aynı zamanda bir “genel problem çözücü”ye yaklaşma denemesi. Programın cevabı doğrudan bulması yerine, ‘cevabın hangi biçimde olması gerektiğini’ tanımlayıp bunun üzerine optimizasyon uyguluyorsunuz
Günümüz yapay zekası da bu yaklaşım üzerine kurulu
Kochenderfer'in bu kitabı ve önceki eseri Decision Making Under Uncertainty (PDF) en sevdiğim teknik kitaplar arasında
Açıklamalar net, görselleştirmeler çok iyi ve gradient descent dışındaki farklı optimizasyon düşünme biçimlerini de kapsıyor
Kod Julia ile yazılmış ama başka dillere taşımak zor değil. Dile takılmayıp kavramlara odaklanmak gerek
Optimizasyon sadece bir teknik değil, zor problemleri çözme biçiminin kendisi
Bu kitap CMA-ES, surrogate model, Gaussian process gibi konuları tek ciltte ele alan nadir kaynaklardan biri
Lisans araştırma dönemimde böyle bir kitap olsaydı gerçekten çok yardımcı olurdu. Eskiden bu konular çeşitli makale ve kitaplara dağılmış durumdaydı
Doktora sırasında bu kitabı birkaç kez baştan sona okudum. Sinir ağları ve sayısal analiz çalışıyordum; derinlik ve kapsam dengesi çok iyi
Hâlâ sık sık başvuru kaynağı olarak kullanıyorum
Kitapta Firefly, Cuckoo Search gibi metaheuristics yöntemlerinin yer almasına şaşırdım
Bu algoritmalar akademide pek güven görmüyor ve ITOR makalesinde de eleştiriliyor
Yalnızca bu tür yöntemleri çalışan küçük bir topluluk birbirini alıntılayarak bir balon oluşturuyor. Konferanslarda da zaman zaman tartışma çıkıyor
Çok amaçlı optimizasyon (multiobjective optimization) bölümü harikaydı
Bu konuya odaklanan başka kitaplar veya kaynaklar var mı merak ediyorum
Bu kitabı Nocedal & Wright'ın Numerical Optimization kitabıyla karşılaştırabilecek biri var mı