Akun "algoritma downhill simplex" ini dalam versi asli Numerical Recipes sangat jelas dan bermanfaat. Karena itu saya akan mengutip bagian yang relevan dari itu. Inilah latar belakangnya:
Dalam minimalisasi satu dimensi, dimungkinkan untuk mengurung minimum .... Sayang! Tidak ada prosedur analog dalam ruang multidimensi. ... Yang terbaik yang bisa kita lakukan adalah memberikan algoritma perkiraan awal kita; yaitu, vektor- variabel independen sebagai titik pertama untuk mencoba. Algoritme kemudian seharusnya membuat jalannya sendiri menurun melalui kompleksitas topografi dimensi yang tidak terbayangkan sampai bertemu dengan minimum (setidaknya lokal).NN
Metode simpleks menurun harus dimulai tidak hanya dengan satu titik, tetapi dengan poin, mendefinisikan simpleks awal. [Anda dapat menganggap titik-titik ini sebagai titik awal awal bersama dengan] mana adalah vektor satuan dan di mana adalah konstanta yang merupakan tebakan Anda dari skala panjang karakteristik masalah. ...N+1P0
Pi=P0+λei(10.4.1)
eiNλ
Sebagian besar langkah hanya [memindahkan] titik simpleks di mana fungsi terbesar ("titik tertinggi") melalui wajah simpleks berlawanan ke titik yang lebih rendah. ...
Sekarang untuk masalah yang ada, mengakhiri algoritma. Perhatikan umum dari account: penulis memberikan saran intuitif dan berguna untuk mengakhiri setiap optimizer multidimensi dan kemudian menunjukkan khusus bagaimana itu berlaku untuk algoritma tertentu. Paragraf pertama menjawab pertanyaan di depan kita:
Kriteria pengakhiran bisa rumit .... Kami biasanya dapat mengidentifikasi satu "siklus" atau "langkah" dari algoritma multidimensi kami. Maka dimungkinkan untuk mengakhiri ketika jarak vektor bergerak dalam langkah itu fraksional lebih kecil dalam besarnya daripada beberapa toleransi TOL
. Sebagai alternatif, kita dapat mensyaratkan bahwa penurunan nilai fungsi pada langkah terminasi lebih kecil dari toleransi FTOL
. ...
Catat dengan baik bahwa salah satu kriteria di atas mungkin tertipu oleh satu langkah anomali yang, karena satu dan lain alasan, gagal mencapai mana pun. Oleh karena itu, sering kali merupakan ide yang baik untuk memulai kembali rutin minimalisasi multidimensi pada titik di mana ia mengklaim telah menemukan minimum. Untuk memulai ulang ini, Anda harus menginisialisasi ulang jumlah input tambahan. Dalam metode menurun bukit, misalnya, Anda harus menginisialisasi ulang dari simpul simpleks lagi dengan persamaan , dengan menjadi salah satu simpul dari minimum yang diklaim.NN+1(10.4.1)P0
Mulai ulang seharusnya tidak terlalu mahal; Algoritme Anda, setelah semua, konvergen ke titik restart sekali, dan sekarang Anda sudah memulai algoritma.
[Halaman 290-292.]
Kode yang menyertai teks ini dalam Numerical Recipes mengklarifikasi arti "fraksional lebih kecil": perbedaan antara nilai dan (baik nilai argumen atau nilai fungsi) adalah "fraksional lebih kecil" daripada ambang batas saatxyT>0
|x|−|y|f(x,y)=2|x|−|y||x|+|y|<T(1)
dengan .f(x,y)=(|x|+|y|)/2
Sisi kiri kadang-kadang dikenal sebagai "perbedaan absolut relatif." Di beberapa bidang itu dinyatakan sebagai persen, di mana ia disebut "kesalahan relatif persen." Lihat artikel Wikipedia tentang perubahan dan perbedaan relatif untuk lebih banyak opsi dan terminologi.(1)
Referensi
William H. Press et al. , Resep Numerik: Seni Komputasi Ilmiah. Cambridge University Press (1986). Kunjungi http://numerical.recipes/ untuk edisi terbaru.