Dalam bidang optimasi matematika dan ilmu komputer, heuristik (bahasa Yunani: εὑρίσκω. "Saya menemukan") adalah teknik yang dirancang untuk memecahkan masalah dengan lebih cepat ketika metode klasik terlalu lambat untuk menemukan solusi pasti atau hampiran, atau ketika metode klasik gagal menemukan solusi yang pasti di ruang pencarian. Hal ini dicapai dengan menukar keoptimalan, kelengkapan, akurasi, atau presisi dengan kecepatan. Sedikit banyak, heuristik ini dapat dianggap sebagai jalan pintas.
Sebuah fungsi heuristik, atau secara sederhana disebut heuristik, adalah sebuah fungsi (matematika) yang mengurutkan alternatif-alternatif dalam algoritma pencarian pada setiap langkah percabangan berdasarkan informasi yang tersedia untuk menentukan cabang mana yang harus diikuti. Sebagai contoh, cabang tersebut mungkin menghampiri solusi yang tepat.[1]
Tujuan utama heuristik adalah menghasilkan solusi dalam waktu yang wajar dan dapat diterima untuk memecahkan masalah yang dihadapi. Solusi ini mungkin bukan yang optimal atau mungkin hanya merupakan hampiran dari solusi sebenarnya, tetapi cukup efektif untuk memberikan jawaban praktis dalam rentang waktu yang masuk akal.
Heuristik dapat bekerja secara mandiri untuk menghasilkan solusi atau diintegrasikan dengan algoritma optimasi untuk meningkatkan efisiensi. Sebagai contoh, heuristik dapat digunakan untuk menentukan nilai awal yang strategis (seed value) untuk mempercepat pencapaian solusi optimal dalam algoritma optimasi.
Pentingnya heuristik semakin mengemuka dalam menghadapi masalah NP-hard yang untuk menemukan solusi optimal dengan pendekatan komputasi klasik menjadi tidak praktis atau bahkan tidak mungkin. Dalam skenario tersebut, heuristik menjadi pilihan realistis untuk mendapatkan solusi berkualitas tinggi dalam waktu yang wajar.
Lebih lanjut, heuristik merupakan landasan bagi bidang Kecerdasan Buatan (AI) dan simulasi komputer untuk meniru proses berpikir manusia. Kemampuan heuristik untuk mengarahkan pencarian solusi dalam skenario tanpa algoritma yang pasti menjadikannya elemen vital dalam sistem AI yang adaptif dan cerdas.[2]
Meskipun menjanjikan solusi cepat dan efisien, heuristik memiliki kompromi yang perlu dipertimbangkan ketika akan menggunakan heuristik untuk memecahkan suatu masalah, sebagai berikut.
Dalam beberapa kasus, mungkin sulit untuk memutuskan apakah solusi yang ditemukan oleh heuristik cukup baik karena teori yang mendasari heuristik tidak terlalu mendalam.