Apakah yang dimaksud dengan algoritme?
Algoritme
Analisis dan kajian algoritme adalah bidang dari ilmu komputer, dan biasanya dilakukan secara abstrak tanpa menggunakan bahasa pemrograman tertentu atau implementasi.
Dalam artian, analisis algoritme mirip dengan bidang matematika lainnya yang mana fokus pada properti yang mendasari algoritme dan bukan pada implementasi tertentu.
Biasanya pseudokode digunakan pada analisis karena merupakan representasi paling umum dan sederhana.
Namun, pada akhirnya, kebanyakan algoritme diimplementasikan di perangkat keras / lunak tertentu dan efisiensi algoritmik mereka akhirnya diuji menggunakan kode yang sebenarnya.
Untuk solusi dari sebuah masalah, efisiensi dari algoritme tertentu mungkin tidak terlalu berpengaruh (kecuali n sangat besar) tetapi bagi algoritme yang dirancang untuk kecepatan interaktif, komersial, atau penggunaan ilmiah jangka panjang ia bisa saja kritikal.
Meningkatkan n dari kecil ke n yang besar biasanya menunjukan ketak efisienan algoritme yang tidak berbahaya.
Algoritme
Beberapa tahun kemudian, Turing mengembangkan analisanya (tesis, secara definisi) dengan ekspresi kuat berikut:
Walau sangat mudah menangkap ide ini, namun ia membutuhkan beberapa definisi matematikan terbatas yang bisa diekspresikan . . . [dia mendiskusikan sejarah dari definisi seperti di atas dengan menghormati Godel, Herbrand, Kleen, Church, Turing dan Post] ... Kita mungkin gunakan pernyataan tersebut secara harfiah, memahami murni dengan proses mekanis yang mana dapat dilakukan oleh sebuah mesin. Memungkinkan untuk memberikan deskripsi matematis, dalam beberapa bentuk normal, dari struktur mesin tersebut. Perkembangan dari ide ini mengarah pada definisi penulis dari sebuah fungsi yang dapat dihitung, dan untuk mengidentifikasi komputibilitas † dengan penghitungan yang efektif . . . .
Authentication Center
Semua algoritme autentikasi dan parameter-parameternya disimpan di AuC. AuC menyediakan parameter-parameter untuk HLR atau VLR yang diperlukan untuk mengautentikasi identitas pengguna. AuC mengetahui algoritme yang mana dan paremeter yang harus dipakai untuk pengguna tertentu. SIM Card yang diberikan kepada pengguna berisi algoritme dan parameter yang sama dengan yang ada pada AuC
Algoritme semut
Algoritme semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik melalui grafik. Algoritme ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan.
Algoritme Euklidean
Euklid pada mulanya merumuskan masalah ini secara geometri, sebagai masalah untuk mencari "satuan" yang dapat dipakai untuk panjang dari dua buah garis, dan algoritmanya berlangsung dengan mengulangi pengurangan dari sisi yang lebih pendek dari sisi yang lebih panjang. Implementasi ini sama dengan implementasi berikut ini, yang cukup tidak efisien dibandingkan dengan cara yang telah dijelaskan di atas:
Sistem aksioma
Sistem aksioma adalah sistem penerapan dalam matematika dari berbagai metode logika atas sekelompok unsur, relasi, dan operasi. Dalam proses penalaran matematika, suatu rumus (teorema) matematika terdiri dari beberapa hipotesis dan kesimpulan.
Pencarian biner
Pencarian biner adalah sebuah algoritme logaritmik dan bekerja dalam waktu O(log n). Secara khusus, formula_1 pengulangan yang diperlukan untuk menghasilkan jawaban. Hal ini dianggap lebih cepat dibandingkan sebuah pencarian linear. Pencarian biner dapat diimplementasikan dengan rekursi atau iterasi, seperti yang terlihat di atas, walaupun pada kebanyakan bahasa pemrograman akan lebih elegan bila dinyatakan secara rekursif.
Algoritme seleksi
Satu algoritme seleksi yang sederhana dan digunakan secara luas adalah memanfaatkan algoritme pengurutan pada list, kemudian mengekstrak elemen ke-"k". Ini adalah contoh reduksi satu permasalahan ke dalam permasalahan lain. Hal ini bermanfaat ketika kita ingin melakukan banyak seleksi terhadap sebuah list tunggal, dimana kasus ini membutuhkan hanya satu operasi pengurutan di awal yang membutuhkan waktu yang lama ("expensive"), yang diikuti oleh banyak operasi ekstraksi yang sebentar ("Cheap"). Ketika kita hanya ingin melakukan satu seleksi, atau ketika kita ingin selalu mengubah list di antara tiap seleksi, metode ini dapat jadi lebih lama ("costly"), biasanya membutuhkan paling sedikit O("n" log "n") waktu, dimana "n" adalah panjang dari list.
Algoritme Boyer-Moore
Tabel untuk penggeseran bad-character dan good-suffix dapat dihitung dengan kompleksitas waktu dan ruang sebesar O(n + σ) dengan σ adalah besar ruang alfabet. Sedangkan pada fase pencarian, algoritme ini membutuhkan waktu sebesar O(mn), pada kasus terburuk, algoritme ini akan melakukan 3n pencocokkan karakter, namun pada performa terbaiknya algoritme ini hanya akan melakukan O(m/n) pencocokkan.
PageRank
Algoritme awal
Pemelajaran mesin
Pemelajaran mesin, cabang dari kecerdasan buatan, adalah disiplin ilmu yang mencakup perancangan dan pengembangan algoritme yang memungkinkan komputer untuk mengembangkan perilaku yang didasarkan pada data empiris, seperti dari sensor data basis data. Sistem pembelajar dapat memanfaatkan contoh (data) untuk menangkap ciri yang diperlukan dari probabilitas yang mendasarinya (yang tidak diketahui). Data dapat dilihat sebagai contoh yang menggambarkan hubungan antara variabel yang diamati. Fokus besar penelitian pemelajaran mesin adalah bagaimana mengenali secara otomatis pola kompleks dan membuat keputusan cerdas berdasarkan data. Kesukarannya terjadi karena himpunan semua peri laku yang mungkin, dari semua masukan yang dimungkinkan, terlalu besar untuk diliput oleh himpunan contoh pengamatan (data pelatihan). Karena itu pembelajar harus merampatkan (generalisasi) perilaku dari contoh yang ada untuk menghasilkan keluaran yang berguna dalam kasus-kasus baru.
Quicksort
Kebenaran dari keseluruhan algortima dapat dibuktikan dengan penyederhanaan fakta: untuk elemen nol atau satu, algoritme tidak akan mengubah data; untuk jumlah data yang lebih besar, algoritme akan menghasilkan dua bagian, elemen yang kurang dari pivot dan elemen yang lebih besar dari nya, data ini sendiri akan diurutkan secara hipotesis rekursif.
Gelembung tersaring
Bagaimana gelembung dan algoritme filter bekerja sesuai dengan Studi Wall Street Journal adalah, "50 situs Internet teratas menginstal 64 cookie dan lacak pelacakan data atau pelacakan algoritme data yang disebutkan di atas." Google secara khusus memiliki 57 algoritme untuk tujuan menyesuaikan pencarian Anda. Misalnya, mencari kata seperti "depresi" di Dictionary.com memungkinkan situs memasang lebih dari 200 algoritme pelacakan di komputer Anda sehingga situs web dapat menargetkan Anda dengan antidepresan.
Algoritme
Biasanya, bila sebuah algoritme dihubungkan dengan pengolahan informasi, data dibaca dari sumber masukan, ditulis ke perangkat keluaran, dan/atau disimpan untuk pengolahan selanjutnya.
Data simpanan dianggap sebagai bagian dari keadaan internal dari entitas yang melakukan algoritme.
Pada praktiknya, keadaan tersebut disimpan pada satu atau lebih struktur data.
Algoritme Ostrich
Pendekatan Hybrid menggunakan algoritme Ostrich adalah menentukan bahwa kasus sangat jarang tidak terjadi, dan kemudian beralih dari algoritme lain yang lebih kompleks. Trade-off di sini adalah bahwa jika keadaan berubah atau belum ditemukan, masalah langka dapat kembali terjadi.
Pengolahan citra
Berikut ini adalah algoritme yang biasa dipakai dalam pengolahan citra. Algoritme dibawah ini dibagi menjadi beberapa kategori berdasarkan pendekatan yang dilakukan dalam memanipulasi citra asli.
Resep masakan
Resep masakan adalah suatu susunan instruksi atau algoritme yang menunjukkan cara membuat suatu masakan.
Masalah jarak terpendek
Jika merepresentasikan mesin abstrak nondeterministik dengan graf dimana busur dideskripsikan sebagai keadaan dan node dideskripsikan transisi yang mungkin, algoritme jarak terpendek dapat digunakan untuk mencari sekuens optimal dari berbagai pilihan untuk mencapai keadaan yang dituju, atau untuk mendirikan batas bawah dari waktu yang dibutuhkan untuk mencapai keadaan yang diberikan. Sebagai contoh, jika busur merepresentasikan keadaan dari puzzle seperti kubik rubik dan tiap node yang dituju berhubungan ke pergerakan tunggal atau belokan, algoritme jarak terpendek dapat digunakan untuk mencari solusi yang menggunakan pergerakan minimum yang memungkinkan.
Algoritme
Algoritme sangat penting bagi cara komputer mengolah data.
Banyak program komputer mengandung algoritme memberikan rincian pada instruksi khusus yang komputer harus lakukan (dengan urutan tertentu) untuk menjalankan pekerjaan tertentu, seperti menghitung gaji karyawan atau mencetak kartu rapor siswa.
Maka, sebuah algoritme bisa dianggap sebagai urutan operasi yang bisa disimulasikan oleh sebuah sistem Turing-lengkap.
Penulis yang mendukung tesis ini termasuk Minsky (1967), Savage (1987), dan Gurevich (2000):
Algoritme Euklidean
Dengan mencatat hasil bagi (yang merupakan bilangan bulat) selama menjalankan algoritme,
kita juga dapat menentukan bilangan bulat "p" dan "q" di mana "ap" + "bq" = fpb("a", "b"). Hal ini dikenal sebagai Ekstensi Algoritme Euklidean.
Algoritme penyortiran
Algoritme penyortiran digunakan pada Ilmu Komputer sering diklasifikasikan dengan:Algoritme pembanding yang stabil menjaga urutan relatif dari rekord dengan indeks yang sama. (Indeks merupakan porsi dari rekors yang menjadi basis dari penyortiran; yang mungkin ataupun tidak termasuk dalam rekord tersebut.) Jika seluruh indeks berbeda maka perbedaan ini tidak dibutuhkan. Tetapi jika terdapat indeks yang sama, maka algoritme sorting itu stabil walaupun terdapat dua rekord (misalkan R dan S) dengan indeks yang sama, dan R muncul sebelum S pada list aslinya, kemudian R akan selalu muncul sebelum S pada list yang terurut.
Ketika elemen yang sama tak dapat dibedakan, seperti dengan integer, atau secara umumnya, setiap data dimana seluruh elemen ialah nilai, tingkat kestabilannya tidak dipermasalahkan. Walaupun, asumsikan bahwa setiap angka yang ganda diurutkan berdasarkan komponen pertama mereka:
Algoritme
Salah satu dari algoritme sederhana adalah menemukan bilangan terbesar dalam sebuah deretan angka (tak berurut).
Solusinya membutuhkan pemeriksaan setiap angka dalam deret, tetapi hanya sekali.
Dari hal ini munculah algoritme sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Komputasi
Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritme. Hal ini ialah apa yang disebut dengan "teori komputasi", suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.
Muḥammad bin Mūsā al-Khawārizmī
Kontribusinya tak hanya berdampak besar pada matematika, tapi juga dalam kebahasaan. Kata "aljabar" berasal dari kata al-Jabr, satu dari dua operasi dalam matematika untuk menyelesaikan notasi kuadrat, yang tercantum dalam bukunya. Kata algorisme dan algoritme diambil dari kata "algorismi", Latinisasi dari namanya. Namanya juga di serap dalam bahasa Spanyol, "guarismo", dan dalam bahasa Portugis, "algarismo" bermakna digit.
Algoritme
Lovelace dikreditkan sebagai yang pertama menciptakan algoritme yang ditujukan untuk diproses di komputer—motor analitis Babbage, perangkat pertama yang dianggap komputer Turing-sempurna sebenarnya bukan hanya sebuah kalkulator—dan terkadang dikenal "programmer pertama dalam sejarah", walaupun implementasi penuh dari perangkat Babbage kedua tidak terealisasi sampai beberapa dekade setelah masanya.
Radio digital
CODEC algoritme sangat membantu konsep ini dengan memisahkan dan tidak memancarkan suara-suara yang tidak diperlukan tanpa mengurangi kualitas suara audio yang telah disandikan ("decode") menjadi informasi analog pada pesawat penerima. Proses pengurangan bit ini dikenal dengan istilah kompresi. Kompresi akan mengurangi sinyal yang masuk menjadi komponen-komponen penting sedemikian rupa yang berkibat pada berkurangnya lebar pita saluran transmisi. Kompresi sinyal audio ini menjadi sangat penting untuk mengurangi lebar pita transmisi siaran digital. Beberapa jenis kompresi algoritme sistem pengolahan sinyal audio secara digital yang kita kenal adalah AAC, PAC, MP-3 atau HDC. Ini semua merupakan nama dagang dari sistem kompresi informasi audio digital dan untuk menyatakan hak cipta intelektual dan sekaligus untuk membedakan masing-masing cara kodefikasi algoritme di antara beberapa sistem tadi. Dengan menggunakan HD-Radio secara digital sinyal yang telah dimodulasikan pada frekuensi yang sama dengan frekuensi analog yang ada.
Minimax
Algoritme minimax merupakan basis dari semua permainan berbasis AI seperti permainan catur misalnya. AI permainan catur tentunya sudah sangat terkenal dimana AI tersebut bahkan dapat mengalahkan juara dunia sekalipun. Pada algoritme minimax, pengecekan akan seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon permainan yang berisi semua kemungkinan tersebut. Tentunya dibutuhkan resource yang berskala besar untuk menangani komputasi pencarian pohon solusi tersebut berhubung kombinasi kemungkinan untuk sebuah permainan catur pada setiap geraknya sangat banyak sekali.
Keuntungan yang didapat dengan menggunakan algoritme minimax yaitu algoritme minimax mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan yang terbaik karena algoritme minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan akan dihitung dengan algoritme yang sama dan seterusnya. Ini berarti, pada langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer itu sendiri mendapatkan keuntungan maksimum.
Dalam penentuan keputusan tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heurisitic untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Biasanya pada permainan tic tac toe ini digunakan nilai 1,0,-1 untuk mewakilkan hasil akhir permainan berupa menang, seri, dan kalah. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristic yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer.
Algoritme
Santos-Lang mengganti nama deontologikal dan consequensialis menjadi kelas "institusional" dan "negosiator" dengan tujuan untuk menghindari implikasi bahwa semua teori-teori etika deontologikal dan consequensialis bisa diimplementasikan sebagai algoritme, dan membagi kelas bottom-up menjadi "pengganggu" (algoritme yang tidak terprediksi karena menggunakan generator pengacakan) lawan "relasional" (algoritme yang tidak terprediksi karena efek jaringan).
Seorang mutator dalam komputasi evolusioner bisa menjadi contoh dari pengganggu, sementara kelas 3 atau 4 dari otomata sellular adalah contoh dari mesin relasional.
Santos-Lang mencatat bahwa algoritme terkadang memiliki subkomponen dari tipe lainnya.
Sebagai contohnya, negosiator perdagangan saham bisa mengimplementasikan sebuah algoritme genetik, dan memiliki mutator pengganggu, dan mutator bisa memiliki subkomponen institusional dan relasional, semua komputasi adalah relasional pada tingkat di jajaran kimiawi (Santos-Lang 2014).
Diagram alir
Flowchart atau diagram alir adalah sebuah jenis diagram yang mewakili algoritme, alir kerja atau proses, yang menampilkan langkah-langkah dalam bentuk simbol-simbol grafis, dan urutannya dihubungkan dengan panah. Diagram ini mewakili ilustrasi atau penggambaran penyelesaian masalah. Diagram alir digunakan untuk menganalisa, mendesain, mendokumentasi atau memanajemen sebuah proses atau program di berbagai bidang.
Algoritme
'Algoritme' muncul dari 'Algoritmi', bentuk Latin dari al-Khwarizmi, matematikawan, ahli astronomi, dan ahli geografi dari Persia.
Algoritme
Kata algoritme datang dari nama matematikawan Persia abad ke-9 Abu Abdullah Muhammad ibnu Musa Al-Khwarizmi, yang hasil kerjanya dibangun dari matematikawan India abad ke-7 Brahmagupta.
Kata algorisma awalnya mengacu hanya pada aturan-aturan dalam melakukan aritmetika menggunakan bilangan Hindu-Arab namun berkembang lewat penerjemahan Latin Eropa dari nama Al-Khwarizmi menjadi algoritme pada abad ke-18.
Penggunaan kata tersebut berkembang mengikutkan semua prosedur untuk menyelesaikan masalah atau melakukan unit kegiatan.
Divide and Conquer
Di dalam ilmu komputer, algoritme divide and conquer merupakan algoritme yang sangat populer. Prinsip dari algoritme ini adalah memecah-mecah masalah yang ada menjadi beberapa bagian kecil sehingga lebih mudah untuk diselesaikan.
Algoritme
Walaupun "algorism"-nya al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmetika menggunakan bilangan Hindu-Arab dan solusi sistematis dan persamaan kuadrat, sebagian formalisasi yang nantinya menjadi "algoritme" modern dimulai dengan usaha untuk memecahkan permasalahan keputusan ("Entscheidungsproblem") yang diajukan oleh David Hilbert pada tahun 1928.
Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "penghitungan efektif"
Algoritme
Kebanyakan algoritme ditujukan untuk diimplementasikan sebagai program komputer.
Namun, algoritme juga diimplementasikan dengan tujuan lain, seperti dalam jaringan saraf biologis (sebagai contohnya, otak manusia yang mengimplementasikan aritmetika atau sebuah serangga yang melihat makanan), dalam sirkuit elektris, atau dalam sebuah perangkat mekanis.
Algoritme pencarian
Sebuah algoritme pencarian "uninformed" adalah algoritme yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritme tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat digunakan pada lingkup permasalahan yang luas, hal ini berkat abstraksi. Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian "uninformed" (khususnya untuk pohon) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian "informed" yang dapat melakukannya.
Twofish
Tujuan dari perancangan Twofish yang selaras dengan kriteria NIST untuk AES adalah untuk membuat suatu algoritme kriptografi yang efisien dan portabel, rancangan yang fleksibel yang dapat menerima panjang kunci tambahan sehingga dapat diterapkan pada platform dan aplikasi yang sangat bervariatif serta cocok untuk cipher aliran, fungsi hash, dan MAC, serta rancangan yang sederhana agar memudahkan proses analisis dan implementasi algoritme.
Algoritme
"Elegan (kepadatan) lawan kebaikan (kecepatan)": Dengan hanya 6 instruksi dasar, "Elegan" adalah jelas pemenang dibandingkan dengan instruksi "inelegan" dengan 13 instruksi.
Namun, "inelegan" lebih "cepat" (ia sampai pada HALT dengan langkah lebih sedikit).
Analisis algoritme
Logaritma
Logaritma adalah operasi matematika yang merupakan kebalikan (atau invers) dari eksponen atau pemangkatan.
Tim Olimpiade Komputer Indonesia
Materi utama yang diujikan pada olimpiade informatika (baik pada seleksi TOKI, maupun pada ajang IOI dan APIO) adalah pemrograman, struktur data, dan algoritme.
Kimia komputasi
Dalam kimia teori, kimiawan dan fisikawan secara bersama mengembangkan algoritme dan program komputer untuk memungkinkan peramalan sifat-sifat atom dan molekul, dan/atau lintasan reaksi untuk reaksi kimia, serta simulasi sistem makroskopis. Kimiawan komputasi kebanyakan “sekadar” menggunakan program komputer dan metodologi yang ada dan menerapkannya untuk permasalahan kimia tertentu. Di antara sebagian besar waktu yang digunakan untuk hal tersebut, kimiawan komputasi juga dapat terlibat dalam pengembangan algoritme baru, maupun pemilihan teori kimia yang sesuai, agar diperoleh proses komputasi yang paling efisien dan akurat.
Algoritme
Sangat penting untuk mengetahui berapa banyak sumber tertentu (seperti waktu dan tempat penyimpanan) secara teoretis diperlukan untuk sebuah algoritme.
Metode-metode telah dikembangkan untuk analisis algoritme untuk mendapatkan jawaban kuantitatif (estimasi);
sebagai contohnya, algoritme pengurutan di atas memerlukan waktu O("n"), menggunakan notasi O besar dengan "n" sebagai panjang deret (yang akan diurut).
Setiap saat algoritme hanya perlu mengingat dua nilai: nilai terbesar yang ditemukan, dan posisinya sekarang dideretan input.
Oleh karena itu dikatakan memiliki kebutuhan ruang "O(1)", jika ruang yang dibutuhkan untuk menyimpan angka masukan tidak dihitung, atau O("n") jika dihitung.
Algoritme penyortiran
Dalam Ilmu Komputer, Algoritme penyortiran merupakan algoritme yang menempatkan elemen daftar pada urutan tertentu. Urutan yang paling sering digunakan ialah urutan numerik dan urutan leksikografis. Penyortiran yang efisien sangat dibutuhkan untuk mengoptimisasi penggunaan dari algoritme lain seperti algoritme pencarian dan algoritme penggabungan yang membutuhkan data input di dalam daftar terurut, yang juga sering digunakan untuk menganonikalisasi data dan menghasilkan output yang dapat dibaca manusia. Untuk lebih lanjutnya, output harus melengkapi dua syarat ini:Sejak permulaan komputasi, masalah pengurutan ini telah menarik penelitian yang serius, mungkin dikarenakan kerumitan dari penyelesaian secara efisien disamping mudah, dan dengan statemen yang kita mengerti. Sebagai contoh, bubble sort pertama sekali ditemukan pada tahun 1956. Walaupun banyak yang memperkirakan masalahnya telah terselesaikan, banyak algoritme penyortiran baru yang masih ditemukan samap sekarang (sebagai contoh, Library Sort yang baru dipublikasikan pertama sekali pada tahun 2006). Algoritme penyortiran sangat umum pada setiap kelas pengenalan bidang Ilmu Komputer, dimana banyaknya algoritme untuk masalah ini menyediakan pengenalan awal mengenai banyaknya konsep algoritme inti, seperti Notasi Big O, Algoritme Pembagi, Struktur Data, Algoritme Acak, Analisa Best, Worst, Average Case, Running Time Calculation, dan Batas Atas dan Bawah.
Algoritme genetik
Algoritme genetik adalah teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritme genetik adalah kelas khusus dari algoritme evolusioner dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi (atau "crossover")
Algoritme
Karya dari Geometer Yunani kuno (algoritme Euklid), matematikawan India Brahmagupta, dan matematikawan Persia Al-Khwarizmi (yang darinya isitlah "algorism" dan "algoritme" diturunkan), dan matematikawan Eropa Barat memuncak dalam notasi Leibniz dari rasiosinator kalkulus (sekitar 1680-an):
Florentin Smarandache
Dia mendisain sebuah algoritme untuk Unification of Fusion Theories (UFT) dan aturan-aturan yang dipakai dalam kedokteran, robot dan militer.
Pemelajaran mesin
Pemelajaran mesin menjaganya agar tetap sederhana, sebuah algoritme dikembangkan untuk mencatat perubahan dalam data dan berevolusi dalam desain itu untuk mengakomodasi temuan baru. Seperti diterapkan untuk analisis prediktif, fitur ini memiliki dampak luas mulai pada kegiatan yang biasanya dilakukan untuk mengembangkan, menguji, dan memperbaiki algoritme untuk tujuan tertentu.
Aplikasi untuk pemelajaran mesin termasuk:
Algoritme
Dalam matematika dan ilmu komputer, algoritme adalah prosedur langkah-demi-langkah untuk penghitungan.
Algoritme digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Algoritme Euklidean
Tidaklah sulit untuk membuktikan bahwa algoritme itu benar. Misalkan "a" dan "b" adalah bilangan yang FPB-nya akan ditentukan. Dan misalkan sisa dari pembagian dari "a" oleh "b" adalah "t".
Maka "a" = "qb" + "t" di mana "q" adalah hasil bagi (yang merupakan bilangan bulat) dari pembagian tersebut. Sekarang, setiap pembagi dari "a" dan "b" juga dapat habis membagi "t" (karena "t" dapat ditulis sebagai "t" = "a" − "qb"); Dengan cara yang sama, setiap pembagi dari "b" dan "t" juga akan habis membagi "a". Maka faktor persekutuan terbesar dari "a" dan "b" adalah sama dengan FPB dari "b" dan "t". Oleh karena itu, kita cukup meneruskan proses tadi dengan "b" dan "t" saja. Karena "t" lebih kecil dalam nilai mutlak dari "b", kita akan mencapai "t" = 0 setelah sejumlah langkah.
Algoritme Dijkstra
Algoritme Dijkstra, (dinamai menurut penemunya, seorang ilmuwan komputer, Edsger Dijkstra), adalah sebuah algoritme rakus ("greedy algorithm") yang dipakai dalam memecahkan permasalahan jarak terpendek ("shortest path problem") untuk sebuah graf berarah ("directed graph") dengan bobot-bobot sisi ("edge weights") yang bernilai tak-negatif.
Algoritme
Karena sebuah algoritme adalah kumpulan dari langkah-langkah yang tepat, urutan dari komputasi selalu penting bagi berfungsinya algoritme.
Instruksi biasanya diasumsikan terdaftar secara eksplisit, dan dijelaskan dimulai "dari atas" dan terus "ke bawah", sebuah gambaran yang dijelaskan secara formal oleh "alur kontrol"
Pi
Perkembangan lebih jauh sekitar tahun 1980 kemudian mempercepat kemampuan komputasi . Pertama, penemuan algoritme iteratif baru yang lebih cepat daripada deret tak terhingga; dan kedua, penemuan algoritme perkalian cepat yang mampu mengalikan bilangan besar dengan sangat cepat. Algoritme ini sangat penting karena waktu yang dihabiskan oleh komputasi komputer kebanyakan berkutat pada perkalian. Algoritme seperti ini contohnya algoritme Karatsuba, perkalian Toom-Cook, dan metode berbasis transformasi Fourier.
PageRank
Salah satu algoritme lain yang dipublikasikanDari algoritme di atas dapat dilihat bahwa pagerank ditentukan untuk setiap halaman anda bukan keseluruhan situs web. Pagerank sebuah halaman ditentukan dari pagerank halaman yang mengacu kepadanya yang juga menjalani proses penentuan pagerank dengan cara yang sama, jadi proses ini akan berulang sampai ditemukan hasil yang tepat.
Penghitungan
Istilah ini dapat digunakan dalam berbagai konteks, dari kalkulasi aritmetika pasti menggunakan algoritme hingga heuristik samar untuk mengkalkulasi strategi dalam kompetisi atau kesempatan dari hubungan yang berhasil antara 2 orang.
Algoritme gabung
Algoritme urut gabung membagi tabel menjadi dua tabel yang sama besar. Masing-masing tabel diurutkan secara rekursif, dan kemudian digabungkan kembali untuk membentuk tabel yang terurut. Implementasi dasar dari algoritme urut gabung memakai tiga buah tabel, dua untuk menyimpan elemen dari tabel yang telah di bagi dua dan satu untuk menyimpan elemen yang telah terurut. Namun algoritme ini dapat juga dilakukan langsung pada dua tabel, sehingga menghemat ruang atau memori yang dibutuhkan.
Algoritme Prim
Algoritme Prim adalah sebuah algoritme dalam teori graf untuk mencari pohon rentang minimum untuk sebuah graf berbobot yang saling terhubung. Ini berarti bahwa sebuah himpunan bagian dari edge yang membentuk suatu pohon yang mengandung node, di mana bobot keseluruhan dari semua edge dalam pohon diminimalisasikan. Bila graf tersebut tidak terhubung, maka graf itu hanya memiliki satu pohon rentang minimum untuk satu dari komponen yang terhubung. Algoritme ini ditemukan pada 1930 oleh matematikawan Vojtěch Jarník dan kemudian secara terpisah oleh computer scientist Robert C. Prim pada 1957 dan ditemukan kembali oleh Dijkstra pada 1959. Karena itu algoritme ini sering dinamai algoritme DJP atau algoritme Jarnik.
Operasi biner
Dalam matematika, sebuah operasi biner pada himpunan adalah perhitungan yang menggabungkan dua elemen dari himpunan (disebut operan) untuk menghasilkan unsur lain yang ditetapkan. Secara lebih formal, sebuah operasi biner merupakan operasi dari arity dua yang dua domain dan satu kodomain adalah set yang sama. Contohnya termasuk aritmetika dasar operasi penjumlahan, pengurangan, perkalian dan pembagian. Contoh lain yang mudah ditemukan di daerah yang berbeda dari matematika, seperti penjumlahan vektor, perkalian matriks dan konjugasi dalam grup.
Algoritme pencarian
Ini adalah satu jenis pencarian yang memecahkan permasalahan pemenuhan kendala dimana, bukan dengan melihat sebuah jalur, solusinya adalah sebuah himpunan nilai yang diberikan pada sebuah himpunan peubah. Karena peubah-peubah dapat diproses dengan urutan apa saja, algoritme pencarian pohon biasa adalah tidak efisien. Metode pemecahan permasalahan kendala memuat pencarian kombinatorial dan lacak balik, keduanya mengambil keuntungan dari kebebasan yang diasosiasikan dengan permasalahan kendala.
Algoritme
DONE:
Algoritme
Untuk beberapa proses komputasi, algoritme harus ditentukan secara teliti: dijabarkan dengan cara ia bakal berlaku untuk semua kemungkinan yang dapat timbul.
Yaitu, setiap langkah tambahan harus secara sistematis dihadapi, kasus-per-kasus;
Kriteria bagi setiap kasus harus jelas (dan bisa dihitung).
Algoritme
Tidak ada manusia yang dapat menulis begitu cepat, atau begitu lama, atau begitu kecil ("kecil, dan lebih kecil tanpa batas ... anda mungkin mencoba menulis di atas molekul, atom, elektron") untuk mencatat semua anggota dari kumpulan bilangan tak terbatas dengan menuliskan namanya, bergantian, dalam suatu notasi.
Tapi manusia bisa melakukan sesuatu yang sama bergunanya, pada kasus kumpulan bilangan tak terbatas: Mereka dapat memberikan "instruksi jelas untuk menentukan anggota ke-n dari set", untuk "n" terbatas acak.
Instruksi tersebut diberikan secara eksplisit, dalam bentuk yang "dapat diikuti oleh mesin penghitung", atau oleh "manusia yang mampu melakukan hanya operasi-operasi dasar dengan simbol-simbol."
Algoritme dekker
Algoritme Dekker adalah algoritme yang menjabarkan dua atau lebih proses tentang mutual exclusion yang berbagi sumber yang sama tanpa adanya konflik.
Riset operasi
Riset operasi, atau disebut riset operasional di Eropa, adalah cabang interdisiplin dari matematika terapan dan sains formal yang menggunakan model-model—seperti model matematika, statistika, dan algoritme—untuk mendapatkan nilai optimal atau nyaris optimal pada sebuah masalah yang kompleks. Riset operasi biasanya digunakan untuk mencari nilai maksimal (profit, performa lini perakitan, hasil panen, bandwith dll) atau nilai minimal (kerugian, risiko, biaya, dll) dari sebuah fungsi objektif. Riset operasi bertujuan membantu manajemen mendapatkan tujuannya melalui proses ilmiah.
Waktu semu-polinomial
Dalam teori kompleksitas komputasional, algoritme numerik berjalan dalam waktu semu-polinomial jika waktu operasinya adalah polinomial dari nilai numerik data yang dimasukkan (bilangan bulat terbesar yang ada dalam data tersebut) — dan tidak harus dalam panjang dari data yang dimasukkan (jumlah bit yang dibutuhkan untuk mewakili panjangnya), yang merupakan kasus untuk algoritme waktu polinomial.
Enkripsi
Sebuah cipher adalah sebuah algoritme untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah "encipherment". Informasi yang asli disebut sebagai "plaintext", dan bentuk yang sudah dienkripsi disebut sebagai "chiphertext". Pesan "chipertext" berisi seluruh informasi dari pesan "plaintext", tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.
Algoritme
"Simbol dan aturan": Dengan cepat berkembangnya matematika dari George Boole (1847, 1854), Gottlob Frege (1897), dan Giuseppe Peano (1888-1889) mereduksi aritmetika menjadi serangkaian simbol dimanipulasi oleh aturan-aturan. "The Principles of arithmetic, presented by a new method"-nya Peano (1888) adalah "usaha pertama mengaksiomakan matematika dalam sebuah bahasa simbolik".
Tapi Heijenoort memberi pujian pada Frege (1879): Frege "merupakan karya tulis paling penting mengenai logika. ... yang mana kita lihat sebuah "'bahasa formula', yaitu sebuah "lingua characterica", sebuah bahasa ditulis dengan simbol-simbol khusus, "untuk berpikir murni", yaiut, bebas dari hiasan retorikal ... dibangun dari simbol-simbol tertentu yang dimanipulasi menurut aturan-aturan terbatas".
Menyortir spageti
Menyortir spageti merupakan sebuah algoritma untuk menyortir benda yang diperkenalkan oleh seorang matematikawan asal Kanada, Alexander Dewdney dalam kolomnya di majalah Scientific American. Algoritma ini mengurutkan benda yang membutuhkan ruang untuk menumpuk O(n) yang stabil. Hal ini membutuhkan prosesor paralel.
Olimpiade Internasional dalam Informatika
Kompetisi berlangsung selama dua hari untuk tes pemrograman komputer dan pemecahan masalah alam algoritmik. Untuk menangani masalah yang melibatkan data yang sangat banyak, tidak hanya diperlukan pemrogram, "tetapi juga pengkode yang kreatif, yang bisa memimpikan apa yang pemrogram perlu memberitahu komputer untuk melakukan sesuatu... bagian yang sulit bukanlah pemrograman, tetapi matematika di bawahnya." Siswa di IOI bersaing secara perseorangan, dengan jumlah sampai dengan empat siswa dari masing-masing negara peserta (dengan 84 negara pada tahun 2014). Siswa dalam tim nasional dipilih melalui kontes komputasi nasional, seperti Olimpiade Informatika Australia, Olimpiade Informatika Inggris, Olimpiade Komputasi India, Bundeswettbewerb Informatik (Jerman), dan Olimpiade Sains Nasional bidang Komputer (Indonesia).
Algoritme
Jarang seorang programer harus menulis "kode" dengan kumpulan instruksi terbatas.
Tapi Minsky memperlihatkan (sebagaimana Melzak dan Lambek) bahwa mesinnya adalah Turing komplet dengan hanya empat "tipe" instruksi utama: GOTO kondisional, GOTO tak bersyarat, penetapan/penggantian/substitusi, dan HALT.
"Simulasi dari sebuah algoritme: bahasa komputer (komputor)": Knuth menganjurkan pembaca bahwa "cara terbaik untuk belajar algoritme dalah mencobanya ... langsung ambil pulpen dan kertas dan bekerja lewat contoh".
Algoritme Prim
Dengan struktur data binary heap sederhana, algoritme Prim dapat ditunjukkan berjalan dalam waktu O("E"log "V"), di mana E adalah jumlah cabang dan V adalah jumlah node. Dengan Fibonacci heap, hal ini dapat ditekan menjadi O("E" + "V"log "V"), yang jauh lebih cepat bila grafnya cukup padat sehingga "E" adalah formula_1("V"log "V").
Algoritme
Salah satu cara mengklasifikasikan algoritme yaitu dengan cara implementasi.
Algoritme
"Deskripsi (Quasi-)formal:"
Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritme dalam pseudokode atau kode pijin:
Aritmetika dasar
Tidak ada digit (dan tidak ada kolom) yang belum dijumlahkan, sehingga algoritme ini selesai, dan hasilnya
Algoritme Ostrich
Dalam ilmu komputer, algoritme ostrich adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.
Pi
Algoritme iteratif digunakan secara meluas setelah tahun 1980 karena algoritme ini lebih cepat daripada algoritme deret tak terhingga. Manakala algoritme deret tak terhingga meningkatkan jumlah digit yang benar setiap suku, algoritme iteratif pada umumnya melipatgandakan jumlah digit yang benar pada setiap iterasi. Sebagai contohnya, algoritme Brent-Salamin menggandakan jumlah digit yang benar pada tiap iterasi. Pada tahun 1984, John dan Peter Borwein berhasil menemukan algoritme iteratif yang menggandaempatkan jumlah digit pada tiap iterasi; dan pada tahun 1987 berhasil menggandalimakan jumlah digit pada tiap iterasi. Metode iteratif digunakan oleh matematikawan Yasumasa Kanada untuk memecahkan beberapa rekor komputasi antara tahun 1995 sampai dengan tahun 2002. Konvergensi yang sangat cepat ini memiliki kelemahannya sendiri, yakni memerlukan memori komputer yang jauh lebih besar daripada yang diperlukan oleh deret tak terhingga.
Algoritme
Hanya beberapa "tipe" instruksi yang dibutuhkan untuk mengeksekusi algoritme—beberapa tes logika (GOTO bersyarat), GOTO tak bersyarat, penetapan (penggantian), dan pengurangan.
Algoritme
bahwa permasalahan keputusan tidak terpecahkan, definisi Emil Post tentang penghitungan efektif yaitu sebagai pekerja yang tanpa berpikir mengikuti suatu daftar instruksi untuk bergerak ke kiri atau kanan lewat sederetan ruangan dan bersamaan dengan itu bisa menandai atau menghapus kertas atau mengamati kertas dan membuat pilihan ya-tidak tentang instruksi selanjutnya.
K-means
K-means merupakan salah satu algoritme "clustering" . Tujuan algoritme ini
yaitu untuk membagi data menjadi beberapa kelompok. Algoritme ini menerima masukan berupa data tanpa label kelas. Hal ini berbeda dengan "supervised learning" yang menerima masukan berupa vektor (­"x­, y") , (­"x­, y") , …, (­"x­, y"), di mana "x "merupakan data dari suatu data pelatihan dan "y" merupakan label kelas untuk "x ".
Algoritme
atau "metode efektif";
Algoritme Strassen
Volker Strassen mempublikasikan algoritme Strassen tahun 1969. Meskipun algoritme ini hanya sedikit lebih cepat daripada algoritme standar untuk perkalian matriks, dialah yang pertama menjelaskan bahwa eliminasi Gauss adalah tidak optimal. Dalam tulisannya, dia memulai penelitian untuk melengkapi algoritme-algoritme yang lebih cepat seperti algoritme Winograd dari Shmuel Winograd pada 1980, dan yang lebih kompleks algoritme Coppersmith-Winograd dipublikasikan pada 1987.
Algoritme genetik
Sekali kita mendefinisikan representasi genetik dan fungsi kemampuan, algoritme genetik akan memproses inisialisasi populasi penyelesaian secara acak, dan memperbaikinya melalui aplikasi pengulangan dengan aplikasi operator-operator mutasi, persilangan, dan seleksi.
Algoritme
Berikut adalah kebetulan yang luar biasa dari dua orang yang tidak saling mengenal tetapi mendeskripsikan sebuah proses orang-sebagai-komputer mengerjakan perhitungan—dan mereka menghasilkan definisi yang mirip.
Urut gabung
Prinsip utama yang diimplementasikan pada algoritme urut gabung seringkali disebut sebagai "pecah-belah dan taklukkan" (bahasa Inggris: "divide and conquer"). Cara kerja algoritme urut gabung adalah membagi larik data yang diberikan menjadi dua bagian yang lebih kecil. Kedua larik yang baru tersebut kemudian akan diurutkan secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk larik baru sebagai hasil penggabungan dari dua buah larik sebelumnya. Menurut keefektifannya, alogaritma ini bekerja dengan tingkat keefektifan O(nlog(n)). Dalam bentuk pseudocode sederhana algoritme ini dapat dijabarkan sebagai berikut:
Algoritme
"Bisakah algoritme ditingkatkan?": Bila programmer sudah menilai sebuah program "cocok" dan "efektif"—yaitu, ia menghitung fungsi yang ditujukan oleh penulisnya—maka pertanyaannya menjadi, bisakah ditingkatkan?
Optimisasi mesin pencari
Versi awal algoritme pencarian didasarkan sepenuhnya pada informasi yang disediakan oleh webmaster melalui meta tag pada kode html situs web mereka. Meta tag menyediakan informasi tentang konten yang terkandung pada suatu halaman web dengan serangkaian kata kunci ("keyword"). Sebagian webmaster melakukan manipulasi dengan cara menuliskan katakunci yang tidak sesuai dengan konten situs yang sesungguhnya, sehingga mesin pencari salah menempatkan dan memeringkat situs tersebut. Hal ini menyebabkan hasil pencarian menjadi tidak akurat dan menimbulkan kerugian baik bagi mesin pencari maupun bagi pengguna internet yang mengharapkan informasi yang relevan dan berkualitas.
Algoritme Ostrich
Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.Ini adalah salah satu metode untuk menangani deadlock. Metode lainnya adalah: penghindaran ('s algoritme bankir), pencegahan, deteksi dan pemulihan.
Reverb (musik)
Parameter algorithm adalah model algoritme komputer untuk mensimulasikan reverb dalam ruang-ruang yang berbeda. Setiap paramter dari algorithm akan terdengar berbeda dari satu ke yang lainnya dan memiliki karakter unik masing-masing. Pilihan pada parameter algorithm yang umum seperti Hall, Church, Ambient, Plate.
Algoritme seleksi
Kasus terburuk algoritme linear untuk menemukan minimum atau maksimum adalah sangat jelas; kita menyimpan dua peubah, satu mengacu ke indeks dari elemen minimum/maksimum yang didapatkan sementara, dan satu lagi menyimpan nilainya. Bersamaan dengan kita memindai list tersebut, kita perbarui kedua peubah tersebut jika kita menemukan sebuah elemen yang sesuai:
Pemelajaran mesin
Algoritme dalam pemelajaran mesin dapat dikelompokkan berdasarkan masukan dan keluaran yang diharapkan dari algoritme.
Misalnya sebuah sistem yang dapat menebak umur seseorang berdasarkan foto orang tersebut. Sistem tersebut membutuhkan beberapa contoh, misalnya yang didapatkan dengan mengambil foto seseorang dan menanyakan umurnya (pemelajaran terarah). Akan tetapi, pada kenyataannya beberapa orang sering kali berbohong tentang umur mereka sehingga menimbulkan "noise" pada data. Oleh karena itu, digunakan juga pemelajaran tak terarah agar dapat saling menutupi kelemahan masing-masing, yaitu "noise" pada data dan ketiadaan contoh masukan-keluaran .
Adalah sebuah algoritme pemelajaran yang diterapkan pada agen cerdas agar ia dapat menyesuaikan dengan kondisi dilingkungannya, hal ini dicapai dengan cara memaksimalkan nilai dari
hadiah ‘"reward"’ yang dapat dicapai. Suatu hadiah didefinisikan sebuah tanggapan balik ‘"feedback"’ dari tindakan agen bahwa sesuatu baik terjadi .Sebagai contoh, sangatlah sulit untuk memrogram sebuah agen untuk menerbangkan sebuah helikopter, tetapi dengan memberikan beberapa nilai negatif untuk menabrak, bergoyang-goyang, serta melenceng dari jalur tujuan perlahan-lahan agen tersebut dapat belajar menerbangkan helikopter dengan lebih baik .
Pemrograman
Pemrograman adalah proses menulis, menguji dan memperbaiki ("debug"), dan memelihara kode yang membangun suatu program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Untuk melakukan pemrograman, diperlukan keterampilan dalam algoritme, logika, bahasa pemrograman, dan pada banyak kasus, pengetahuan-pengetahuan lain seperti matematika.
Kunci (kriptografi)
Dalam kriptografi, kunci adalah suatu informasi yang mengendalikan jalannya sebuah algoritme kriptografi. Dalam enkripsi, kunci memberikan cara khusus bagaimana suatu algoritme mentransformasikan teks terang ("plaintext") menjadi teks tersandi ("ciphertext"), ataupun proses sebaliknya (disebut dekripsi). Teks tersandi dapat diubah menjadi teks terang, jika sang pembaca mengetahui algoritme yang digunakan, dan memiliki kunci yang benar. Dengan kata lain, lunci bertindak sebagai suatu "password" dalam algoritme tersebut. Selain enkripsi, kunci juga digunakan pada algoritme kriptografi lainnya, seperti tanda tangan digital dan kode otentikasi pesan.
Algoritme
Pada akhir abad pertengahan, "algorismus", perubahan dari namanya, berarti "sistem bilangan desimal" yang masih merupakan arti dari kata Inggris modern algorism.
Pada abad ke-17 Prancis kata tersebut berubah, tetapi tidak maknanya, menjadi "algorithme".
Inggris mengadopsi Prancis setelahnya, tetapi tidak pada akhir abad ke-19 lah "Algorithm" mengambil makna dari kata Inggris masa sekarang.
Etimologi alternatif mengklaim asal mulanya dari istilah "algebra" (aljabar) dari makna abad pertengahan "aritmetika Arab" dan "arithmos" istilah Yunani untuk angka (yang secara harfiah berarti "bilangan Arab" atau "perhitungan Arab").
Karya algoritme Al-Kharizmi bukan berbentuk seperti pada masa modern sekarang tetapi sebagai tipe dari pengulangan kalkulus (disini disebutkan bahwa karya fundamentalnya yang dikenal sebagai algebra pada awalnya berjudul "Buku Ringkasan tentang Kalkulasi dengan Penyempurnaan dan Pengimbangan" menjelaskan tipe-tipe dari pengulangan perhitungan dan persamaan kuadrat).
Dalam makna tersebut, algoritima dikenal di Eropa jauh sebelum Al-Kharizmi.
Algoritme paling tua yang dikenal sekarang adalah Algoritme Euklid (lihat juga Pengembangan algoritme Euklid).
Sebelum ditemukan istilah "algorithm" orang Yunani menyebutnya "anthyphairesis" secara harfiah berarti anti-substraksi atau substraksi timbal-balik (untuk bacaan lebih lanjut disini dan ini.
Algoritme dikenal oleh orang Yunani berabad sebelum
Masalah Milenium
Pertanyaannya adalah apakah, untuk semua masalah algoritme dapat memverifikasi sebuah solusi yang diberikan cepat (yaitu, dalam waktu polinomial), algoritme juga dapat menemukan solusi yang cepat. Yang pertama menggambarkan kelas masalah disebut NP, sedangkan yang kedua menggambarkan P. Pertanyaannya adalah apakah atau tidak semua masalah di NP juga di P. Ini umumnya dianggap salah satu pertanyaan terbuka yang paling penting dalam matematika dan ilmu komputer teoretis karena memiliki konsekuensi yang luas dengan masalah lain dalam matematika, biologi, filsafat, dan kriptografi.
Algoritme Strassen
lalu
Algoritme pencarian
Algoritme pencarian pohon adalah jantung dari teknik-teknik pencarian. Algoritme tersebut mencari node dari pohon, terlepas apakah pohon tersebut eksplisit atau implisit (dibangkitkan saat pengerjaan). Prinsip dasarnya adalah sebuah node diambil dari sebuah struktur data, suksesornya diperiksa dan ditambahkan pada struktur data. Dengan memanipulasi struktur data, pohon ditelusuri dalam urutan yang berbeda-beda, ditelusuri dari satu tingkat ke tingkat berikutnya (pencarian Breadth-first) atau mengunjungi node pucuk terlebih dahulu kemudian lacak balik/"backtracking" (pencarian Depth-first). Contoh lain dari pencarian pohon antara lain pencarian iterative-deepening, pencarian berbatas kedalaman, pencarian dwiarah dan pencarian uniform-cost.
Algoritme
Algoritme adalah metode efektif diekspresikan sebagai rangkaian terbatas
dari instruksi-instruksi yang telah didefinisikan dengan baik
untuk menghitung sebuah fungsi.
Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong),
instruksi-instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat sejumlah urutan kondisi terbatas
yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran"
dan berhenti di kondisi akhir.
Transisi dari satu kondisi ke kondisi selanjutnya tidak harus deterministik;
beberapa algoritme, dikenal dengan algoritme pengacakan, menggunakan masukan acak.
Paten
Kebenaran matematika, termasuk yang tidak dapat dipatenkan. "Software" yang menerapkan algoritme juga tidak dapat dipatenkan kecuali terdapat aplikasi praktis (di Amerika Serikat) atau efek teknikalnya (di Eropa).
Penerjemahan berbantuan komputer
Penerjemahan komputer menggunakan algoritma, artinya komputer menerjemahkan berdasarkan rumus yang dibuat oleh pemrogram. Rumus ini didapatkan dari basis data berupa penerjemahan yang telah dilakukan oleh manusia. Dengan membandingkan lebih banyak hasil penerjemahan yang ada, maka komputer bisa memberikan hasil yang lebih akurat dengan pemelajaran mesin.
Kompleksitas Kolmogorov
Dalam teori informasi algoritmik (subbidang dari ilmu komputer dan matematika), Kompleksitas Kolmogorov dari sebuah objek (misalnya sepotong teks), adalah panjang dari program komputer terpendek (dalam bahasa pemrograman yang telah ditentukan) yang menghasilkan objek sebagai keluaran. Kompleksitas ini adalah ukuran dari perhitungan sumber daya yang dibutuhkan untuk menentukan objek, dan juga dikenal sebagai kompleksitas deskriptif "Kolmogorov - Chaitin", entropi algoritmik, atau kompleksitas ukuran program. Istilah ini dinamai sesuai Andrey Kolmogorov, yang pertama kali menerbitkan tulisan terkait subjek ini pada tahun 1963.
Kriptografi
Hingga zaman modern kriptografi mengacu hampir secara ekslusif pada "enkripsi", yang merupakan proses mengkonversikan informasi biasa menjadi teks yang tak dapat dipahami (disebut teks sandi). Deskripsi merupakan kebalikan, dengan kata lain, memindahkan teks sandi yang tidak dapat dibaca menjadi teks yang dapat dibaca. "sandi" atau ("cypher") merupakan sepasang algoritme yang menciptakan enkripsi dan membalikan dekripsi. Operasi yang lebih mendalam dari sandi diatur baik oleh algoritme dan pada setiap permintaan dekripsi dengan kunci. Kunci ini bersifat rahasia (yang biasanya diketahui hanya oleh orang yang berkomunikasi), dan biasanya terdiri dengan karakter string singkat, yang dibutuhkan untuk mendekripsi teks sandi. Sebelumnya dinamakan "kriptosistem" yang merupakan daftar teratur dari elemen-elemen teks terbatas, teks sandi terbatas, kunci terbatas, dan algoritme dekripsi dan enkripsi yang berkoresponden pada setiap kunci. Kunci sangat penting baik pada penggunaan secara teoretis maupun sebenarnya, di mana sandi tanpa kunci variabel dapat dengan mudah rusak dengan hanya pengetahuan yang digunakan dari sandi dan dengan kemungkinan tidak berguna (atau malam tidak produktif) untuk banyak tujuan. Secara historis, sandi sering digunakan secara langsung untuk enkripsi atau deskripsi tanpa prosedur tambahan seperti autentikasi atau pengecekan integritas.
Algoritme Dijkstra
Input algoritme ini adalah sebuah graf berarah yang berbobot ("weighted directed graph") "G" dan sebuah sumber "vertex" "s" dalam "G" dan "V" adalah himpunan semua vertices dalam graph "G".
Variabel (matematika)
Jadi, dalam contoh ini, variabel x adalah "pengganti" untuk setiap bilangan. Satu hal yang penting yang kita asumsikan adalah bahwa nilai x tidak berubah, meskipun kita tidak tahu bilangan apakah x itu. Tetapi dalam beberapa algoritme, jelas, akan mengubah x, dan terdapat beraneka cara untuk melambangkannya jika kita maksudkan sebagai nilai-lama, nilai-baru (dan seterusnya), pada umumnya tidak diketahui, tetapi mungkin (misalnya) bilangan yang lebih kecil daripada yang lain.