Jumat, 25 Maret 2011

Searching dan Sorting

Dalam ilmu komputer, sebuah algoritma pencarian, secara umum, adalah suatu algoritma untuk mencari item dengan sifat tertentu antara koleksi item. Item dapat disimpan secara individual sebagai rekaman dalam database, atau mungkin elemen ruang pencarian didefinisikan oleh rumus matematika atau prosedur, seperti akar dari suatu persamaan dengan variabel integer, atau kombinasi dari dua, seperti Hamiltonian sirkuit dari grafik.

Kelas algoritma pencarian

Untuk ruang pencarian virtual

Algoritma untuk mencari ruang virtual yang digunakan dalam masalah kendala kepuasan, dimana tujuannya adalah untuk menemukan satu set tugas nilai variabel tertentu yang akan memenuhi persamaan matematika spesifik dan inequations. Mereka juga digunakan ketika tujuannya adalah untuk menemukan tugas variabel yang akan memaksimalkan atau meminimalkan fungsi tertentu dari variabel tersebut. Algoritma untuk masalah ini termasuk pencarian brute-force dasar (juga disebut "naif" atau "kurang informasi" pencarian), dan berbagai heuristik yang mencoba untuk mengeksploitasi pengetahuan parsial tentang struktur ruang, seperti relaksasi linier, generasi kendala, dan kendala propagasi.

Sebuah subclass penting adalah metode pencarian lokal, yang melihat elemen ruang pencarian sebagai simpul dari graf, dengan tepi yang didefinisikan oleh satu set heuristik berlaku untuk kasus ini, dan memindai ruang dengan bergerak dari item ke item di sepanjang tepi , misalnya menurut keturunan curam atau kriteria terbaik pertama, atau dalam sebuah pencarian stokastik. Kategori ini berisi berbagai macam metode metaheuristic umum, seperti simulated annealing, tabu search, A-tim, dan pemrograman genetik, yang menggabungkan heuristik sewenang-wenang dengan cara tertentu.

Kelas ini juga mencakup berbagai algoritma pencarian pohon, yang melihat unsur-unsur sebagai simpul dari pohon, dan traverse bahwa pohon di beberapa pesanan khusus. Contoh yang terakhir termasuk metode lengkap seperti pencarian depth-first dan pencarian breadth-first, serta berbagai metode pemangkasan pohon pencarian heuristic-based seperti backtracking dan cabang dan terikat. Tidak seperti metaheuristics umum, yang di tempat kerja terbaik hanya dalam arti probabilistik, banyak dari pohon-metode pencarian dijamin untuk menemukan solusi yang tepat atau optimal, jika diberikan waktu yang cukup.

Lainnya sub penting-kelas terdiri dari algoritma untuk menjelajahi pohon permainan multi-player game, seperti catur atau backgammon, node yang terdiri dari semua situasi permainan yang mungkin yang dapat dihasilkan dari situasi saat ini. Tujuan dalam masalah ini adalah untuk menemukan langkah yang memberikan kesempatan terbaik untuk menang, dengan mempertimbangkan semua kemungkinan gerakan lawan (s). Masalah serupa terjadi ketika manusia atau mesin harus membuat keputusan yang berturut-turut hasil tidak sepenuhnya di bawah kendali seseorang, seperti dalam panduan robot atau dalam pemasaran, perencanaan strategi keuangan atau militer. Masalah semacam ini telah dipelajari secara ekstensif dalam konteks kecerdasan buatan. Contoh algoritma untuk kelas ini adalah algoritma minimax, pemangkasan alpha-beta, dan algoritma * A.

Untuk sub-struktur dari sebuah struktur yang diberikan

Pencarian Nama kombinatorial umumnya digunakan untuk algoritma yang mencari sub-struktur spesifik dari struktur diskrit yang diberikan, seperti grafik, string, sebuah kelompok terbatas, dan sebagainya. Optimasi kombinatorial Istilah biasanya digunakan ketika tujuannya adalah untuk menemukan sub-struktur dengan maksimum (atau minimum) nilai parameter tertentu. (Karena sub-struktur biasanya diwakili dalam komputer dengan satu set variabel integer dengan kendala, masalah ini dapat dipandang sebagai kasus khusus dari kepuasan kendala atau optimasi diskrit, tetapi mereka biasanya dirumuskan dan diselesaikan dalam pengaturan lebih abstrak dimana representasi internal tidak disebutkan secara eksplisit.)

Sebuah subclass penting dan dipelajari secara ekstensif adalah algoritma grafik, dalam algoritma graf traversal tertentu, untuk menemukan spesifik sub-struktur di grafik yang diberikan - seperti subgraphs, jalan, sirkuit, dan sebagainya. Contohnya termasuk algoritma Dijkstra, algoritma Kruskal's, algoritma tetangga terdekat, dan algoritma Prim.

Subkelas penting lain dari kategori ini adalah algoritma pencarian string, yang mencari pola dalam string. Dua contoh terkenal adalah Boyer-Moore dan algoritma Knuth-Morris-Pratt, dan beberapa algoritma berdasarkan struktur data suffix tree.

Untuk komputer kuantum

Ada juga mencari metode yang dirancang untuk (saat ini tidak ada) komputer kuantum, seperti algoritma Grover, yang secara teoritis lebih cepat dibandingkan linear atau pencarian brute-force bahkan tanpa bantuan dari struktur data atau heuristik.


Sorting adalah sebuah proses merangkai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda, dan oleh karena itu dia memiliki dua arti umum yang berbeda:

  1. pengurutan: merangkai benda yang sejenis, sekelas, dll, dalam urutan yang teratur,
  2. kategorisasi: pengelompokan dan pemberian label kepada benda dengan sifat yang serupa.

Mensortir informasi atau data

Salah satu cara sorting yang penting adalah mengatur benda informasi dalam urutan alfabetik sesuai dengan hubungan penyusunan yang telah didefinisikan sebelumnya, misal ketika seseorang mensortir buku-buku di perpustakaan berdasarkan judul, subyek atau penulis (Biasanya diurutkan dalam urutan membesar).

Urutan yang dihasilkan dapat membesar atau mengecil, karena biasanya seluruh sorting adalah sorting angka. Sorting dalam ilmu komputer adalah salah satu subjek riset yang paling luas karena kebutuhan mempercepat operasi dalam ribuan atau jutaan data selama operasi pencarian; lihat algoritma sorting.

Tujuan utama mensortir informasi adalah untuk mengoptimalkan tugas tertentu. Pada umumnya, ada dua cara pengelompokan informasi: berdasarkan kategori, misal sebuah katalog belanja di mana barang disusun bersama di bawah judul seperti 'rumah', 'olah raga', 'pakaian wanita', dll. dan berdasarkan intensitas seperti harga, misal dari yang termurah sampai yang termahal.

Sumber : http://id.wikipedia.org/wiki/Search_algorithm

Tidak ada komentar:

Posting Komentar