Heuristik

Isi kandungan:

Video: Sains Komputer: Ciri-Ciri Penyelesaian Masalah Berkesan 2024

Video: Sains Komputer: Ciri-Ciri Penyelesaian Masalah Berkesan 2024
Anonim

Sering kali, anda mendapati bahawa pendekatan heuristik, yang bergantung pada penemuan diri dan menghasilkan hasil yang cukup berguna (tidak semestinya optimum, tetapi cukup baik) adalah kaedah yang sebenarnya anda perlukan untuk menyelesaikan masalah. Mendapatkan algoritma untuk melaksanakan beberapa kerja yang diperlukan untuk anda menjimatkan masa dan usaha kerana anda boleh membuat algoritma yang melihat pola yang lebih baik daripada manusia.

Oleh itu, penemuan diri adalah proses membenarkan algoritma menunjukkan kepada anda jalan yang berpotensi berguna untuk penyelesaian (tetapi anda masih harus bergantung pada intuisi dan pemahaman manusia untuk mengetahui sama ada penyelesaiannya adalah yang betul). Bahagian berikut menerangkan teknik yang anda boleh gunakan untuk mengira kos algoritma yang menggunakan heuristik sebagai kaedah untuk mencari kegunaan sebenar dari sebarang penyelesaian yang diberikan.

Mewakili masalah sebagai ruang

A ruang masalah adalah persekitaran yang mencari penyelesaian untuk dilakukan. Satu set negeri dan operator yang digunakan untuk menukar negeri-negeri tersebut mewakili ruang masalah. Sebagai contoh, pertimbangkan permainan jubin yang mempunyai lapan jubin dalam bingkai 3-x-3. Setiap jubin memperlihatkan satu bahagian gambar, dan jubin bermula dalam beberapa susunan rawak supaya gambar itu tergelincir. Matlamatnya adalah untuk memindahkan satu jubin pada satu masa untuk meletakkan semua jubin dalam susunan yang betul dan mendedahkan gambar.

Gabungan keadaan permulaan, jubin rawak, dan keadaan matlamat - jubin dalam susunan tertentu - ialah masalah masalah. Anda boleh mewakili teka-teki secara grafik menggunakan graf ruang masalah. Setiap nod dari graf ruang masalah membentangkan keadaan (lapan jubin dalam kedudukan tertentu). Tepi-tayar mewakili operasi, seperti untuk memindahkan jubin nombor lapan ke atas. Apabila anda memindahkan jubin lapan ke atas, gambar berubah - ia bergerak ke keadaan lain.

Memenangi permainan dengan bergerak dari keadaan permulaan kepada keadaan matlamat bukan satu-satunya pertimbangan. Untuk menyelesaikan permainan dengan cekap, anda perlu melakukan tugas ini dalam jumlah paling sedikit mungkin, yang bermaksud menggunakan bilangan pengendali terkecil. Bilangan langkah minimum yang digunakan untuk menyelesaikan teka-teki adalah kedalaman masalah.

Anda harus mempertimbangkan beberapa faktor ketika mewakili masalah sebagai ruang. Sebagai contoh, anda mesti mempertimbangkan bilangan maksimum nod yang akan sesuai dengan ingatan, yang mewakili kerumitan ruang. Apabila anda tidak dapat menyesuaikan semua nod dalam memori pada satu masa, komputer mesti menyimpan beberapa nod di lokasi lain, seperti cakera keras, yang boleh melambatkan algoritma dengan ketara.Untuk menentukan sama ada nod akan sesuai dengan ingatan, anda mesti mempertimbangkan kekukuhan masa, yang merupakan bilangan maksimum nod yang dibuat untuk menyelesaikan masalah tersebut. Di samping itu, penting untuk mempertimbangkan faktor cawangan, yang merupakan bilangan purata nod yang dicipta dalam graf ruang masalah untuk menyelesaikan masalah.

Melangkah secara rawak dan diberkati oleh nasib

Memecahkan masalah carian dengan teknik brute-force mungkin. Kelebihan pendekatan ini ialah anda tidak memerlukan pengetahuan khusus domain untuk menggunakan salah satu daripada algoritma ini. Algoritma kekerasan cenderung menggunakan pendekatan yang paling mudah untuk menyelesaikan masalah. Kelemahannya ialah pendekatan kekerasan berfungsi dengan baik hanya untuk sejumlah kecil nod. Berikut adalah beberapa algoritma carian kekerasan yang biasa:

  • Carian rentas pertama: Teknik ini bermula pada nod akar, meneroka setiap node anak pertama, dan hanya kemudian bergerak ke tahap seterusnya. Ia berkembang tahap demi tahap sehingga ia mendapat penyelesaian. Kelemahan algoritma ini adalah bahawa ia mesti menyimpan setiap nod dalam ingatan, yang bermaksud ia menggunakan sejumlah besar memori untuk sebilangan besar nod. Teknik ini dapat memeriksa nod duplikat, yang menjimatkan masa, dan selalu muncul dengan penyelesaian.
  • Carian mendalam pertama: Teknik ini bermula pada nod akar dan meneroka satu set node anak yang disambungkan sehingga ia mencapai nod daun. Ia berkembang cawangan mengikut cawangan sehingga ia mendapat penyelesaian. Kelemahan algoritma ini adalah bahawa ia tidak dapat memeriksa nod pendua, yang bermaksud bahawa ia mungkin melintasi laluan nod yang sama lebih daripada satu kali. Malah, algoritma ini tidak dapat mencari penyelesaian sama sekali, yang bermaksud bahawa anda mesti menentukan titik cutoff untuk menjaga algoritma dari mencari tanpa batas. Satu kelebihan pendekatan ini ialah memori itu berkesan.
  • Carian silih ganti: Teknik ini mencari secara serentak dari nod akar dan nod gol sehingga kedua-dua laluan carian bertemu di tengah. Satu kelebihan pendekatan ini adalah bahawa ia adalah masa yang cekap kerana ia mendapati penyelesaiannya lebih cepat daripada banyak penyelesaian kuasa kasar lain. Di samping itu, ia menggunakan memori lebih cekap daripada pendekatan lain dan sentiasa mencari penyelesaian. Kelemahan utama adalah kerumitan pelaksanaan, diterjemahkan ke dalam kitaran pembangunan yang lebih panjang.

Menggunakan fungsi heuristik dan fungsi

Bagi sesetengah orang, perkataan heuristik hanya berbunyi rumit. Ia akan menjadi mudah untuk mengatakan bahawa algoritma itu membuat tekaan berpelajaran dan kemudian cuba lagi apabila gagal. Tidak seperti kaedah kekerasan kasar, algoritma heuristik belajar. Mereka juga menggunakan fungsi kos untuk membuat pilihan yang lebih baik. Akibatnya, algoritma heuristik lebih rumit, tetapi mereka mempunyai kelebihan tersendiri dalam menyelesaikan masalah yang rumit. Seperti algoritma kuasa kasar, terdapat banyak algoritma heuristik dan masing-masing dilengkapi dengan kelebihan, kelemahan, dan keperluan khusus. Senarai berikut menerangkan beberapa algoritma heuristik yang paling biasa:

  • Pencarian heuristik tulen: Algoritma memperluaskan nod mengikut kos mereka.Ia mengekalkan dua senarai. Senarai tertutup mengandungi nod yang telah dieksplorasi; senarai terbuka mengandungi nod yang masih belum dijelajahi. Dalam setiap lelaran, algoritma memperluaskan nod dengan kos yang paling rendah. Semua nod kanak-kanak diletakkan dalam senarai tertutup dan kos nod kanak-kanak individu dikira. Algoritma ini menghantar nod kanak-kanak dengan kos rendah kembali ke senarai terbuka dan memadam nod kanak-kanak dengan kos yang tinggi. Akibatnya, algoritma itu melakukan carian pintar, berdasarkan kos untuk penyelesaiannya.
  • A * search: Algoritma menjejaki kos nod ketika ia meneroka mereka dengan menggunakan persamaan: f (n) = g (n) + h (n), di mana
    • n adalah pengenal simpul.
    • g (n) adalah kos untuk mencapai nod setakat ini.
    • h (n) ialah anggaran kos untuk mencapai matlamat dari nod.
    • f (n) ialah anggaran kos laluan dari n ke matlamat.

Idea ini adalah untuk mencari jalan yang paling menjanjikan terlebih dahulu dan elakkan jalan yang mahal.

  • Carian pertama yang tamak: Algoritma selalu memilih jalan yang paling dekat dengan matlamat menggunakan persamaan: f (n) = h
Heuristik

Pilihan Editor

Cara Mengeksport karya seni dari Fireworks - dummies

Cara Mengeksport karya seni dari Fireworks - dummies

Setelah anda mengoptimumkan imej itu, sudah waktunya untuk mengeksport dari Fireworks. Mengekspot imej adalah agak mudah; pilih Fail → Eksport dan kemudian nyatakan folder di mana untuk menyimpan imej. Apabila anda mengeksport dokumen seperti menu navigasi dengan beberapa kepingan, anda mengeksport dokumen itu sebagai imej dan HTML seperti berikut: Pilih Fail → Eksport. The ...

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Cara Cari Warna untuk Skema Warna Laman Web Anda - dummies

Peraturan yang paling asas Skim warna untuk laman web adalah bahawa anda perlu bekerja dengan beberapa warna yang terkurung. Jika tidak, laman web anda hanya akan membentangkan warna cacian warna. (Ya, pendekatan gila-gilaan juga merupakan bentuk skema warna, tetapi sebagai peraturan umum tidak begitu berkesan.) Bagaimana ...

Pilihan Editor

Memilih Penutupan Daripada Potret Khas - patung

Memilih Penutupan Daripada Potret Khas - patung

Potret di mana imej anda dipangkas dengan ketat supaya subjek itu mengambil sebahagian besar atau semua bingkai - adalah alat licik dalam beg jurufat jurulatih. Walau bagaimanapun, orang umumnya tidak suka mempunyai kamera terlalu dekat dengan mereka, kerana ketakutan bahawa imej itu ...

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Menangkap Highlights and Drips dalam Fotografi Makanan Anda - dummies

Sedikit dari fotografi bukan makanan. Fotografi komersil tradisional cenderung untuk menjauhkan diri dari kekejangan sorotan spekular dan kelemahan drip dan ketidaksempurnaan. Sorotan specular kadang-kadang hanya smidge yang terlalu cerah dan mengganggu dalam foto, tetapi kemuncaknya berkilat ...

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Pilih Lensa Makro Kanan untuk Subjek Anda - patung

Komponen utama untuk dipertimbangkan ketika mencari makro Kanta yang sesuai dengan gaya fotografi rapat anda adalah subjek yang akan anda ambil gambar dengan lensa. Sekiranya anda menembak mata secara tidak langsung, anda boleh meletakkan kanta anda dengan sangat dekat dengannya. Subjek lain mungkin memerlukan anda menyimpan jarak yang selamat, yang bermaksud ...

Pilihan Editor

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Bagaimana Mengubah Transparansi Layer Jenis di Photoshop CS6 - dummies

Anda boleh menukar transparansi lapisan jenis, seperti yang anda boleh dengan lapisan lain dalam Adobe Photoshop Creative Suite 6, mengurangkan kelegapan (ketelusan) jenis supaya ia membolehkan lapisan mendasar untuk menunjukkan. Lapisan adalah seperti susunan lapisan digital yang mana setiap unsur imej anda ...

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Bagaimana Tukar Resolusi Imej dalam Adobe Photoshop CS6 - dummies

Menggunakan kotak dialog Ukuran Imej hanya satu cara yang anda boleh mengawal resolusi dalam Adobe Photoshop CS6. Walaupun anda boleh meningkatkan resolusi, berbuat demikian dengan berhati-hati dan mengelakkannya, jika anda boleh. Pengecualian kepada peraturan ini adalah apabila anda mempunyai imej yang besar dalam saiz dimensi tetapi rendah ...

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Cara Mengukir Huruf menjadi Imej Tekstur Batu di Photoshop CS6

Dalam Adobe Photoshop CS6, anda boleh menggunakan alat jenis untuk membuat pilihan yang dibentuk seperti huruf dan kemudian menggunakan imej itu sendiri sebagai tekstur (seperti batu) untuk jenisnya. Pemilihan jenis boleh memotong mana-mana bahagian gambar untuk menggunakan apa-apa cara yang anda mahukan. Ikuti langkah-langkah ini untuk mengukir huruf ke dalam tekstur batu ...