Siirry sisältöön

Tietojenkäsittelytiede:algoritmi

Tieteen termipankista

algoritmi

algoritmi
Määritelmä hyvin määritelty vaiheittainen menettely tietyn laskentaongelman ratkaisemiseksi
Määritelmä (en) a well-defined stepwise computational procedure to solve a particular problem
Selite

Algoritmilla on syöte ja tulos, jotka kumpikin ovat joukko lukuja tai muita symboleita. Algoritmi laskee syötettä vastaavan tuloksen edeten täsmällisesti määriteltyjen askelten mukaisesti. Yksi algoritmi ratkaisee tietyn laskentaongelman erilaisilla syötteillä.

Esimerkki laskentaongelmasta on järjestäminen. Siinä syöte on lukujono, esimerkiksi n kappaletta kokonaislukuja. Tulos on lukujono, jossa on samat n kokonaislukua, mutta kasvavassa järjestyksessä. Esimerkiksi jos syöte on lukujono (5, 1, 9, 3, 6), tätä vastaava tulos on (1, 3, 5, 6, 9).

Järjestämisen laskentaongelmalle on kehitetty ratkaisuksi useampi algoritmi. Useimmat järjestämisalgoritmit vaihtavat kahden syötealkion paikkaa keskenään. Useampien vaihtojen seurauksena syöte asettuu osittaiseen järjestykseen. Lopulta koko syöte on järjestyksessä.

Algoritmi itsessään on matemaattinen idea, joka on esitetty täsmällisesti esimerkiksi pseudokoodina tai vuokaaviona. Jotta tietokone voi suorittaa algoritmin, algoritmi täytyy toteuttaa ohjelmoimalla se jollakin ohjelmointikielellä.

Algoritmeja on eri käyttötarkoituksiin, joista seuraavassa on esimerkkejä. Perusalgoritmit ovat yleiskäyttöisiä: ne järjestävät aineiston alkiot tietyn ominaisuuden mukaan tai hakevat aineistosta tiettyjä ehtoja vastaavaa alkiota. Tietokonegrafiikan algoritmit tuottavat kaksi- tai kolmiulotteisen näkymän matemaattisesta mallista tai muuntavat olemassaolevaa digitaalista kuvaa. Salausalgoritmit muuntavat aineiston muotoon, josta se ei ole ymmärrettävissä, ellei käytettävissä ole oikeaa salausavainta. Koneoppimisalgoritmit sovittavat matemaattisen mallin todellisen maailman aineistoon, esimerkiksi kokoelmaan ääntä, kuvaa tai tekstiä.

Kaikkien algoritmien keskeinen tekninen ominaisuus on ajan- ja muistinkäyttö: kuinka kauan laskenta kestää suhteessa syötteen kokoon, ja kuinka paljon työmuistia algoritmi tarvitsee laskennan aikana.

Eri algoritmeilla on erilaisia ongelmanratkaisustrategioita, kuten iteraatio, rekursio, hajota-ja-hallitse, dynaaminen ohjelmointi, approksimaatio ja satunnaistaminen.
Selite (en)

An algorithm has an input and output which both are a set of numbers or other symbols. An algorithm computes an output corresponding to the input by following well-defined steps. One algorithm solves a particular computational problem with different inputs.

An example of a computational problem is sorting. There the input is a sequence of numbers, for example, n integers. The output is also a sequence of numbers, but in increasing order. For example, if the input is the sequence (5, 1, 9, 3, 6), the corresponding output is (1, 3, 5, 6, 9).

There are multiple algorithms to solve the sorting problem. Most sorting algorithms swap two elements simultaneously. The input becomes partially sorted after several swaps. In the end, the whole input is sorted.

An algorithm itself is a mathematical idea which is presented in a well-defined form as pseudocode or flowchart. Before a computer can execute the algorithm, the algorithm must be implemented by programming it with a programming language.

There are different algorithms for different purposes, as in the following examples. Basic algorithms are general-purpose: they sort a sequence of elements according to given property or search for an element following particular conditions. Computer graphics algorithms produce two- or three-dimensional view from a mathematical model or modify an existing digital image. Encryption algorithms convert data into an form where it is incomprehensible without a specific encryption key provided. Machine learning algorithms fit a mathematical model into a real-world data, such as a collection of sound, images, or text.

A key technical property of all algorithms is time and memory usage. This means how long computation will take relative to the size of the input, and how much working memory the algorithm requires.

Different algorithms have different problem solution strategies, such as iteration, recursion, divide-and-conquer, dynamic programming, approximation, and randomization.

Erikieliset vastineet

algorithmenglanti (English)
algoritmruotsi (svenska)

Käytetyt lähteet

Cormen&Leiserson&Rivest&Stein2001

Alaviitteet

Lähdeviittaus tähän sivuun:
Tieteen termipankki 5.12.2025: Tietojenkäsittelytiede:algoritmi. (Tarkka osoite: https://tieteentermipankki.fi/wiki/Tietojenkäsittelytiede:algoritmi.)