Makna metode heuristik (meta)

10
  1. Untuk optimasi, dari Wikipedia :

    Dalam ilmu komputer, metaheuristik menunjuk metode komputasi yang mengoptimalkan masalah dengan secara iteratif mencoba meningkatkan solusi kandidat terkait dengan ukuran kualitas yang diberikan. Metaheuristik membuat sedikit atau tidak ada asumsi tentang masalah yang sedang dioptimalkan dan dapat mencari ruang solusi kandidat yang sangat besar. Namun, metaheuristik tidak menjamin solusi optimal yang pernah ditemukan. Banyak metaheuristik menerapkan beberapa bentuk optimasi stokastik.

    Istilah lain yang memiliki arti yang mirip dengan metaheuristik, adalah: bebas turunan, pencarian langsung, kotak hitam, atau memang hanya pengoptimal heuristik. Beberapa buku dan makalah survei telah diterbitkan tentang masalah ini.

    • Saya bertanya-tanya bagaimana cara mengetahui apakah metode optimasi metaheuristik atau tidak? Sebagai contoh,

      (1) Apakah metode simpleks untuk metaheuristik pemrograman linier?

      (2) Apakah mayoritas metode pemrograman nonlinier seperti gradient descent, metode pengali Lagrangian, metode penalti, metode titik Interior (metode penghalang), metaheuristik?

      (3) Apakah semua metode bebas gradien, seperti metode Nelder-Mead atau metode downhill simplex, metaheuristik?

    • Apa sajakah metode pengoptimalan yang tidak metaheuristik?

  2. Lebih umum (melampaui optimasi) untuk teknik pemecahan masalah, dari Wikipedia :

    Heuristik mengacu pada teknik berbasis pengalaman untuk pemecahan masalah, pembelajaran, dan penemuan . Di mana pencarian yang lengkap tidak praktis, metode heuristik digunakan untuk mempercepat proses menemukan solusi yang memuaskan. Contoh metode ini termasuk menggunakan aturan praktis, tebakan yang terpelajar, penilaian intuitif, atau akal sehat.

    Dalam istilah yang lebih tepat, heuristik adalah strategi menggunakan informasi yang mudah diakses, meskipun berlaku longgar, untuk mengendalikan penyelesaian masalah pada manusia dan mesin.

    Saya bertanya-tanya bagaimana cara memahami arti "heuristik"?

    • bagaimana saya bisa tahu apakah teknik "pemecahan masalah, pembelajaran, dan penemuan" itu heuristik atau tidak?

    • Apa sajakah teknik "pemecahan masalah, pembelajaran, dan penemuan" yang tidak heuristik?

Terima kasih dan salam!

Tim
sumber

Jawaban:

7

Heuristik adalah sesuatu yang bekerja dalam banyak kasus dalam praktiknya, meskipun tidak ada argumen terperinci mengapa itu harus bekerja dengan baik.

Metaheuristik bukanlah algoritma tetapi skema heuristik umum atau ide yang dapat digunakan di dalam algoritma tertentu.

Sebagai contoh, algoritma simpleks untuk pemrograman linier bukanlah heuristik atau metaheuristik, karena memiliki teori konvergensi yang mapan. Sqame berlaku untuk pemrograman quadtatic berurutan atau metode titik interior. (Metode titik interior adalah skema umum, tetapi tidak heuristik dan karenanya bukan metaheuristik, karena ada teori yang cukup kuat yang terkait dengannya.)

Algoritma Nelder-Mead = downhill simplex untuk meminimalkan fungsi adalah heuristik (sebenarnya mungkin gagal pada masalah yang cukup sederhana dalam dimensi yang lebih tinggi), dan pencarian tabu adalah metaheuristik (karena cukup banyak algoritma yang beragam dapat ditulis yang menggunakan pencarian tabu, tetapi sebaliknya kualitasnya sangat berbeda.

Arnold Neumaier
sumber
Terima kasih! (1) Jadi untuk mengetahui apakah suatu metode bersifat metaheuristik, apakah untuk melihat apakah suatu teori berkenaan dengan kapan metode tersebut menyatu dengan pengoptimal yang benar? Jika suatu metode belum memiliki teori seperti itu, apakah itu meatheuristic? Jika suatu hari ada teori untuk itu, apakah akan menjadi dari metaheuristik ke non-metaheuristik? (2) "Istilah lain yang memiliki makna yang mirip dengan metaheuristik, adalah: bebas turunan, pencarian langsung, kotak hitam, atau memang hanya pengoptimal heuristik." Saya bertanya-tanya apakah metaheuristik hanya memanfaatkan nilai fungsi dan apakah turunannya gratis? Apakah ini metode "cari" di balasan Anda untuk pertanyaan saya yang lain?
Tim
@Tim: metaheuristik berarti: (i) tidak ada teori konvergensi, dan (ii) tidak ada resep yang pasti untuk melanjutkan tetapi prinsip-prinsip umum. - bebas turunan (= pencarian langsung = kotak hitam; nama yang berbeda untuk yang sama dari akar sejarah yang berbeda) dapat heuristik atau tidak; itu hanya memberi tahu tentang input yang harus disediakan pengguna.
Arnold Neumaier
Terima kasih! Saya bertanya-tanya apakah metaheuristik hanya memanfaatkan nilai fungsi dan apakah turunannya gratis?
Tim
@Tim: Mungkin ya; Saya tidak tahu apa-apa yang sebenarnya disebut metaheuristik yang menggunakan gradien.
Arnold Neumaier
7

Saya tidak akan mengulangi simpleks dan Nelder-Mead karena @ArnoldNeumaier sudah memberikan penjelasan yang sangat bagus, tetapi ingin menambahkan 2 sen saya.

Salah satu kutipan terbaik yang pernah saya dengar beberapa waktu lalu untuk menggambarkan perbedaan antara heuristik dan metaheuristik: Heuristik adalah aturan yang cukup bagus. Metaheuristik adalah aturan yang cukup bagus untuk menemukan aturan yang cukup bagus.

Anda harus melihatnya sebagai cara untuk menemukan heuristik yang bagus untuk masalah spesifik; pada dasarnya jika Anda bertanya pada diri sendiri salah satu pertanyaan berikut ini, Anda berbicara tentang metaheuristik:

  • Bagaimana saya harus mengubah parameter heuristik ini untuk meningkatkan kinerja pada masalah itu?
  • Apakah heuristik ini lebih baik daripada heuristik itu?

Ada banyak metaheuristik yang dapat Anda gunakan untuk pemecahan masalah, pembelajaran, dan penemuan , yaitu:

Saya menemukan bahwa sebagian besar metaheuristik agak diilhami oleh fenomena alam, yang sulit untuk dijelaskan dengan teliti, tetapi memiliki sifat konvergensi yang baik.

Berikut ini tautan yang bagus jika Anda ingin membaca lebih lanjut tentang beberapa teknik metaheuristik lainnya

Charles Menguy
sumber
Terima kasih! Saya tidak yakin saya mengerti, "Heuristik adalah aturan yang cukup bagus. Metaheuristik adalah aturan yang cukup bagus untuk menemukan aturan yang cukup bagus." Misalnya, apakah Simulasi anil, kawanan partikel, koloni semut, dan pencarian tabu heuristik atau metaheuristik? Jika mereka adalah salah satu dari dua, apa rekan mereka untuk yang lain?
Tim
Apa yang harus Anda pahami dari kutipan ini adalah bahwa heuristik dan metaheuristik tidak tepat atau terbukti, sehingga "aturan yang cukup bagus". Metaheuristik berada pada level yang lebih tinggi daripada heuristik, dan melalui beberapa iterasi yang berurutan Anda dapat menemukan serangkaian parameter yang akan menyelesaikan masalah dengan benar. Jika Anda tahu apa set parameter ini dari awal, Anda hanya perlu menulis heuristik untuk menyelesaikan masalah. Tetapi karena Anda tidak tahu, Anda harus menggunakan algoritma untuk menemukan parameter ini untuk heuristik Anda: metaheuristik. Harapan itu menjelaskan.
Charles Menguy
Dan algoritma yang saya berikan di sini semuanya adalah metaheuristik, dan Anda dapat menemukan rincian lebih lanjut tentang tautan yang saya berikan. Saya tidak yakin persis apa yang Anda maksud untuk mitra.
Charles Menguy
Dengan rekan-rekan, maksud saya, misalnya, jika algoritma semuanya metaheuristik, maka heuristik yang mereka operasikan harusnya sendiri ditambah nilai spesifik untuk parameter yang dapat disesuaikan?
Tim
Ambil contoh annealing yang disimulasikan. Apa yang dilakukannya pada akhirnya adalah pencarian pada rantai Markov. "Aturan" heuristik adalah mengasumsikan bahwa keadaan dalam rantai Markov adalah solusinya. Apa yang dilakukan metaheuristik adalah akan mencari konvergensi dalam rantai Markov untuk menemukan keadaan optimal yang menggambarkan solusi. Secara umum saya pikir Anda tidak harus berusaha terlalu keras untuk membuat perbedaan: gunakan heuristik ketika ada solusi "relatif" sederhana yang dapat dengan mudah dihitung, dan gunakan metaheuristik ketika ruang solusi terlalu besar dan Anda harus lebih pintar tentang memecahkan masalah.
Charles Menguy