Algorytm

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Algorytm – skończony ciąg jasno zdefiniowanych czynności koniecznych do wykonania pewnego rodzaju zadań, sposób postępowania prowadzący do rozwiązania problemu. Można go przedstawić na schemacie blokowym.

GPGPU (ang. General-Purpose computing on Graphics Processor Units lub General-Purpose computation on Graphics Processing Units – obliczenia ogólnego przeznaczenia na układach GPU, zwany także GPGP, rzadziej GP) – technika, dzięki której GPU, zwykle zajmujący się tylko obliczeniami związanymi z grafiką komputerową, umożliwia wykonywanie obliczeń ogólnego przeznaczenia, tak jak CPU. Dzięki temu wiele obliczeń, głównie obliczenia równoległe, można przeprowadzić znacznie szybciej.Dziel i zwyciężaj (ang. divide and conquer) – jedna z głównych metod projektowania algorytmów w informatyce, prowadząca do bardzo efektywnych rozwiązań. Nazwa pochodzi od łacińskiej sentencji dziel i rządź (łac. divide et impera). W strategii tej problem dzieli się rekurencyjnie na dwa lub więcej mniejszych podproblemów tego samego (lub podobnego) typu tak długo, aż fragmenty staną się wystarczająco proste do bezpośredniego rozwiązania. Z kolei rozwiązania otrzymane dla podproblemów scala się, uzyskując rozwiązanie całego zadania.

Słowo „algorytm” pochodzi od łacińskiego słowa algorithmus, oznaczającego wykonywanie działań przy pomocy liczb arabskich (w odróżnieniu od abacism – przy pomocy abakusa), które z kolei wzięło się od nazwy „Algoritmi”, zlatynizowanej wersji nazwiska „al-Chwarizmi” Abu Abdullaha Muhammada ibn Musy al-Chuwarizmiego, matematyka perskiego z IX wieku.

Schemat blokowy (ang. block diagram, flowchart) jest narzędziem nakierowanym na prezentację kolejnych czynności w projektowanym algorytmie. Realizowane jako diagram, na którym procedura, system albo program komputerowy są reprezentowane przez opisane figury geometryczne, połączone liniami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania.Ronald Linn Rivest (ur. w 1947 w Schenectady, Nowy Jork) – informatyk, kryptograf. Za swój wkład w rozwój kryptografii asymetrycznej otrzymał w 2002 roku nagrodę Turinga. Pracuje na stanowisku profesora informatyki uniwersytetu MIT.

Zadaniem algorytmu jest przeprowadzenie systemu z pewnego stanu początkowego do pożądanego stanu końcowego. Badaniem algorytmów zajmuje się algorytmika. Algorytm może zostać zaimplementowany w postaci programu komputerowego.

Jako przykład stosowanego w życiu codziennym algorytmu podaje się często przepis kulinarny. Dla przykładu, aby ugotować bigos, należy w określonej kolejności oraz odstępach czasowych (imperatyw czasowy) dodawać właściwe rodzaje kapusty i innych składników. Może istnieć kilka różnych przepisów dających na końcu bardzo podobną potrawę. Przykład ten ma wyłącznie charakter poglądowy, ponieważ język przepisów kulinarnych nie został jasno zdefiniowany. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o język matematyki.

Abakus lub abak (łac. abacus, gr. ἄβαξ, ábaks) – deska z wyżłobionymi rowkami, które symbolizowały kolejne potęgi dziesięciu. Ułatwiało liczenie, używane w Rzymie i Grecji od 440 p.n.e. do XVIII wieku - prekursor liczydła i maszyn liczących. Był używany także w innych krajach Europy. Obliczeń dokonywano poprzez wkładanie i przekładanie kamyków w rowkach. Zasada liczenia była taka sama jak na liczydle. Jedną z odmian abaku, stanowiącą poważne udoskonalenie, przypisywali Rzymianie pitagorejczykom i nazwali mensa pythagoreana. Chińczycy używali liczydła zwanego suanpan. Jest ono wytworem własnym pomysłowości chińskiej. Odmiana japońska nosi nazwę soroban (jap. 算盤, soroban).Teoria złożoności obliczeniowej – dział teorii obliczeń, którego głównym celem jest określanie ilości zasobów potrzebnych do rozwiązania problemów obliczeniowych. Rozważanymi zasobami są takie wielkości jak czas, pamięć lub liczba procesorów.

W niektórych krajach (między innymi Stanach Zjednoczonych) algorytmy mogą zostać opatentowane, jeżeli zostaną zaimplementowane w jakimś praktycznym celu. Przeciwnicy tego podejścia twierdzą, że patentowanie algorytmów spowalnia rozwój informatyki, bo jeden producent może uzyskać monopol na pisanie oprogramowania tworzącego pewne typy plików (jak było to w przypadku GIF). Wiele koncernów komputerowych prowadzi między sobą spory prawne dotyczące praw własności do niektórych patentów. Kontrargumentem zwolenników patentów na oprogramowanie jest prawo własności intelektualnej (którą jest na przykład utwór muzyczny, będący wytworem intelektu i pracy muzyka), zakładające, że program jest intelektualną własnością twórcy.

Rozkład na czynniki lub faktoryzacja – proces, w którym dla danego obiektu znajdują się obiekty, takie że ich iloczyn jest jemu równy, przez co są one w pewnym sensie od niego prostsze.Algorytm zachłanny (ang. greedy algorithm) – algorytm, który w celu wyznaczenia rozwiązania w każdym kroku dokonuje zachłannego, tj. najlepiej rokującego w danym momencie wyboru rozwiązania częściowego. Innymi słowy algorytm zachłanny nie dokonuje oceny czy w kolejnych krokach jest sens wykonywać dane działanie, dokonuje decyzji lokalnie optymalnej, dokonuje on wyboru wydającego się w danej chwili najlepszym, kontynuując rozwiązanie podproblemu wynikającego z podjętej decyzji. Typowe zadanie rozwiązywane metodą zachłanną ma charakter optymalizacyjny. W dziedzinie sztucznej inteligencji zachłanna odmiana przeszukiwania lokalnego jest nazywana "podchodzeniem pod wzgórze".

Definicja klasyczna[ | edytuj kod]

Algorytm – jednoznaczny przepis obliczenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych.

Algorytm Luhna – jeden z najczęściej wykorzystywanych algorytmów służących do sprawdzania poprawności wpisania danej liczby. Jest on używany m.in. do walidacji numerów kart kredytowych, ciągów liczbowych, itd. Nazwa algorytmu pochodzi od nazwiska Hansa Petera Luhna (1896–1964), niemieckiego naukowca pracującego w IBM.Programowanie liniowe – klasa problemów programowania matematycznego, w której wszystkie warunki ograniczające oraz funkcja celu mają postać liniową. Warunki ograniczające mają postać:

Zazwyczaj przy analizowaniu bądź projektowaniu algorytmu zakłada się, że dostarczane dane wejściowe są poprawne, czasem istotną częścią algorytmu jest nie tylko przetwarzanie, ale i weryfikacja danych.

Zgodnie z założeniem o jednoznaczności – dla identycznego zestawu danych początkowych, algorytm zdefiniowany klasycznie zawsze zwróci identyczny wynik.

Przykład[ | edytuj kod]

Znalezienie największej wśród niepustej, nieposortowanej listy przypadkowych liczb można przeprowadzić na wiele sposobów; jednym z najszybszych jest przedstawiony poniżej. Niech indeks wskazuje aktualnie badany element listy (jeśli jest ona numerowana, może on oznaczać np. jej numer), a maksimum oznacza największą dotychczas znalezioną wartość.

Dowód poprawności algorytmu jest rozumowaniem matematycznym prowadzącym do formalnego wykazania, że dany algorytm przy poprawnych danych wejściowych da nam wynik spełniający wymagania, np. że algorytm quicksort po podaniu mu niepustej tablicy elementów porównywalnych na wyjściu da nam tablicę zawierającą te same elementy, ale uporządkowane w kolejności od najmniejszego do największego.Konrad Zuse (ur. 22 czerwca 1910 r. w Berlinie - zm. 18 grudnia 1995 r. w Hünfeld) – niemiecki inżynier, konstruktor, pionier informatyki; konstruktor prekursorskiego komputera działającego w systemie binarnym.
  1. Niech indeks wskazuje na pierwszy element (początek) listy.
  2. Niech maksimum zawiera wartość elementu listy wskazywanego przez indeks (tzn. pierwszego).
  3. Jeżeli zawartość elementu listy wskazywanego przez indeks jest większa od zawartości maksimum, to przypisz maksimum wartość elementu wskazywanego przez indeks.
  4. Niech indeks wskazuje kolejny element listy; jeśli to niemożliwe (tzn. indeks wskazuje ostatni element listy, czyli jej koniec), przejdź do punktu 6.
  5. Wróć do punktu 3.
  6. Koniec.

Wykonanie tego algorytmu spowoduje, że największa liczba na wspomnianej liście będzie wartością maksimum. Dodatkowym atutem jest fakt, iż algorytm ten działa dla list dowolnej długości, ponieważ nie wykorzystuje on liczby elementów listy, lecz tylko tzw. operację następnika elementu danej listy, tzn. przejścia do następnego jej elementu. Niemożność wskazania kolejnego elementu jest wtedy równoważna temu, iż dany element jest ostatni na liście.

Wielomian – wyrażenie algebraiczne złożone ze zmiennych i stałych połączonych działaniami dodawania, odejmowania, mnożenia i podnoszenia do potęgi o stałym wykładniku naturalnym.Intelekt – (łac. intellectus: percepcja, postrzeganie, poznanie), zdolności umysłowe, kultura umysłowa człowieka (potencjalnie również istot pozaziemskich czy sztucznej inteligencji). Odnosi się do zdolności uzyskania i wykorzystania wiedzy, rozumienia myśli, poznania. Również inna nazwa umysłu, rozumu, inteligencji (w odróżnieniu od uczuć, woli, zmysłów). Ogólnie rzecz ujmując jest iloczynem zdolności umysłowych, doświadczenia oraz wiedzy człowieka i możliwości ich wykorzystywania. Termin ten jest ściśle związany z rozsądkiem i rozumieniem.

Inne przykłady[ | edytuj kod]

  • algorytm Euklidesa
  • algorytm Fermata
  • algorytm Luhna
  • algorytm mrówkowy
  • algorytmy kompresji
  • algorytmy kryptograficzne
  • algorytmy przeszukiwania drzew: min-max i alpha-beta
  • algorytmy sortowania
  • algorytm unifikacji
  • Klasyfikacja algorytmów[ | edytuj kod]

    Istnieje wiele różnych sposobów podziału algorytmów na grupy, jednak problem ten wzbudza kontrowersje.

    RSA – jeden z pierwszych i obecnie najpopularniejszych asymetrycznych algorytmów kryptograficznych z kluczem publicznym, zaprojektowany w 1977 przez Rona Rivesta, Adi Shamira oraz Leonarda Adlemana. Pierwszy algorytm, który może być stosowany zarówno do szyfrowania jak i do podpisów cyfrowych. Bezpieczeństwo szyfrowania opiera się na trudności faktoryzacji dużych liczb złożonych. Jego nazwa pochodzi od pierwszych liter nazwisk jego twórców.Komputer osobisty (ang. personal computer) – mikrokomputer przeznaczony przede wszystkim do użytku osobistego w domu i biurze. Służy głównie do uruchamiania oprogramowania biurowego, dostępu do zasobów Internetu, prezentacji treści multimedialnych (tekst, obrazy, dźwięki, filmy i inne), jak i gier.

    Podstawowe paradygmaty tworzenia algorytmów komputerowych:

  • dziel i zwyciężaj – dzielimy problem na kilka mniejszych, a te znowu dzielimy, aż ich rozwiązania staną się oczywiste
  • programowanie dynamiczne – problem dzielony jest na kilka, ważność każdego z nich jest oceniana i po pewnym wnioskowaniu wyniki analizy niektórych prostszych zagadnień wykorzystuje się do rozwiązania głównego problemu
  • metoda zachłanna – nie analizujemy podproblemów dokładnie, tylko wybieramy najbardziej obiecującą w danym momencie drogę rozwiązania
  • programowanie liniowe – oceniamy rozwiązanie problemu przez pewną funkcję jakości i szukamy jej minimum
  • wyszukiwanie wyczerpujące – przeszukujemy zbiór danych, aż do odnalezienia rozwiązania
  • heurystyka – człowiek na podstawie swojego doświadczenia tworzy algorytm, który działa w najbardziej prawdopodobnych warunkach; rozwiązanie zawsze jest przybliżone.
  • Najważniejsze techniki implementacji algorytmów komputerowych to:

    Rekurencja, zwana także rekursją (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się np. funkcji lub definicji do samej siebie.Kompresja danych (ang. data compression) – polega na zmianie sposobu zapisu informacji tak, aby zmniejszyć redundancję i tym samym objętość zbioru. Innymi słowy chodzi o wyrażenie tego samego zestawu informacji, lecz za pomocą mniejszej liczby bitów.
  • proceduralność – algorytm dzieli się na szereg podstawowych procedur. Wiele algorytmów ma wspólne biblioteki standardowych procedur, z których są one wywoływane w razie potrzeby.
  • praca sekwencyjna – wykonywanie poszczególnych procedur algorytmu, według kolejności ich wywołań; naraz pracuje tylko jedna procedura
  • praca wielowątkowa – procedury wykonywane są sekwencyjnie, lecz kolejność ich wykonania jest trudna do przewidzenia dla programisty
  • praca równoległa – wiele procedur wykonywanych jest w tym samym czasie, wymieniają się one danymi
  • rekurencja – procedura lub funkcja wywołuje sama siebie, aż do uzyskania wyniku lub błędu
  • obiektowość – procedury i dane łączy się w pewne klasy reprezentujące najważniejsze elementy algorytmu oraz stan wewnętrzny wykonującego je systemu
  • algorytm probabilistyczny – działa poprawnie z bardzo wysokim prawdopodobieństwem, ale wynik nie jest pewny.
  • Algorytmy równoległe[ | edytuj kod]

    Jednym ze sposobów rozwiązywania złożonych problemów jest zastosowanie algorytmów równoległych. Oznacza to, że program nie jest wykonywany tylko jeden raz na jednym procesorze, ale wielokrotnie równolegle na wielu różnych maszynach. Podejście takie jest stosowane od lat w superkomputerach, jednak w takiej realizacji jest ono bardzo kosztowne. Nowym pomysłem jest tutaj zastosowanie sieci zwykłych komputerów tworzących klaster. Całe zadanie jest wtedy rozdzielane na wiele maszyn i obliczane równolegle przy pomocy tysięcy procesorów. Czasami taką potężną sieć rozproszoną nazywa się grid. Przykładem jej zastosowania może być program [email protected], gdzie dane z nasłuchu kosmosu analizują dziesiątki tysięcy komputerów należących do zwykłych użytkowników. Maszyny są podłączone do Internetu, przez który przesyłają wyniki pracy uruchomionych na nich aplikacji. Rozwinięciem tego rozwiązania jest projekt parasolowy [email protected], który obejmuje kilkadziesiąt tego typu projektów co [email protected], zajmujących się zagadnieniami z wielu dziedzin nauki, nie tylko ścisłych.

    Spintronika, (elektronika spinowa, magnetronika) jest odmianą elektroniki. Podczas gdy w tradycyjnych układach scalonych nośnikiem informacji są zmiany w przepływie prądu, w spintronice brany jest pod uwagę również spin elektronu.Programowanie proceduralne to paradygmat programowania zalecający dzielenie kodu na procedury, czyli fragmenty wykonujące ściśle określone operacje.

    Obecnie algorytmy równoległe mogą być wykorzystywane na zwykłych domowych komputerach, ponieważ ogromna większość z nich posiada procesory wielordzeniowe, które w uproszczeniu są połączeniem kilku procesorów w jeden. Po roku 2010 rozpowszechniło się nowe podejście do obliczeń równoległych polegające na wykorzystywaniu w tym celu kart graficznych; nosi ono nazwę GPGPU. Kilka projektów z [email protected] oraz projekt z zakresu biologii molekularnej [email protected] pozwala na zastosowanie karty graficznej, a nawet kilku zamontowanych w jednym komputerze, do realizacji obliczeń rozproszonych. Umożliwia to wykorzystanie ogromnej liczby (do kilku tysięcy) procesorów karty graficznej działających równolegle.

    Foton (gr. φως – światło, w dopełniaczu – φοτος, nazwa stworzona przez Gilberta N. Lewisa) jest cząstką elementarną, nie posiadającą ładunku elektrycznego ani momentu magnetycznego, o masie spoczynkowej równej zero (m0 = 0), liczbie spinowej s = 1 (fotony są zatem bozonami). Fotony są nośnikami oddziaływań elektromagnetycznych, a ponieważ wykazują dualizm korpuskularno-falowy, są równocześnie falą elektromagnetyczną.Z1 – mechaniczny komputer zerowej generacji nie będący jednak maszyną Turinga z braku rozkazów warunkowych, które zostały dodane dopiero w modelu Z4. Pierwszy komputer Konrada Zusego i pierwszy posiadający liczby zmiennoprzecinkowe.

    Nowym pomysłem na implementację algorytmów równoległych jest wykorzystanie do tego celu DNA. W jednej kropli wody znajdują się miliony cząstek tego kwasu. Jeżeli zsyntetyzujemy je tak, aby wykonywały pewien algorytm, to w ułamku sekundy potrzebnym na reakcje chemiczne komputer oparty na DNA znajdzie rozwiązanie bardzo złożonego problemu. Przykładem są tutaj bakterie, które zaprogramowano, aby rytmicznie emitowały światło. Dziedziną nauki zajmującą się algorytmami w połączeniu z biologią jest bioinformatyka.

    Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.Całka – ogólne określenie wielu różnych, choć powiązanych ze sobą pojęć analizy matematycznej. W artykule rachunek różniczkowy i całkowy podana jest historia ewolucji znaczenia samego słowa całka. Najczęściej przez "całkę" rozumie się całkę oznaczoną lub całkę nieoznaczoną (rozróżnia się je zwykle z kontekstu).

    Algorytmy sztucznej inteligencji[ | edytuj kod]

    Wiele problemów związanych z codziennym życiem to problemy NP-trudne. Przykładami ich mogą być znajdowanie najkrótszej trasy łączącej pewną liczbę miast lub optymalne pakowanie plecaka. Oznacza to, że algorytmy mogą radzić sobie z takimi problemami tylko w przybliżeniu lub w bardzo szczególnej sytuacji. Sterowany algorytmem niedeterministycznym (przybliżonym) robot nie potrafi odnaleźć najkrótszej drogi w bardzo złożonym środowisku, mimo że dla człowieka może być ona oczywista.

    Algorytmika to nauka o algorytmach. Jest działem informatyki, cybernetyki, a także, dla większości nauk matematyczno-przyrodniczych, ekonomii i techniki. Algorytmika zajmuje się badaniem algorytmów. Częścią algorytmiki jest algorytmizacja, czyli proces budowy konkretnego algorytmu.Lech Banachowski (ur. 1948) – polski informatyk, doktor habilitowany nauk technicznych. Specjalizuje się w bazach danych oraz w technicznych aspektach e-learningu. Profesor nadzwyczajny Polsko-Japońskiej Akademii Technik Komputerowych.

    Inżynierowie próbują rozwiązywać problemy NP-trudne przez naśladowanie żywych organizmów. Jeżeli nie udaje się sformułować jasnego algorytmu rozwiązującego dany problem, można maszynę wyposażyć w zdolność do samodzielnego uczenia się. Zagadnieniem tym zajmuje się dział określany jako sztuczna inteligencja. Tego podejścia nie należy mylić z ludzką inteligencją. Maszyny naśladują tylko pewne cechy istot żywych, ale na razie nie są w stanie im dorównać na wielu polach.

    Kryptologia (z gr. κρυπτός – kryptos – "ukryty" i λόγος – logos – "słowo") – dziedzina wiedzy o przekazywaniu informacji w sposób zabezpieczony przed niepowołanym dostępem. Współcześnie kryptologia jest uznawana za gałąź zarówno matematyki, jak i informatyki; ponadto jest blisko związana z teorią informacji, inżynierią oraz bezpieczeństwem komputerowym.ENIAC (od ang. Electronic Numerical Integrator And Computer – Elektroniczny, Numeryczny Integrator i Komputer) – komputer skonstruowany w latach 1943-1945 przez J.P. Eckerta i J.W. Mauchly’ego na Uniwersytecie Pensylwanii w USA. Zaprzestano jego używania w 1955.

    Algorytmy genetyczne[ | edytuj kod]

     Osobny artykuł: Algorytm genetyczny.

    Jest to cała grupa algorytmów służąca do poszukiwania najlepszych rozwiązań danego problemu. Zasada ich działania opiera się na obserwacji praw natury i przeniesieniu ich na grunt matematyki i informatyki. U podstaw algorytmów genetycznych znajduje się dobór naturalny oraz dziedziczność. Najlepiej przystosowane jednostki (niosące rozwiązania zbliżone do właściwego) są powielane oraz krzyżowane z sobą w celu powielenia informacji. Bardzo wiele rzeczywistych problemów można rozwiązać w ten sposób.

    Algorytm genetyczny - rodzaj algorytmu przeszukującego przestrzeń alternatywnych rozwiązań problemu w celu wyszukania rozwiązań najlepszych.Struktura danych (ang. data structure) - sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy.

    Algorytmy kwantowe[ | edytuj kod]

     Osobny artykuł: Algorytm kwantowy.

    Niektóre algorytmy szyfrowania (np. RSA) opierają się na trudności rozkładu liczby na czynniki pierwsze (faktoryzacja). Dla tego problemu nie jest znany algorytm wielomianowy, którego można by użyć na klasycznym komputerze, czyli opartym o elementy półprzewodnikowe. Natomiast algorytmy zaimplementowane na komputerach kwantowych, w odróżnieniu od komputerów elektronicznych opartych na bitach, mogą posługiwać się qubitami oraz zjawiskiem splątania. Na tego typu komputerach możliwy jest rozkład liczby na czynniki pierwsze w czasie wielomianowym np. za pomocą algorytmu Shora.

    Liczby Bernoulliego to nieskończony ciąg liczb wymiernych oznaczanych jako B k {displaystyle ,{B_{k}}} , gdzie k {displaystyle ,{k}} jest numerem porządkowym liczby, k = 0 , 1 , 2... , {displaystyle k=0,1,2...,} wprowadzony w roku 1631 przez Johanna Faulhabera w celu ułatwienia obliczania sum ustalonych potęg kolejnych liczb naturalnych. Takie ich zastosowania i niektóre ich własności opisał szczegółowo Jakob Bernoulli w książce Ars Conjectandi (wydanej po śmierci autora w roku 1713). Stwierdza tam między innymi, że potrafi, wykorzystując wzór Faulhabera (patrz niżej) obliczyć sumę: 1 10 + 2 10 + 3 10 + . . . + 1000 10 {displaystyle 1^{10}+2^{10}+3^{10}+...+1000^{10}} "w pół kwadransa". Liczby Bernoulliego znalazły zastosowanie w analizie (rozwinięcia funkcji w szereg Taylora) i w teorii liczb.Alan Mathison Turing (ur. 23 czerwca 1912 w Londynie, zm. 7 czerwca 1954 w Wilmslow) – angielski matematyk, kryptolog, twórca pojęcia maszyny Turinga i jeden z twórców informatyki.

    Należy jednak mieć na uwadze, że dużym problemem komputerów kwantowych jest dekoherencja ich stanów – w ten sposób bardzo łatwo może dojść do utraty danych. Rozwiązaniem może być tutaj wykorzystanie splątania do teleportacji stanu kwantowego na kolejne cząstki elementarne. W związku z tym wielu naukowców pracuje już dziś nad implementacją algorytmów kryptografii kwantowej. Przykładem tego jest szyfrowanie danych z wykorzystaniem splątanych fotonów. Obecnie kierunki prac nad komputerami kwantowymi to:

    Charles Babbage (ur. 26 grudnia 1791 w Teignmouth, zm. 18 października 1871 w Londynie) – angielski matematyk, astronom i mechanik, autor tablic logarytmicznych, konstruktor mechanicznych maszyn liczących.Algorytm mrówkowy, zaproponowany przez Marco Dorigo, jest probabilistyczną techniką rozwiązywania problemów poprzez szukanie dobrych dróg w grafach. Jest on zainspirowany zachowaniem mrówek szukających pożywienia dla swojej kolonii.
  • fotonika – komputery oparte na fotonach,
  • spinotronika – komputery operujące spinem elektronów zamiast napięciem.


  • Podstrony: 1 [2] [3] [4] [5]




    Warto wiedzieć że... beta

    Karta graficzna – karta rozszerzeń komputera odpowiedzialna za renderowanie grafiki i jej konwersję na sygnał zrozumiały dla wyświetlacza.
    Definicja intuicyjna: Maszyna Turinga stanowi najprostszy, wyidealizowany matematyczny model komputera, zbudowany z taśmy, na której zapisuje się dane i poruszającej się wzdłuż niej „głowicy”, wykonującej proste operacje na zapisanych na taśmie wartościach.
    Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.
    Algorytm wielomianowy – algorytm, którego czas działania ograniczony jest przez wielomian od rozmiaru danych wejściowych. Problemy, dla których istnieje algorytm wielomianowy nazywane są łatwymi do rozwiązania, w przeciwieństwie do problemów uważanych za trudne.
    Wydawnictwa Naukowo-Techniczne (WNT) – polskie wydawnictwo założone w 1949 z siedzibą w Warszawie, do 1961 działało pod firmą Państwowe Wydawnictwa Techniczne.
    Spin – moment własny pędu cząstki w układzie, w którym nie wykonuje ruchu postępowego. Własny oznacza tu taki, który nie wynika z ruchu danej cząstki względem innych cząstek, lecz tylko z samej natury tej cząstki. Każdy rodzaj cząstek elementarnych ma odpowiedni dla siebie spin. Cząstki będące konglomeratami cząstek elementarnych (np. jądra atomów) mają również swój spin będący sumą wektorową spinów wchodzących w skład jego cząstek elementarnych.
    Fotonika to interdyscyplinarna dziedzina nauki i techniki, łącząca dokonania optyki, elektroniki i informatyki w celu opracowywania technik i urządzeń wykorzystujących promieniowanie elektromagnetyczne (oprócz radiowego) do przenoszenia i przetwarzania informacji.

    Reklama