Rumah Keuangan Pribadi Algoritma: Biaya Komputasi dan Mengikuti Heuristik - dummies

Algoritma: Biaya Komputasi dan Mengikuti Heuristik - dummies

Daftar Isi:

Video: BEKONANG #1 - BELAJAR KOMPUTASIONAL 2024

Video: BEKONANG #1 - BELAJAR KOMPUTASIONAL 2024
Anonim

Seringkali, Anda menemukan pendekatan heuristik, yang berisi pada penemuan diri dan menghasilkan hasil yang cukup berguna (belum tentu optimal, tapi cukup bagus) adalah metode yang benar-benar Anda butuhkan untuk memecahkan masalah. Mendapatkan algoritma untuk melakukan beberapa pekerjaan yang dibutuhkan untuk Anda menghemat waktu dan tenaga karena Anda dapat membuat algoritme yang melihat pola lebih baik daripada manusia. Konsekuensinya, penemuan diri adalah proses yang memungkinkan algoritme untuk menunjukkan jalan yang berpotensi berguna ke solusi (namun Anda tetap harus mengandalkan intuisi dan pemahaman manusia untuk mengetahui apakah solusinya benar). Bagian berikut menjelaskan teknik yang dapat Anda gunakan untuk menghitung biaya algoritma yang menggunakan heuristik sebagai metode untuk menemukan kegunaan sebenarnya dari solusi yang diberikan.

Mewakili masalah sebagai ruang

A

ruang masalah adalah lingkungan di mana pencarian solusi terjadi. Satu set negara bagian dan operator yang digunakan untuk mengubah keadaan tersebut mewakili ruang masalah. Misalnya, perhatikan permainan ubin yang memiliki delapan ubin dalam bingkai 3-x-3. Setiap ubin menunjukkan satu bagian gambar, dan ubin mulai dalam urutan acak sehingga gambarnya acak-acakan. Tujuannya adalah untuk memindahkan satu genteng sekaligus untuk menempatkan semua ubin dengan urutan yang benar dan mengungkapkan gambarnya. .

Anda bisa mewakili teka-teki grafis dengan menggunakan grafik ruang masalah. Setiap simpul dari grafik ruang masalah menyajikan sebuah keadaan (delapan ubin pada posisi tertentu). Tepi mewakili operasi, seperti memindahkan ubin nomor delapan ke atas. Saat Anda memindahkan ubin ke atas, gambar berubah - bergerak ke keadaan lain.

Memenangkan permainan dengan berpindah dari negara awal ke negara tujuan bukanlah satu-satunya pertimbangan. Untuk menyelesaikan permainan secara efisien, Anda perlu melakukan tugas dengan jumlah sesedikit mungkin bergerak, yang berarti menggunakan jumlah operator terkecil. Jumlah minimum gerakan yang digunakan untuk memecahkan teka-teki adalah kedalaman permasalahan

.

Anda harus mempertimbangkan beberapa faktor saat merepresentasikan masalah sebagai sebuah ruang. Misalnya, Anda harus mempertimbangkan jumlah node maksimum yang sesuai dengan memori, yang mewakili kompleksitas ruang.

Bila Anda tidak dapat memasukkan semua node dalam memori pada satu waktu, komputer harus menyimpan beberapa node di lokasi lain, seperti hard drive, yang dapat memperlambat algoritma dengan cukup.Untuk menentukan apakah node akan muat di memori, Anda harus mempertimbangkan kompleksitas waktu, yang merupakan jumlah maksimum node yang dibuat untuk memecahkan masalah. Selain itu, penting untuk mempertimbangkan faktor keterkaitan, yang merupakan jumlah rata-rata nodus yang tercipta dalam grafik ruang masalah untuk memecahkan masalah. Pergi secara acak dan diberkati oleh keberuntungan Memecahkan masalah pencarian dengan menggunakan teknik brute force. Keuntungan dari pendekatan ini adalah Anda tidak memerlukan pengetahuan khusus domain untuk menggunakan salah satu algoritma ini. Algoritma brute force cenderung menggunakan pendekatan yang paling sederhana untuk memecahkan masalah. Kelemahannya adalah bahwa pendekatan brute force bekerja dengan baik hanya untuk sejumlah kecil simpul. Berikut adalah beberapa algoritma pencarian brute force yang umum:

Breadth-first search:

Teknik ini dimulai pada node root, mengeksplorasi masing-masing node anak terlebih dahulu, dan baru kemudian bergerak ke tingkat berikutnya. Ini berkembang setingkat sampai menemukan solusinya. Kerugian dari algoritma ini adalah bahwa ia harus menyimpan setiap simpul dalam memori, yang berarti bahwa ia menggunakan memori dalam jumlah besar untuk sejumlah besar simpul. Teknik ini bisa memeriksa duplikat node, yang menghemat waktu, dan selalu muncul dengan solusi.

  • Kedalaman-penelusuran pertama: Teknik ini dimulai di simpul akar dan mengeksplorasi sekumpulan simpul anak yang terhubung sampai mencapai simpul daun. Ini berkembang cabang demi cabang sampai menemukan solusinya. Kerugian dari algoritma ini adalah bahwa ia tidak dapat memeriksa node duplikat, yang berarti bahwa ia mungkin melintasi jalur nodus yang sama lebih dari satu kali. Sebenarnya, algoritme ini mungkin tidak menemukan solusi sama sekali, yang berarti Anda harus menentukan titik cutoff agar algoritme tidak mencari dengan pasti. Keuntungan dari pendekatan ini adalah efisiensi memori.
  • Pencarian dua arah: Teknik ini mencari secara bersamaan dari simpul akar dan simpul tujuan sampai dua jalur pencarian bertemu di tengahnya. Keuntungan dari pendekatan ini adalah bahwa waktu itu efisien karena menemukan solusi lebih cepat daripada banyak solusi brute force lainnya. Selain itu, ia menggunakan memori lebih efisien daripada pendekatan lainnya dan selalu menemukan solusinya. Kelemahan utama adalah kompleksitas implementasi, yang diterjemahkan ke dalam siklus pengembangan yang lebih panjang.
  • Menggunakan heuristik dan fungsi biaya Bagi beberapa orang, kata

heuristik

terdengar rumit. Akan sangat mudah untuk mengatakan bahwa algoritma tersebut membuat tebakan yang terdidik dan kemudian mencoba lagi saat gagal. Tidak seperti metode brute force, algoritma heuristik belajar. Mereka juga menggunakan fungsi biaya untuk membuat pilihan yang lebih baik. Akibatnya, algoritma heuristik lebih kompleks, namun memiliki keunggulan tersendiri dalam memecahkan masalah yang kompleks. Seperti algoritma brute force, ada banyak algoritma heuristik dan masing-masing dilengkapi dengan kelebihan, kekurangan, dan persyaratan khusus tersendiri. Daftar berikut ini menjelaskan beberapa algoritma heuristik yang paling umum: Pencarian heuristik murni: Algoritma memperluas node sesuai urutan biaya mereka.Ini memelihara dua daftar. Daftar tertutup berisi simpul yang telah dieksplorasi; daftar terbuka berisi simpul yang harus dijelajahi. Pada setiap iterasi, algoritma mengembang node dengan biaya serendah mungkin. Semua simpul anaknya ditempatkan dalam daftar tertutup dan biaya simpul anak individu dihitung. Algoritma mengirimkan node anak dengan biaya rendah kembali ke daftar terbuka dan menghapus node anak dengan biaya tinggi. Akibatnya, algoritma melakukan pencarian berbasis solusi yang cerdas dan berbasis biaya.

  • A * search: Algoritma melacak biaya node karena mengeksplorasinya dengan menggunakan persamaan:
  • f (n) = g n) + h (n), di mana n adalah pengenal simpul.
    • g (
    • n) adalah biaya untuk mencapai simpul sejauh ini. h (
    • n) adalah perkiraan biaya untuk mencapai tujuan dari simpul. f (
    • n) adalah perkiraan biaya jalur dari n ke sasaran. Idenya adalah mencari jalan yang paling menjanjikan terlebih dulu dan menghindari jalan yang mahal. Pencarian terbaik untuk pencarian terbaik:

Algoritma selalu memilih jalur yang paling dekat dengan tujuan menggunakan persamaan:

  • f (n) = h
Algoritma: Biaya Komputasi dan Mengikuti Heuristik - dummies

Pilihan Editor

Rakit Menu untuk Situs Anda di Flash - dummies

Rakit Menu untuk Situs Anda di Flash - dummies

Jika Anda telah membuat satu tombol di Flash, Anda dapat menduplikat simbol tombol dan kemudian mengubah teks untuk menyempurnakan menu Anda. Jika Anda benar matematika, tombol Anda berukuran sempurna. Saat Anda menyelaraskan tombol ujung ke ujung, menu Anda akan dirakit. Untuk merakit menu, ikuti langkah-langkah berikut:

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Tambahkan dan Edit Simbol pada Flash CS5 Stage - dummies

Anda dapat menggunakan kembali simbol setelah Anda menambahkan ke perpustakaan Adobe Flash Creative Suite 5 Anda. Setiap salinan simbol disebut sebagai contoh di Flash CS5. Meskipun semua contoh simbol tetap terhubung kembali dengan aslinya di Perpustakaan, Anda memiliki fleksibilitas untuk menskalakan, mengubah, dan memutar ...

Bitmap versus Vector Artwork di Flash CS5 - dummies

Bitmap versus Vector Artwork di Flash CS5 - dummies

Dalam desain berbasis komputer, Anda harus waspada terhadap dua jenis grafis: bitmap dan vektor. Lingkungan gambar di Flash secara native menciptakan grafis vektor, namun Anda dapat menggunakan grafik bitmap dan vektor dalam film Flash. Grafik vektor mengacu pada karya seni terukur yang terdiri dari titik, jalur, dan pengisian yang dibuat oleh komputer berdasarkan ...

Pilihan Editor

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 Teks Entri dan Pemformatan Shortcut - dummies

Kata 2016 menawarkan banyak cara untuk berinteraksi dengan dokumen Anda. Ada beberapa shortcut keyboard yang bisa menghemat waktu. Dengan cara pintas keyboard ini, Anda bisa mempercepat pengeditan dan pemformatan teks. Untuk melakukan ini Dengan keyboard Mulai baris baru di paragraf yang sama Shift + Enter Masukkan halaman istirahat Ctrl + Enter Insert ...

Kata 2016 Lihat Jalan Pintas - dummies

Kata 2016 Lihat Jalan Pintas - dummies

Pernah merasa Anda tidak memiliki perspektif yang benar? Nah, Word 2016 memudahkan Anda mengubah tampilan dokumen sehingga Anda bisa mendapatkan perspektif yang berbeda. Dengan cara pintas keyboard ini, Anda dapat beralih di antara berbagai tampilan di Word 2016. Beralih ke tampilan ini Dengan keyboard Print Layout Alt + Ctrl + P Garis Besar Alt + Ctrl + O Draft ...

Kata 2013 For Dummies Cheat Sheet - dummies

Kata 2013 For Dummies Cheat Sheet - dummies

Kata adalah salah satu program komputer yang paling banyak digunakan di planet ini. Membantu Anda menulis teks adalah salah satu hal yang dilakukan komputer dengan baik, tapi itu tidak membuat tugas penulisan teks lebih mudah atau menyiratkan bahwa menggunakan Word cukup sederhana sehingga Anda tidak memerlukan bantuan. Jadi nikmati Cheat Sheet ini.

Pilihan Editor

Administrasi jaringan: Memelihara Perintah Windows - dummies

Administrasi jaringan: Memelihara Perintah Windows - dummies

Kemampuan untuk menyusun perintah Windows bersama dapat membiarkan Anda menyelesaikannya dalam satu perintah apa yang akan mengambil puluhan perintah terpisah. Anda bisa memasukkan dua atau lebih perintah pada baris yang sama dengan memisahkan perintah dengan ampersand (&), seperti ini: C:> copy *. doc a: & del *. doc Di sini, salinan perintah Salin ...

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Administrasi jaringan: Mengelompokkan alamat IP - dummies

Ketika perancang asli protokol IP membuat skema pengalamatan IP, mereka bisa saja menugaskan sejumlah bit alamat IP yang sewenang-wenang untuk ID jaringan. Bit yang tersisa kemudian akan digunakan untuk host ID. Sebagai contoh, anggaplah bahwa perancang memutuskan bahwa setengah dari alamat (16 bit) akan menjadi ...