Algoritmo

Sa matematika at sa agham pangkompyuter, ang isang algoritmo ay isang malinaw na pagdedetalye ng kung paano malulutasan ang isang uri ng problema. Ang mga algoritmo ay maaaring magsagawa ng kalkulasyon, pagproseso ng datos, at mga awtomatikong pangangatwiran na gawain.
Bilang isang epektibong paraan, ang isang algoritmo ay maaring ipakita gamit ang limitadong espasyo at oras at sa pamamagitan ng isang wikang malinaw at pormal para sa pagkalkula ng isang punsyon. Simula sa isang paunang estado at paunang pampasok (marahil ay walang laman), ang mga tagubilin ay naglalarawan ng isang pagtutuos na, kapag ipinatupad, nagpapatuloy sa isang limitadong bilang ng malinaw na magkakasunod na estado, sa huli’y gumagawa ng isang "kinalabasan" at nagtatapos sa isang huling estado. Ang paglipat mula sa isang estado papunta sa susunod ay hindi kinakailangang tiyak; ang ilang mga algoritmo, na kilala bilang algoritmong di tiyak o walang-piling algoritmo, inilalakip ang walang-piling pampasok.
Ang konsepto ng algoritmo ay umiral na ng maraming siglo at ang paggamit ng konseptong ito ay maaaring nanggaling sa mga matematikong Griyego, halimbawa ang salaan ni Eratostenes at algoritmo ni Euclid; ang terminong algoritmo mismo ay nagmula sa ika-siyam na siglong matematikong si Muhammad ibn Mūsā al-Khwārizmī, na lumikha sa terminong ito na kung isinalin sa latin ay 'Algoritmi'.  Ang isang bahagyang pormalisasyon ng kung ano ang magiging modernong pagkaunawa ng algoritmo ngayon ay nagsimula sa mga pagtatangka upang malutas ang Entscheidungsproblem (ang "problema sa pagpapasya") na iminungkahi ni David Hilbert noong taong 1928.  Ang mga kasunod na pormalidad ay nabalangkas bilang mga pagtatangka upang tukuyin ang "epektibong pagkalkula" o "epektibong paraan"; ang mga pormalisasyong ito ay kabilang sa rekursibong punsyon na Gödel–Herbrand–Kleene ng 1930, 1934 at 1935, kalkulong lambda ni Alonzo Church ng 1936, Formulation 1 ni Emil Post ng 1936, at makinang Turing ni Alan Turing ng 1936-7 at 1939.

Etimolohiya

Nakuha ng salitang 'algoritmo' ang kanyang pinanggalingan sa pagsasalin sa Latin ng pangalan ni Muhammad ibn Musa al-Khwarizmi sa unang hakbang sa algorismus. Si Al-Khwarizmī ay isang Persyanong matematiko, astronomo, heograpo, at iskolar sa Tahanan ng Karunungan o sa Baghdad, na ang pangalan ay nangangahulugang 'ang katutubong ng Khwarezm', isang rehiyon na naging bahagi ng Kalakhang Iran at ngayon ay nasa Uzbekistan. 
Noong taong 825, isinulat ni al-Khwarizmi ang isang disertasyon sa wikang Arabe tungkol sa sistemang pamilang na Hindu-Arabiko, na isinalin sa Latin noong ika-12 siglo sa ilalim ng pamagat na Algoritmi de numero Indorum.  Ang pamagat na ito ay nangangahulugang "Algoritmi sa mga bilang ng mga Indiyano", kung saan ang "Algoritmi" ay ang latinisasyon ng tagasalin ng pangalan ni Al-Khwarizmi.  Sa dulong Gitnang Panahon na Latin, algorismus, ang alterasyon ng kanyang pangalan, ay nangangahulugang "sistema ng numerong desimal".  Sa ika-15 siglo, sa ilalim ng impluwensya ng salitang Griyego para sa aritmetika na ang ibig sabihin ay 'bilang', ang salitang Latin na ito ay ginawang algorithmus, at ang katumbas na termino nito sa Ingles na algorithm ay unang ibinunyag noong ika-17 siglo; ang modernong kahulugan ay ipinakilala noong ika-19 na siglo.