Dalam Ilmu Komputer konsep apa yang Anda pelajari tidak akan berguna sampai Anda menunjukkannya. Masalahnya adalah masalah utama yang perlu dipecahkan sehingga algoritma adalah perencanaan singkat tentang bagaimana masalah akan diselesaikan secara umum. Oleh karena itu menjadi perhatian utama di dunia Ilmu Komputer.
Saya pikir hampir setiap aspek dari Ilmu Komputer membutuhkan Algoritma. Mari saya tunjukkan ini. Daftar berikut akan mencakup berbagai bidang Ilmu Komputer dan algoritma mana yang mereka gunakan.
Automata
Konstruksi powerset. Algoritma untuk mengkonversi otomat non-deterministik menjadi otomat deterministik.
Algoritma Todd-Coxeter. Prosedur untuk menghasilkan cosets.
Kecerdasan buatan
Alfa-beta. Alpha max plus beta min. Banyak digunakan dalam permainan papan.
Algoritma semut. Optimalisasi koloni semut adalah seperangkat algoritma yang terinspirasi oleh perilaku semut untuk menyelesaikan masalah, menemukan jalur terbaik antara dua lokasi.
DE (Evolusi diferensial). Memecahkan masalah pemasangan polinomial Chebyshev.
Pengakuan Semi-diawasi atas Kalimat Sarkastik di Ulasan Produk Online. Algortithm yang mengenali sacarsms atau ironi dalam tweet atau dokumen online. Algoritma seperti itu akan sangat penting untuk pemrograman robot humanoid juga.
Visi komputer
Lambang. Mewakili gambar atau video dengan yang lebih kecil.
Menghitung objek dalam suatu gambar . Menggunakan algoritma pelabelan komponen yang terhubung untuk memberi label pertama pada setiap objek, dan menghitung kemudian objek.
Algoritma O'Carroll. Dari konversi matematis dari penglihatan serangga, algoritma ini mengevaluasi bagaimana cara menghindari benda.
Algoritma genetika
Mereka menggunakan tiga operator. seleksi (pilih solusi), reproduksi (gunakan solusi terpilih untuk membangun yang lain), penggantian (ganti solusi jika lebih baik).
Seleksi proporsional kebugaran. Juga dikenal sebagai pemilihan roda roulette, adalah fungsi yang digunakan untuk memilih solusi.
Pilihan pemotongan. Metode lain untuk memilih solusi, dipesan oleh kebugaran.
Pilihan turnamen. Pilih solusi terbaik berdasarkan jenis turnamen.
Pengambilan sampel stokastik universal. Individu dipetakan ke segmen yang berdekatan dari sebuah garis, sehingga segmen masing-masing individu memiliki ukuran yang sama dengan kebugarannya persis seperti dalam pemilihan roda roulette.
Jaringan saraf
Hopfield net. Jaringan saraf tiruan berulang yang berfungsi sebagai sistem memori yang dapat dialamati konten dengan unit ambang biner. Mereka bertemu ke kondisi stabil.
Backpropagation. Teknik pembelajaran terawasi digunakan untuk pelatihan jaringan saraf tiruan.
Peta yang dikelola sendiri (peta Kohonen). Jaringan saraf dilatih menggunakan pembelajaran tanpa pengawasan untuk menghasilkan representasi dimensi rendah (2D, 3D) dari sampel pelatihan. Baik untuk memvisualisasikan data dimensi tinggi.
Bioinformatika
Needleman-Wunsch. Melakukan penyelarasan global pada dua sekuens, untuk sekuens protein atau nukleotida.
Smith-Waterman. Variasi dari Needleman-Wunsch.
Kompresi
Algoritma kompresi lossless
Transformasi Burrows-Wheeler. Preprocessing bermanfaat untuk meningkatkan kompresi lossless.
Menurunkan. Kompresi data digunakan oleh ZIP.
Pengkodean Delta. Bantuan untuk kompresi data di mana data berurutan sering terjadi.
Pengkodean tambahan. Pengkodean Delta diterapkan pada urutan string.
LZW. (Lempel-Ziv-Welch). Penerus LZ78. Membuat tabel terjemahan dari data ke kompres. Digunakan oleh format grafis GIF.
LZ77 dan 78. Dasar variasi LZ lebih lanjut (LZW, LZSS, ...). Keduanya adalah kamus kode.
LZMA. Singkatan dari Lempel-Ziv-Markov chain-Algorithm.
LZO. Algoritma kompresi data yang difokuskan pada kecepatan.
PPM(Prediksi oleh Pencocokan Parsial). Teknik kompresi data statistik adaptif berdasarkan pemodelan konteks dan prediksi. Pengkodean Shannon-Fano. Membangun kode awalan berdasarkan pada serangkaian simbol dan probabilitasnya.
Biner terpotong. Pengkodean entropi biasanya digunakan untuk distribusi probabilitas yang seragam dengan alfabet terbatas. Tingkatkan penyandian biner.
Pengodean run-length. Kompresi primer yang menggantikan urutan kode yang sama dengan jumlah kejadian.
Sequitur. Inferensi tata bahasa tambahan pada string.
EZW (Embedded Zerotree Wavelet). Pengkodean progresif untuk mengompres gambar ke dalam aliran bit dengan akurasi yang meningkat. Mungkin kompresi lossy juga dengan hasil yang lebih baik.
Entropy encoding
Skema pengkodean yang memberikan kode ke simbol sehingga sesuai panjang kode dengan probabilitas simbol.
Coding Huffman. Kompresi lossless sederhana mengambil keuntungan dari frekuensi karakter relatif.
Pengkodean Huffman Adaptif. Teknik pengkodean adaptif berdasarkan pengkodean Huffman.
Pengkodean aritmatika. Pengodean entropi tingkat lanjut.
Pengkodean rentang. Sama seperti pengkodean aritmatika, tetapi memandangnya dengan cara yang sedikit berbeda.
Pengodean unary. Kode yang mewakili angka n dengan n yang diikuti oleh nol. Elias delta, gamma, coding omega. Kode universal yang mengkodekan bilangan bulat positif. Fibonacci coding. Kode universal yang mengkodekan bilangan bulat positif ke dalam kata-kata kode biner.
Coding Golomb. Bentuk pengkodean entropi yang optimal untuk huruf berikut distribusi geometris.
Coding beras. Bentuk pengkodean entropi yang optimal untuk huruf berikut distribusi geometris.
Algoritma kompresi lossy
Pengkodean prediktif linier. Kompresi lossy dengan merepresentasikan amplop spektral sinyal digital ucapan dalam bentuk terkompresi.
Algoritma A-law. Algoritma kompanding standar.
Algoritma mu-law. Kompresi sinyal analog standar atau algoritma kompanding.
Kompresi fraktal. Metode yang digunakan untuk mengompres gambar menggunakan fraktal.
Ubah pengkodean. Jenis kompresi data untuk data seperti sinyal audio atau gambar foto.
Kuantisasi vektor. Teknik yang sering digunakan dalam kompresi data lossy.
Kompresi wavelet. Bentuk kompresi data sangat cocok untuk kompresi gambar dan audio.
Kriptografi
Kunci rahasia (enkripsi simetris)
Gunakan kunci rahasia (atau sepasang kunci yang terkait langsung) untuk dekripsi dan enkripsi.
Advanced Encryption Standard (AES) , juga dikenal sebagai Rijndael.
Blowfish. Dirancang oleh Schneier sebagai algoritma tujuan umum, dimaksudkan sebagai pengganti DE yang menua.
Standar Enkripsi Data (DES) , sebelumnya DE Algoritma.
IDEA (Algoritma Enkripsi Data Internasional) . Sebelumnya IPES (Improved PES), pengganti lain untuk DES. Digunakan oleh PGP (Privasi Cukup Bagus). Melakukan transformasi pada data yang dipisah dalam blok, menggunakan kunci.
RC4 atau ARC4. Stream cipher banyak digunakan dalam protokol seperti SSL untuk lalu lintas internet dan WEP untuk jaringan nirkabel.
Algoritma Enkripsi Kecil. Mudah untuk mengimplementasikan algoritma cipher blok menggunakan beberapa rumus.
PES (Usulkan Standar Enkripsi). Nama lama untuk IDEA.
Kunci publik (enkripsi asimetris)
Gunakan sepasang kunci, yang ditetapkan sebagai kunci publik dan kunci pribadi. Kunci publik mengenkripsi pesan, hanya kunci pribadi yang mengizinkannya mendekripsi.
DSA (Digital Signature Algorithm). Hasilkan kunci dengan bilangan prima dan acak. Dulu digunakan oleh agen AS, dan sekarang menjadi domain publik.
ElGamal. Berdasarkan Diffie-Hellman, digunakan oleh perangkat lunak GNU Privacy Guard, PGP, dan sistem kriptografi lainnya.
RSA (Rivest, Shamir, Adleman). Banyak digunakan dalam protokol perdagangan elektronik. Gunakan bilangan prima.
Pertukaran kunci Diffie-Hellman (Merkle) (atau pertukaran kunci eksponensial). Metode dan algoritme untuk berbagi rahasia melalui saluran komunikasi yang tidak dilindungi. Digunakan oleh RSA.
NTRUEcrypt. Manfaatkan cincin polinomial dengan perkalian konvolusi.
Fungsi intisari pesan
Intisari pesan adalah kode yang dihasilkan dari enkripsi string atau data dengan panjang berapa pun, diproses oleh fungsi hash.
MD5. Digunakan untuk memeriksa gambar ISO dari CD atau DVD.
RIPEMD (Intisari Intestasi Pesan Evaluasi Primitif Integritas RACE). Berdasarkan prinsip-prinsip MD4 dan mirip dengan SHA-1.
SHA-1 (Algoritma Secure Hash 1). Paling sering digunakan dari SHA set fungsi hash kriptografi terkait. Dirancang oleh agen NSA.
HMAC. otentikasi pesan hash-kunci.
Tiger (TTH). Biasanya digunakan dalam hash pohon harimau.
Kriptografi menggunakan angka pseudo-acak
Lihat. Generator Angka Acak
Teknik dalam kriptografi
Berbagi rahasia, Pemisahan Rahasia, Pemisahan Kunci, algoritma M of N.
Skema berbagi rahasia Shamir. Ini adalah formula berdasarkan interpolasi polinomial.
Skema berbagi rahasia Blakley. Apakah sifatnya geometris, rahasianya adalah titik dalam ruang m-dimensional.
Teknik dan dekripsi lainnya
Jumlah bagian Diberikan satu set bilangan bulat, apakah ada jumlah bagian yang sama dengan nol? Digunakan dalam kriptografi.
Algoritma Shor. Algoritme kuantum dapat mendekripsi kode berdasarkan fungsi asimetris seperti RSA.
Geometri
Bungkus kado. Menentukan lambung cembung satu set poin.
Jarak Gilbert-Johnson-Keerthi. Menentukan jarak terkecil antara dua bentuk cembung.
Graham memindai. Menentukan lambung cembung satu set poin di pesawat.
Persimpangan segmen garis. Menemukan apakah garis berpotongan dengan algoritma garis sapuan.
Titik dalam poligon. Menguji apakah suatu titik terletak di dalam yang diberikan.
Persimpangan Ray / Pesawat.
* Persimpangan Line / Triangle. * Persimpangan khusus dari Ray / Plane.
Poligonisasi permukaan implisit. Perkiraan permukaan implisit dengan representasi poligonal.
Triangulasi.Metode untuk mengevaluasi jarak ke titik dari sudut ke titik lain, yang jaraknya diketahui.
Grafik
Teknologi Pelacak Permukaan 3D. Proses untuk menambahkan gambar di dinding dalam video sementara permukaan yang tersembunyi diperhitungkan.
Bellman-Ford. Menghitung jalur terpendek dalam grafik berbobot (di mana beberapa bobot tepi mungkin negatif).
Algoritma Dijkstra. Menghitung jalur terpendek dalam grafik dengan bobot tepi non-negatif.
Metode perturbasi. Algoritma yang menghitung jalur terpendek lokal dalam grafik.
Floyd-Warshall. Memecahkan masalah semua pasangan jalur terpendek dalam grafik tertimbang yang diarahkan.
Pencarian siklus Floyd. Menemukan siklus di iterasi.
Johnson. Algoritma jalur terpendek semua pasangan dalam grafik berarah jarang.
Kruskal.Menemukan pohon rentang minimum untuk grafik.
Prim. Menemukan pohon rentang minimum untuk grafik. Juga disebut algoritma DJP, Jarník atau Prim – Jarník.
* Boruvka. * Menemukan pohon rentang minimum untuk grafik.
Ford-Fulkerson. Menghitung aliran maksimum dalam grafik.
Edmonds-Karp. Implementasi Ford-Fulkerson.
Switch Spanning Minimal Nonblocking. Untuk pertukaran telepon.
Woodhouse-Sharp. Menemukan pohon rentang minimum untuk grafik.
Berbasis musim semi. Algoritma untuk menggambar grafik.
Hongaria. Algoritma untuk menemukan pasangan yang cocok.
Algoritma pewarnaan. Algoritma pewarnaan grafik.
Tetangga terdekat.Temukan tetangga terdekat.
Jenis topologi. Urutkan grafik asiklik terarah sedemikian rupa sehingga setiap node muncul sebelum semua node yang memiliki tepi (sesuai dengan arah).
Algoritma nenek moyang paling umum yang tidak umum dari Tarjan. Hitung leluhur umum terendah untuk pasang node di pohon.
Grafik
Algoritma garis Bresenham. Menggunakan variabel keputusan untuk memplot garis lurus antara 2 titik yang ditentukan.
Lansekap Gambar pemandangan 3D.
* Algoritma garis DDA. * Menggunakan matematika titik-mengambang untuk memplot garis lurus antara 2 titik yang ditentukan.
Isi banjir. Mengisi wilayah yang terhubung dengan warna.
Pemulihan Gambar. Kembalikan foto, tingkatkan gambar.
Algoritma garis Xiaolin Wu. Antialiasing garis.
Algoritma Painter. Mendeteksi bagian yang terlihat dari pemandangan 3 dimensi.
Ray tracing. Render gambar yang realistis.
Phong shading. Model iluminasi dan metode interpolasi dalam grafik komputer 3D.
Gouraud shading.Mensimulasikan efek cahaya dan warna yang berbeda di seluruh permukaan objek 3D.
Render pemindaian. Buat gambar dengan memindahkan garis imajiner.
Penerangan global. Mempertimbangkan penerangan dan refleksi langsung dari objek lain.
Interpolasi. Membangun titik data baru seperti zoom digital.
Resintesis. Hapus objek pada foto dan bangun kembali latar yang Digunakan oleh Photoshop dan The Gimp. Tutorial resynthesizer.
Algoritme mencegat-lereng. Ini adalah implementasi dari rumus slope-intercept untuk menggambar garis.
Interpolasi spline. Mengurangi kesalahan dengan fenomena Runge.
Teknologi Pelacak Permukaan 3D. Menambahkan gambar atau video di dinding dalam video, permukaan yang tersembunyi dipertimbangkan.
Daftar, susunan, dan pohon
Mencari
Pencarian kamus. Lihat pencarian prediktif.
Algoritma seleksi. Menemukan item terbesar ke-10 dalam daftar.
Algoritma pencarian biner. Temukan item dalam daftar yang disortir.
Pencarian luas pertama. Melintasi level grafik per level.
Kedalaman-pencarian pertama. Melintasi cabang grafik menurut cabang.
Pencarian terbaik-pertama. Melintasi grafik dalam urutan yang mungkin penting menggunakan antrian prioritas.
Sebuah pohon pencarian. * Kasus khusus dari pencari terbaik-pertama yang menggunakan heuristik untuk meningkatkan kecepatan.
Pencarian seragam biaya. Pencarian pohon yang menemukan rute biaya terendah di mana biaya bervariasi.
Pencarian prediktif.Biner seperti pencarian yang merupakan faktor dalam besarnya istilah pencarian versus nilai tinggi dan rendah dalam pencarian.
Meja hash. Kaitkan kunci ke item dalam koleksi yang tidak disortir, untuk mengambilnya dalam waktu linier.
Pencarian terinterpolasi. Lihat pencarian prediktif.
Penyortiran
Jenis pohon biner. Semacam pohon biner, tambahan, mirip dengan jenis penyisipan.
Bogosort. Jenis kartu meja yang acak dan tidak efisien.
Semacam gelembung. Untuk setiap pasangan indeks, tukar item jika rusak.
Semacam ember. Membagi daftar dalam ember dan mengurutkannya secara individual. Menggeneralisasi semacam pigeonhole.
Sortir koktail (atau dua arah gelembung, shaker, riak, antar-jemput, semacam happy hour). Variasi jenis gelembung yang mengurutkan di kedua arah masing-masing melewati daftar.
Semacam sisir. Variasi efisien dari semacam gelembung yang menghilangkan "kura-kura", nilai-nilai kecil di dekat akhir daftar dan memanfaatkan celah antara nilai-nilai.
Jenis penghitungan.Ini menggunakan rentang angka dalam daftar A untuk membuat larik B dengan panjang ini. Indeks dalam B digunakan untuk menghitung berapa banyak elemen dalam A yang memiliki nilai kurang dari i.
Semacam Gnome. Mirip dengan jenis penyisipan kecuali bahwa memindahkan elemen ke tempat yang tepat dilakukan dengan serangkaian swap, seperti dalam bubble sort.
Heapsort. Konversikan daftar menjadi tumpukan, terus menghapus elemen terbesar dari tumpukan dan menambahkannya ke akhir daftar.
Jenis penyisipan. Tentukan di mana item saat ini berada dalam daftar yang diurutkan, dan masukkan di sana.
Introsort. Atau semacam introspektif. Itu dimulai dalam quicksort dan beralih ke heapsort pada tingkat rekursi tertentu.
Gabungkan semacam.Urutkan bagian pertama dan kedua dari daftar secara terpisah, lalu gabungkan daftar yang diurutkan.
Semacam pancake. Membalikkan elemen beberapa awalan suatu urutan.
Pigeonhole sort. Isi array kosong dengan semua elemen array yang akan diurutkan, secara berurutan.
Semacam tukang pos. Varian hierarki jenis bucket, digunakan oleh kantor pos.
Quicksort. Bagilah daftar menjadi dua, dengan semua item pada daftar pertama datang sebelum semua item pada daftar kedua .; lalu urutkan dua daftar. Seringkali metode pilihan.
Jenis radix. Mengurutkan kunci yang terkait dengan item, atau bilangan bulat dengan memproses digit.
Sortir seleksi. Pilih elemen terkecil dari yang tersisa, tambahkan ke akhir daftar yang diurutkan.
Semacam shell.Meningkatkan penyisipan sortir dengan menggunakan celah antar nilai.
Smoothsort. Lihat heapsort.
Stochastic sort. Lihat bogosort.
dan masih banyak lagi...