Diagram alur dari sebuah algoritma (
Algoritma Euklides) untuk menghitung faktor persekutuan terbesar (f.p.b.) dari dua angka
a dan
b dalam lokasi bernama A dan B. Algoritma dijalankan dengan pengurangan berturut-turut dalam dua pengulangan: JIKA pengujian B >= A menghasilkan "ya" (atau benar) (lebih akuratnya
angka b dalam lokasi B lebih besar atau sama dengan
angka a dalam lokasi A) MAKA, algoritma menentukan B ← B - A (artinya angka
b -
a menggantikan
b sebelumnya). Hal yang sama, JIKA A > B, MAKA A ← A - B. Proses tersebut berhenti saat (isi dari) B adalah 0, menghasilkan f.p.k. dalam A. (Algoritma tersebut diambil dari Scott 2009:13; simbol dan gaya penggambaran dari Tausworthe 1977).
Dalam matematika dan ilmu komputer, algoritma adalah rangkaian terbatas dari instruksi-instruksi yang rumit, biasanya digunakan untuk menyelesaikan atau menjalankan suatu kelompok masalah komputasi tertentu. Algoritma digunakan sebagai spesifikasi untuk melakukan perhitungan dan pemrosesan data. Algoritma yang lebih mutakhir dapat melakukan deduksi otomatis (disebut sebagai penalaran otomatis) dan menggunakan tes matematis dan logis untuk mengarahkan eksekusi kode melalui berbagai rute (disebut sebagai pengambilan keputusan otomatis). Penggunaan karakteristik manusia sebagai deskriptor mesin secara metaforis telah dipraktikkan oleh Alan Turing dengan terminologi seperti "memory", "search" dan "stimulus".
Sebaliknya, heuristika adalah pendekatan untuk pemecahan masalah komputasi yang mungkin tidak sepenuhnya terspesifikasi atau tidak menjamin hasil yang benar atau optimal, terutama dalam ranah masalah komputasi yang mana tidak ada hasil yang benar atau optimal yang terdefinisi dengan baik.
Sebagai metode yang efektif, algoritma dapat diekspresikan dalam jumlah ruang dan waktu yang terbatas, dan dalam bahasa formal yang terdefinisi dengan baik untuk menghitung suatu fungsi. Dimulai dari tataran awal dan input awal (bisa jadi kosong), instruksi-instruksi yang ada menggambarkan sebuah komputasi yang, ketika dieksekusi, berjalan melalui sejumlah tataran dengan jumlah terhingga yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "output" dan berakhir pada tataran final akhir. Transisi dari satu tataran ke tataran berikutnya tidak selalu baku; beberapa algoritma, yang dikenal sebagai algoritma acak, menggabungkan input acak.

Animasi dari
algoritma quicksort mengurutkan larik dari nilai acak. Batang merah menandakan elemen pivot; pada awal animasi, elemen paling kanan dipilih sebagai pivot.
Salah satu dari algoritma 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 algoritma sederhana, yang bisa dinyatakan dalam kalimat bahasa deskripsi tingkat-tinggi, sebagai:
Deskripsi tingkat-tinggi:
- Jika tidak ada angka dalam deret makan tidak ada bilangan terbesar.
- Asumsikan item pertama dalam deret adalah yang terbesar.
- Untuk setiap sisa angka dalam deret, jika angka tersebut besar dari angka terbesar sekarang, anggap angka tersebut menjadi yang terbesar dalam deret.
- Bila tidak ada lagi angka yang tersisa pada deret untuk diperiksa, anggap angka terbesar sekarang menjadi angka yang terbesar dalam deret.
Deskripsi (Quasi-)formal:
Ditulis dalam kalimat yang lebih dekat dengan bahasa tingkat-tinggi dari program komputer, berikut ini adalah kode formal dari algoritma dalam pseudokode atau kode pijin:
Analisis dan kajian algoritma adalah bidang dari ilmu komputer, dan biasanya dilakukan secara abstrak tanpa menggunakan bahasa pemrograman tertentu atau implementasi.
Dalam artian, analisis algoritma mirip dengan bidang matematika lainnya yang mana fokus pada properti yang mendasari algoritma dan bukan pada implementasi tertentu.
Biasanya pseudokode digunakan pada analisis karena merupakan representasi paling umum dan sederhana.
Namun, pada akhirnya, kebanyakan algoritma diimplementasikan di perangkat keras / lunak tertentu dan efisiensi algoritmik mereka akhirnya diuji menggunakan kode yang sebenarnya.
Untuk solusi dari sebuah masalah, efisiensi dari algoritma tertentu mungkin tidak terlalu berpengaruh (kecuali n sangat besar) tetapi bagi algoritma 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 algoritma yang tidak berbahaya.
Pengujian empiris berguna karena bisa membuka interaksi tak terduga yang memengaruhi performa.
Benchmark bisa digunakan untuk membandingkan potensi kenaikan sebelum/sesudah algoritma setelah optimisasi program dilakukan.
Sejarah: Perkembangan dari kata "algoritma"suntingsunting sumber
Bukti terawal tentang algoritma ditemukan dalam matematika Babilonia di Mesopotamia kuno (saat ini merupakan bagian dari Irak). Sebuah tablet tanah liat Sumeria yang ditemukan di Shuruppak dekat Baghdad dan berasal dari sekitar tahun 2500 SM menjelaskan algoritma divisi yang paling awal. Selama dinasti Hammurabi sekitar 1800-1600 SM, tablet tanah liat Babilonia menjabarkan algoritma untuk rumus-rumus komputasi. Algoritma juga digunakan dalam astronomi Babilonia. Tablet tanah liat Babilonia menguraikan dan menggunakan prosedur algoritmik untuk menghitung waktu dan tempat peristiwa astronomi yang signifikan.
Algoritma untuk aritmetika juga ditemukan dalam matematika Mesir kuno, yang terdapat pada Papirus Matematika Rhind yang berasar dari sekitar tahun 1550 SM. Algoritma kemudian digunakan dalam matematika Helenistik kuno. Dua contohnya adalah Tapis Eratosthenes, yang dijelaskan dalam Pengenalan Aritmetika oleh Nicomachus, dan Algoritma Euklides, yang pertama kali dipaparkan dalam Euclid's Elements (sekitar 300 SM).
Penanda-penghitung: Untuk mencatat hewan gembalaan, kumpulan biji dan uang mereka orang dahulu menggunakan penghitung: akumulasi batu atau tanda yang ditoreh pada tongkat, atau membuat simbol diskrit di kerang.
Sampai orang Babilonia dan Mesir menggunakan tanda dan simbol, pada akhirnya bilangan Roma dan abakus berkembang (Dilson, p. 16-41).
Penanda penghitung muncul dalam sistem bilangan operan aritmetika digunakan dalam mesin Turing dan komputasi mesin Post-Turing.
Abad yang baik dan setengah lebih maju dari masanya, Leibniz mengajukan logika aljabar, sebuah aljabar yang akan menentukan aturan-aturan untuk memanipulasi konsep logika dengan cara yang aljabar biasa menentukan aturan untuk manipulasi angka.
Jam: Bolter memuji penemuan jam gaya-berat sebagai "Kunci penemuan dari Eropa pada Abad Pertengahan", khususnya pada ambang pelarian
yang menyediakan kita dengan tik dan tak dari jam mekanis.
"Mesin otomatis yang akurat"
mengarah langsung pada "otomata mekanis" dimulai pada abad ke-13 dan terakhir pada "mesin komputasi" -- motor berbeda dan motor analitik dari Charles Babbage dan bangsawan Ada Lovelace, pertengahan abad ke-19.
Lovelace dikreditkan sebagai yang pertama menciptakan algoritma 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.
Mesin logika 1870 - Stanley Jevons "sempoa logika" dan "mesin logika": Masalah teknisnya adalah untuk mereduksi persamaan boolean bila ditampilkan dalam sebuah bentuk yang pada masa sekarang dikenal sebagai pemetaan Karnaugh.
Jevons (1880) pertama menjelaskan "sempoa" sederhana dari "potongan kayu dilengkapi dengan penyemat, dibuat supaya bagian atau kelas kombinasi logika manapun dapat dipilih secara mekanis ... Baru-baru ini Saya telah mereduksi sistem menjadi bentuk yang secara sempurna mekanis, dan membuatnya mewujudkan keseluruhan proses inferensi tak langsung dalam apa yang disebut sebuah Mesin Logika"
Mesinnya dilengkapi dengan "beberapa tangkai kayu yang bisa dipindahkan" dan "di bawah ada 21 kunci seperti pada piano [dll] ...".
Dengan mesin ini dia dapat menganalis sebuah "silogisme atau argumen logika sederhana apapun".
Mesin tenun Jacquard, kartu berlobangnya Hollerith, telegraf dan telepon -- penyiaran elektromekanis: Bell dan Newell (1971) mengindikasikan bahwa mesin tenun Jacquard (1801), pelopor dari kartu Hollerith (kartu berlobang, 1887), dan "teknologi alih telepon" adalah akar dari sebuah pohon yang mengarah pada perkembangan dari komputer pertama.
Pada pertengahan abad ke-19 telegraf, pelopor dari telepon, digunakan diseluruh dunia, pengkodean diskrit dan pembedaan huruf sebagai "titik dan strip".
Pada akhir abad ke-19 pita telegraf (sekitar 1870-an) digunakan, sebagaimana juga kartu Hollerith pada sensus Amerika 1890.
Kemudian muncullah teleprinter (sekitar 1910-an) dengan kerta-berlobang menggunakan kode Baudot di pita.
Jaringan alih-telepon dari penyiaran elektromekanis (ditemukan 1835) adalah karya dair George Stibitz (1937), penemu dari perangkat penghitungan digital.
Saat bekerja di laboratorium Bell, dia mengamati "beratnya" penggunaan kalkulator mekanis dengan geligi.
"Dia pulang ke rumah pada suatu malam 1937 berniat untuk menguji idenya ... Saat mengatik selesai, Stibitz telah membangun perangkat hitung digital".
Davis (2000) mengamati pentingnya penyiaran elektromekanis (dengan "keadaan binari"-nya buka dan tutup):
- Hanya dengan perkembangan, dimulai sejak 1930-an, dari kalkulator elektromekanis menggunakan penggantian elektris, sehingga mesin yang dibuat memiliki ruang lingkup yang dibayangkan Babbage."
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".
Karya dari Frege lebih lanjut disederhanakan dan diperkuat oleh Alfred North Whitehead dan Bertrand Russell dalam Principia Mathematical (1910-1913).
Paradoks: Pada masa yang sama sejumlah paradoks yang mengganggu muncul dalam literatur, pada khususnya paradoks Burali-Forti (1987), paradoks Russell (1902-03), dan Paradoks Richard.
Hasilnya mengarah ke makalah Kurt Godel (1931) -- dia secara khusus merujuk paradoks pembohong—yang mereduksi aturan dari rekursi pada angka.
Penghitungan Efektif: Dalam usaha untuk menyelesaikan permasalahan keputusan yang didefinisikan oleh Hilbert tahun 1928, matematikawan pertama mendefinisikan apa arti dari "metode efektif" atau "kalkulasi efektif" (misalnya, sebuah kalkulasi yang akan sukses).
Dalam waktu yang cepat hal berikut muncul: kalkulus-λ oleh Alonzo Church, Stephen Kleene, dan J.B. Rosser
definisi dari "rekursi umum" yang benar-benar diasah dari karya Godel berdasarkan saran dari Jacquard Herbrand (cf. kuliah Godel di Princeton tahun 1934) dan penyederhaan selanjutnya oleh Kleene.
Church membuktikan
bahwa masalah 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.
Pembuktian Alan Turing bahwa masalah keputusan tidak terpecahkan dengan menggunakan "sebuah mesin [otomatis]"-nya
dengan efek yang mirip dengan "formulasi"-nya Post, definisi J. Barkley Rosser tentang "metode efektif" dalam makna "sebuah mesin".
Proposal S. C. Kleene dari pelopor "Tesis Church" yang disebutnya "Thesis I",
dan beberapa tahun kemudian Kleene menamakan tesisnya "Tesis Church"
dan mengajukan "Tesis Turing".
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.
Emil Post (1936) mendeskripsikan aksi dari sebuah "komputer" (manusia) sebagai berikut:
- "... dua konsep ikut serta: yaitu sebuah simbol ruang di mana pekerjaan yang mengarah dari masalah ke jawaban dilakukan, dan sekumpulan arahan yang baku dan tidak bisa diubah.
Simbol ruangnya yaitu
- "sederetan dua arah tak terbatas dari ruang atau kotak... penyelesai masalah atau pekerja harus berjalan dan bekerja di simbol ruang ini, dengan bisanya [si pekerja] masuk, dan beroperasi dengan satu kotak dalam satu waktu... sebuah kotak memiliki dua kemungkinan kondisi, yaitu, kosong atau belum ditandai, dan dengan adanya tanda tunggal disana, katakanlah garis vertikal.
- "Satu kotak dibiarkan dan disebut sebagai titik awal. ...sebuah masalah tertentu diberikan dalam bentuk simbolik dengan sejumlah kotak terbatas [yaitu, INPUT] ditandai dengan coretan. Begitu juga jawabannya [yaitu, OUTPUT] diberikan dalam bentuk simbolik dari suatu konfigurasi dari kotak-kotak yang ditandai....
- "Sekumpulan arahan bisa digunakan untuk masalah umum menentukan proses determistik saat diterapkan pada setiap masalah tertentu. Proses ini hanya berhenti bila datang arahan dengan tipe (C ) [yaitu, STOP]". Lihat lebih lanjut pada mesin post-Turing
Patung Alan Turing di Taman Bletchley. Karya Alan Turing mendahului karya dari Stibitz (1937); tidak diketahui apakah Stibitz mengetahui karya Turing. Biografinya Turing percaya bahwa Turing menggunakan model seperti-mesin-ketik diturunkan dari ketertarikannya pada masa muda: "Alan memiliki impian menemukan mesin ketik pada saat muda; Ibu Turing memiliki sebuah mesin ketik; dan dia mungkin memulainya dengan menanyakan pada dirinya sendiri apa maksudnya dengan menyebut sebuah mesin ketik dengan 'mekanikal'". Dengan lazimnya kode Morse dan telegraf, mesin pita telegraf, dan mesin-ketik jarak jauh pada waktu itu kita bisa menyimpulkan bahwa semua itu memberikan pengaruh.
Turing—model dari komputasinya sekarang dikenal dengan mesin Turing—memulai, sebagaimana Post, dengan analisis dari komputer manusia yang ia sederhanakan menjadi sekumpulan gerakan dasar sederhana dan "keadaan pikiran".
Tapi dia terus maju selangkah ke depan dan membuat sebuah mesin sebagai model dari komputasi angka.
- "Menghitung biasanya dilakukan dengan menulis simbol tertentu di atas kertas. Misalkan kertas tersebut dibagi menjadi segi empat seperti buku aritmetika anak-anak.... Saya asumsikan bahwa komputasi dilakukan pada kertas satu dimensi, yaitu, di pita yang dibagi dalam persegi. Juga misalkan bahwa jumlah simbol yang akan dicetak terbatas....
- "Perilaku dari komputer disetiap waktu ditentukan oleh simbol yang diobservasinya, dan "keadaan pikiran"-nya pada waktu tersebut. Juga bisa diasumsikan bahwa ada batas B sebagai jumlah simbol atau persegi yang mana komputer dapat amati dalam satu waktu. Jika ia ingin mengamati lebih, ia harus menggunakan pengamatan beriringan. Kita juga memisalkan bahwa jumlah keadaan pikiran yang diperlukan di sini adalah terbatas...
- "Mari kita bayangkan bahwa operasi yang dilakukan oleh komputer akan dipecah menjadi 'operasi-operasi sederhana' yang sangat mendasar sehingga tidak mudah membayangkannya untuk dibagi lebih jauh."
Reduksi Turing menghasilkan hal berikut:
- "Operasi sederhana haruslah mengikutkan:
- "(a) Perubahan dari simbol pada salah satu persegi yang sedang diamati
- "(b) Perubahan dari salah satu persegi diamati terhadap persegi lainnya di antara L persegi dari salah satu yang sebelumnya diamati.
"Bisa saja beberapa dari perubahan tersebut menyebabkan perubahan keadaan pikiran. Operasi tunggal paling umum oleh karena itu harus diambil jadi salah satu hal berikut:
- "(A) Suatu kemungkinan perubahan (a) dari simbol bersamaan dengan suatu perubahan dari keadaan pikiran.
- "(B) Suatu kemungknian perubahan (b) dari persegi yang diamati, bersama dengan kemungkinan perubahan dari keadaan pikiran"
- "Kita sekarang mungkin sudah bisa membentuk sebuah mesin untuk melakukan pekerjaan dari komputer tersebut."
Beberapa tahun kemudian, Turing mengembangkan analisisnya (tesis, secara definisi) dengan ekspresi kuat berikut:
- "Sebuah fungsi dikatakan "bisa dihitung secara efektif" jika nilainya bisa ditemukan dengan proses yang murni mekanis.
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 . . . .
- "† Kita boleh menggunakan ekspresi "fungsi hitung" untuk mengartikan sebuah fungsi yang dapat dihitung oleh sebuah mesin, dan kita biarkan "secara efektif dapat dihitung" mengacu pada ide intuitif tanpa definisi tertentu dengan salah satu dari definisi tersebut".
J. Barkley Rosser mendefinisikan 'metode [matematis] efektif' dengan cara berikut (kemiringan ditambahkan):
- "'Metode efektif' disebut sebagai metode yang spesial yang mana setiap langkahnya secara tepat ditentukan dan pasti menghasilkan jawaban dalam sejumlah langkah yang terbatas. Dengan pengertian khusus ini, tiga definisi berbeda telah diajukan sampai sekarang. [catatan kakinya #5; lihat diskusinya di bawah]. Yang paling sederhana (karena Post dan Turing) menyatakan intinya bahwa sebuah metode efektif menyelesaikan sekumpulan masalah hanya ada jika seseorang bisa membuat sebuah mesin yang akan menyelesaikan setiap masalah dari sekumpulan masalah tanpa campur tangan manusia kecuali memasukan pertanyaan dan (nantinya) membaca jawabannya. Ketiga definisi tersebut sama, jadi tidak masalah yang mana yang digunakan. Lebih lanjut, fakta bahwa ketiganya sama adalah argumen yang sangat kuat untuk kebenaran dari salah satunya." (Rosser 1939:225-6)
Catatan kaki Rosser #5 merujuk karya dari (1) Church dan Kleene dan definisi dari definabiliti-λ, secara khusus Church menggunakannya dalam An Unsolvable Problem of Elementary Number Theory-nya (1936);
(2) Herbrand dan Godel dan penggunaan rekursi mereka terutama Godel menggunakannya dalam makalah terkenalnya On Formally Undecidable Propositions of Principia Mathematica and Related Systems I (1931);
dan (3) Post (1936) dan Turing (1936-7) dalam model mekanisme komputasi mereka.
Stephen C. Kleene didefinisikan sebagai "Thesis I"-nya yang terkenal yang dikenal sebagai tesis Church-Turing.
Tapi dia melakukan hal tersebut dalam konteks berikut (penebalan dari aslinya):
- "12. Teori-teori algoritma... Dalam menyiapkan sebuah teori algoritma yang komplet, apa yang kita lakukan adalah mendeskripsikan sebuah prosedur, yang dapat dilakukan untuk setiap kumpulan nilai dari variabel-variabel tunggal, yang mana prosedur berhenti dan dengan cara tersebut dari hasilnya kita bisa membaca sebuah jawaban tertentu, "ya" atau tidak", untuk pertanyaan "apakah nilai predikat benar?"" (Kleene 1943:273)
Sejumlah usaha telah diarahkan untuk memperbaiki lebih lanjut definisi dari "algoritma", dan aktivitas tersebut masih terus berjalan karena isu-isu yang mengelilinginya, terutama, fondasi matematika (khususnya tesis Church-Turing) dan filsafat pikiran (khususnya argumen menyangkut kecerdasan buatan).
Lebih lanjut, lihat karakterisasi algoritma.
'" (Knuth 1973:5).
- ↑ "An algorithm has one or more outputs, i.e. quantities which have a specified relation to the inputs" (Knuth 1973:5).
- ↑ Whether or not a process with random interior processes (not including the input) is an algorithm is debatable. Rogers opines that: "a computation is carried out in a discrete stepwise fashion, without the use of continuous methods or analogue devices ... carried forward deterministically, without resort to random methods or devices, e.g., dice" (Rogers 1987:2).
- ↑ Cooke, Roger L. (2005). The History of Mathematics: A Brief Course. John Wiley & Sons. ISBN 978-1-118-46029-0.
- ↑ Hogendijk, Jan P. (1998). "al-Khwarzimi". Pythagoras. 38 (2): 4–5. Diarsipkan dari asli tanggal April 12, 2009.{{cite journal}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
- ↑ "algorismic", The Free Dictionary, diarsipkan dari versi aslinya tanggal Desember 21, 2019, diakses tanggal 2019-11-14{{citation}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
- ↑ Oxford English Dictionary, Third Edition, 2012 s.v.
- ↑ "Abu Jafar Muhammad ibn Musa al-Khwarizmi". members.peak.org. Diarsipkan dari versi aslinya tanggal Agustus 21, 2019. Diakses tanggal 2019-11-14.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
- ↑ Kleene 1943 in Davis 1965:274
- ↑ Rosser 1939 in Davis 1965:225
- ↑ Stone 1973:4
- ↑
Stone secara sederhana membutuhkan "harus berhenti dalam sejumlah langkah" (Stone 1973:7-8).
- ↑
Boolos and Jeffrey 1974, 1999:19
- ↑ cf Stone 1972:5
- ↑ Knuth 1973:7 menyatakan: "Pada praktiknya kita tidak hanya menginginkan algoritma, kita menginginkan algoritam yang baik ... salah satu kriteria dari kebaikannya adalah lama waktu yang digunakan untuk menjalankan algoritma ... kriteria lainnya adalah kemampuan adaptasi dari algoritma ke komputer, kesederhanaan dan elegan, dll."
- ↑ cf Stone 1973:6
- ↑ Stone 1973:7-8 menyatakan bahwa harus ada, "... sebuah prosedur yang robot [yaitu komputer] bisa ikuti supaya dapat menentukan secara tepat bagaimana mengikuti instruksi tersebut." Stone menambahkan keterbatasan dari proses, dan kepastian (tidak memiliki kerancuan pada instruksi) pada definisi tersebut.
- ↑ Knuth, loc. cit
- ↑
Minsky 1967:105
- ↑
Gurevich 2000:1, 3
- ↑ Sipser 2006:157
- ↑ Knuth 1973:7
- ↑ Chaitin 2005:32
- ↑
Rogers 1987:1-2
- ↑
Dalam esainya "Calculations by Man and Machine: Conceptual Analysis" Seig 2002:390 memuji perbedaan ini oleh Robin Gandy, cf Wilfred Seig, dll., 2002 Reflections on the foundations of mathematics: Essays in honor of Solomon Feferman, Association for Symbolic Logic, A. K Peters Ltd, Natick, MA.
- ↑
cf gandy 1980:126, robin gandy church's thesis and principles for mechanisms appearing on pp. 123–148 in j. barwise et al. 1980 the kleene symposium, north-holland publishing company.
- ↑
Sebuah "robot": "Sebuah komputer adalah sebuah robot yang melakukan setiap tugas yang dapat dijelaskan sebagai urutan dari instruksi." cf Stone 1972:3
- ↑
"abacus"-nya Lambek adalah "sejumlah lokasi tak terbatas yang bisa dihitung (lubang, kabel, dll.) berikut dengan persediaan penghitung yang tak terbatas (kerikil, remah roti, dll).
Lokasinya bisa dibedakan, penghitungnya tidak".
Lubangnya memiliki kapasitas tak terbatas, dan digerakan oleh agen yang memahami dan mampu menjalankan sejumlah instruksi" (Lambek 1961:295).
Lambek mengacu Melzak yang mendefinisikan mesin-Q nya sebagai "sejumlah lokasi yang besar tanpa batas ... persediaan penghitung yang tanpa batas yang terdistribusi di antara lokasi-lokasi tersebut, sebuah program, dan sebuah operator yang tujuan satu-satunya yaitu menjalankan program." (Melzak 1961:283).
B-B-J (loc. cit.) menambahkan syarat bahwa lubang tersebut "mampu menyimpan sejumlah batu" (p. 46).
Melzak dan Lambek muncul di The Canadian Mathematical Bulletin, vol. 4, no. 3, September 1961.
- ↑
Jika tidak ada kebingungan yang dihasilkan, kata "penghitung" bisa dihiraukan, dan sebuah lokasi bisa dikatakan mengandung sebuah "angka".
- ↑
"Kita mengatakan bahwa instruksi adalah efektif bila ada sebuah prosedur yang robot dapat ikuti supaya dapat menentukan secara tepat bagaimana mematuhi instruksi." (Stone 1972:6)
- ↑
cf Minsky 1967: Chapter 11 "Computer models" and Chapter 14 "Very Simple Bases for Computability" pp. 255–281 in particular
- ↑ cf Knuth 1973:3.
- ↑
Tapi selalu diikuti oleh IF-THEN untuk menghindari pengurangan yang tidak sesuai.
- ↑
Namun, beberapa instruksi penetapan berbeda (misalnya, DECREMENT, INCREMENT, dan ZERO/CLEAR/EMPTY untuk mesin Minsky) juga dibutuhkan untuk kekomplitan-Turing;
spesifikasi lengkapnya tergantung kepada perancang.
GOTO tak bersyarat cukup mudah; ia dapat dibentuk dengan menginisialisasi suatu lokasi tertentu dengan nol, misalnya, instruksi "Z ← 0";
oleh karena itu instruksi IF Z=0 THEN GOTO xxx adalah tak bersyarat.
- ↑ Knuth 1973:4
- ↑
Strone 1972:5. Metode untuk mendapatkan akar tidaklah biasa: lihat Metode untuk menghitung akar kuadrat.
- ↑
Carroll, Sue; Daughtrey, Taz (Juli 4, 2007). Fundamental Concepts for the Software Quality Engineer. American Society for Quality. hlm. 282 et seq. ISBN 978-0-87389-720-4.{{cite book}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
- ↑ Misalnya, volume dari suatu politop kompleks (dijelaskan menggunakan sebuah keanggotaan oracle) dapat diperkirakan sampai keakuratan yang tinggi dengan mengacak algoritma waktu polinomial, bukan dengan deterministik; lihat Hogendijk, Jan P. (1998). "al-Khwarzimi". Pythagoras. 38 (2): 4–5. ISSN 0033–4766. Diarsipkan dari asli tanggal 2008-03-19. Diakses tanggal 2014-08-28.{{cite journal}}: Periksa nilai |issn=
- ↑ Chabert, Jean-Luc (2012). A History of Algorithms: From the Pebble to the Microchip. Springer Science & Business Media. hlm. 7–8. ISBN 9783642181924.
- ↑ Ast, Courtney. "Eratosthenes". Wichita State University: Department of Mathematics and Statistics. Diarsipkan dari versi aslinya tanggal Februari 27, 2015. Diakses tanggal Februari 27, 2015.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
- 1 2 Kesalahan pengutipan: Tanda <ref> tidak sah;
tidak ditemukan teks untuk ref bernama "Cooke20052"
- ↑ Davis 2000:18
- ↑ Bolter 1984:24
- ↑ Bolder 1984:26
- ↑ Bolter 1984:33–34, 204–206.
- ↑ All quotes from W. Stanley Jevons 1880 Elementary Lessons in Logic: Deductive and Inductive, Macmillan and Co., London and New York. Republished as a googlebook; cf Jevons 1880:199–201. Louis Couturat 1914 the Algebra of Logic, The Open Court Publishing Company, Chicago and London. Republished as a googlebook; cf Couturat 1914:75–76 gives a few more details; interestingly he compares this to a typewriter as well as a piano. Jevons states that the account is to be found at Jan . 20, 1870 The Proceedings of the Royal Society.
- ↑ Bell and Newell diagram 1971:39, cf. Davis 2000
- ↑
- Melina Hill, Valley News Correspondent, A Tinkerer Gets a Place in History, Valley News West Lebanon NH, Thursday March 31, 1983, page 13.
- ↑ Davis 2000:14
- ↑ van Heijenoort 1967:81ff
- ↑ van Heijenoort's commentary on Frege's Begriffsschrift, a formula language, modeled upon that of arithmetic, for pure thought in van Heijenoort 1967:1
- ↑ Dixon 1906, cf. Kleene 1952:36–40
- ↑
cf. footnote in Alonzo Church 1936a in Davis 1965:90 and 1936b in Davis 1965:110
- ↑
Kleene 1935–6 in Davis 1965:237ff, Kleene 1943 in Davis 1965:255ff
- ↑ Church 1936 in Davis 1965:88ff
- ↑ cf. "Formulation I", Post 1936 in Davis 1965:289–290
- ↑ Turing 1936–7 in Davis 1965:116ff
- ↑ Rosser 1939 in Davis 1965:226
- ↑ Kleene 1943 in Davis 1965:273–274
- ↑ Kleene 1952:300, 317
- ↑ Kleene 1952:376
- ↑ Turing 1936–7 in Davis 1965:289–290
- ↑ Turing 1936 in Davis 1965, Turing 1939 in Davis 1965:160
- ↑ Hodges, p. 96
- ↑ Turing 1936–7:116
- 1 2 Turing 1936–7 in Davis 1965:136
- ↑ Turing 1939 in Davis 1965:160