Lista ważnych publikacji z zakresu informatyki teoretycznej - List of important publications in theoretical computer science

Jest to lista ważnych publikacji z zakresu informatyki teoretycznej , uporządkowanych według dziedzin.

Oto kilka powodów, dla których dana publikacja może być uznana za ważną:

  • Kreator tematów – Publikacja, która stworzyła nowy temat
  • Przełom – Publikacja, która znacząco zmieniła wiedzę naukową
  • Wpływ – Publikacja, która znacząco wpłynęła na świat lub wywarła ogromny wpływ na nauczanie informatyki teoretycznej.

Obliczalność

Obliczalność Cutlanda : wprowadzenie do teorii funkcji rekurencyjnych (Cambridge)

  • Cutland, Nigel J. (1980). Obliczalność: wprowadzenie do teorii funkcji rekurencyjnych . Wydawnictwo Uniwersytetu Cambridge . Numer ISBN 978-0-521-29465-2.

Przegląd tego wczesnego tekstu autorstwa Carla Smitha z Purdue University (w Society for Industrial and Applied Mathematics Reviews ), donosi, że jest to tekst z „odpowiednią mieszanką intuicji i rygoru… w ekspozycji dowodów”, który przedstawia „podstawowe wyniki klasycznej teorii rekurencji [RT]... w stylu... dostępnym dla studentów o minimalnym zapleczu matematycznym". Chociaż stwierdza, że ​​„byłby to doskonały tekst wprowadzający do kursu wprowadzającego w [RT] dla studentów matematyki”, sugeruje, że „instruktor musi być przygotowany do znacznego poszerzenia materiału…”, gdy jest używany ze studentami informatyki ( ze względu na niedostatek materiałów na temat zastosowań RT w tym obszarze).

Rozstrzygalność teorii drugiego rzędu i automatów na drzewach nieskończonych

Opis: W referacie przedstawił automat drzewo , przedłużenie automatów . Automat drzewny miał wiele zastosowań do sprawdzania poprawności programów .

Automaty skończone i ich problemy decyzyjne

Opis: Matematyczne traktowanie automatów , dowód własności rdzenia i definicja niedeterministycznego automatu skończonego .

Wprowadzenie do teorii automatów, języków i obliczeń

Opis: Popularny podręcznik.

O pewnych formalnych własnościach gramatyk

Opis: W tym artykule przedstawiono to, co jest obecnie znane jako hierarchia Chomsky'ego , hierarchia zawierająca klasy gramatyk formalnych, które generują języki formalne .

Na liczbach obliczalnych, z podaniem do Entscheidungsproblem

Opis: ten artykuł wyznacza granice informatyki. Zdefiniowała maszynę Turinga , model dla wszystkich obliczeń. Z drugiej strony dowiodła nierozstrzygalności problemu zatrzymania i problemu Entscheidungs, a tym samym znalazła granice możliwych obliczeń.

Funkcje rekursywne

Pierwszy podręcznik teorii funkcji rekurencyjnych . Książka doczekała się wielu wydań i przyniosła Peterowi nagrodę Kossutha od rządu węgierskiego . Recenzje autorstwa Raphaela M. Robinsona i Stephena Kleene pochwaliły książkę za skuteczne wprowadzenie dla uczniów.

Reprezentacja zdarzeń w sieciach nerwowych i automatach skończonych

Opis: w tym artykule przedstawiono automaty skończone , wyrażenia regularne i języki regularne oraz ustanowiono ich połączenie.

Teoria złożoności obliczeniowej

Arora & Baraka Złożoność obliczeniowa i Goldreich za Złożoność obliczeniowa (zarówno Cambridge)

  • Sanjeev Arora i Boaz Barak, „Computational Complexity: A Modern Approach”, Cambridge University Press, 2009, 579 stron, twarda okładka
  • Oded Goldreich, „Computational Complexity: A Conceptual Perspective”, Cambridge University Press, 2008, 606 stron, twarda oprawa

Poza szacowną prasą prezentującą te ostatnie teksty, są one bardzo pozytywnie zrecenzowane w ACM SIGACT News przez Daniela Apona z University of Arkansas, który określa je jako „podręczniki do kursu teorii złożoności, skierowanego do wczesnych absolwentów… lub… zaawansowani studenci studiów licencjackich… [z] licznymi, unikalnymi mocnymi stronami i bardzo nielicznymi słabościami” i stwierdza, że ​​obaj są:

„doskonałe teksty, które dokładnie obejmują zarówno szerokość, jak i głębokość teorii złożoności obliczeniowej… [autorów]… każdy [którzy] są gigantami w teorii informatyki [gdzie każdy będzie]… wyjątkowy tekst referencyjny dla ekspertów w dziedzinie dziedzinie… [i to] …teoretycy, badacze i instruktorzy każdej szkoły myślenia uznają każdą książkę za przydatną.”

Recenzent zauważa, że ​​„[Arora i Barak] podjęli zdecydowaną próbę włączenia bardzo aktualnego materiału, podczas gdy Goldreich koncentruje się bardziej na opracowaniu kontekstowych i historycznych podstaw dla każdej prezentowanej koncepcji” i że „przyklaskuje [s. ] wszystkim… autorom za ich wybitny wkład.”

Niezależna od maszyny teoria złożoności funkcji rekurencyjnych

Opis: Aksjomaty Bluma .

Metody algebraiczne dla interaktywnych systemów dowodowych

Opis: Ten artykuł wykazał, że PH jest zawarte w IP .

Złożoność procedur dowodzenia twierdzeń

Opis: Ten artykuł wprowadził pojęcie NP-zupełności i udowodnił, że problem spełnialności logicznej (SAT) jest NP-zupełny . Zauważ, że podobne pomysły zostały opracowane niezależnie nieco później przez Leonida Levina w „Levin, Universal Search Problems. Problemy Peredachi Informatsii 9(3):265-266, 1973”.

Komputery i nierozwiązywalność: przewodnik po teorii NP-zupełności

Opis: Główne znaczenie tej książki wynika z obszernej listy ponad 300 problemów NP-Kompletnych . Lista ta stała się powszechnym odniesieniem i definicją. Chociaż książka została opublikowana zaledwie kilka lat po zdefiniowaniu koncepcji, znaleziono tak obszerną listę.

Stopień trudności obliczania funkcji i częściowego uporządkowania zbiorów rekurencyjnych

Opis: Ten raport techniczny był pierwszą publikacją mówiącą o tym, co później przemianowano na złożoność obliczeniową

Jak dobra jest metoda simplex?

  • Victor Klee i George J. Minty
  • Klee, Wiktor ; Minty, George J. (1972). „Jak dobry jest algorytm simpleks?”. W Shisha, Oved (red.). Nierówności III (Proceedings of the Third Symposium on Inequalities, które odbyły się na Uniwersytecie Kalifornijskim w Los Angeles, Kalifornia, 1-9 września 1969, poświęcone pamięci Theodore S. Motzkin) . Nowy Jork-Londyn: Prasa akademicka. s. 159–175. MR  0332165 .

Opis: Wykonany z „Klee-Minty cube” w wymiarze  D , którego 2 D rogi każdy odwiedził gdański „s algorytmu simplex do optymalizacji liniowej .

Jak konstruować funkcje losowe

Opis: Ten artykuł wykazał, że istnienie funkcji jednokierunkowych prowadzi do losowości obliczeniowej .

IP = PSPACE

Opis: IP to klasa złożoności, której charakterystyka (oparta na interaktywnych systemach dowodowych ) różni się znacznie od zwykłych klas obliczeniowych ograniczonych czasowo/przestrzennie. W tym artykule Shamir rozszerzył technikę z poprzedniego artykułu autorstwa Lunda i innych, aby pokazać, że PSPACE jest zawarty w IP , a zatem IP = PSPACE, tak że każdy problem w jednej klasie złożoności można rozwiązać w drugiej.

Redukcja wśród problemów kombinatorycznych

  • RM Karp
  • W RE Miller i JW Thatcher, redaktorzy, Complexity of Computer Computations , Plenum Press, New York, NY, 1972, s. 85-103

Opis: Ten artykuł wykazał, że 21 różnych problemów jest NP-Kompletnych i pokazał wagę tej koncepcji.

Złożoność wiedzy o interaktywnych systemach dowodowych

Opis: W tym artykule wprowadzono pojęcie wiedzy zerowej .

List Gödla do von Neumann

Opis: Gödel omawia ideę efektywnego dowodzenia twierdzeń uniwersalnych.

O złożoności obliczeniowej algorytmów

Opis: Ten artykuł nadał złożoności obliczeniowej nazwę i źródło.

Ścieżki, drzewa i kwiaty

Opis: istnieje wielomianowy algorytm czasu, który znajduje maksymalne dopasowanie w grafie, które nie jest dwudzielne, i jest kolejnym krokiem w kierunku idei złożoności obliczeniowej . Więcej informacji znajdziesz w [2] .

Teoria i zastosowania funkcji zapadni

Opis: Ten artykuł tworzy teoretyczne ramy dla funkcji pułapek i opisuje niektóre z ich zastosowań, na przykład w kryptografii . Zauważ, że koncepcja funkcji zapadni została wprowadzona w "Nowych kierunkach w kryptografii" sześć lat wcześniej (patrz rozdział V "Powiązania problemów i zapadki.").

Złożoność obliczeniowa

Opis: Wprowadzenie do teorii złożoności obliczeniowej , książka wyjaśnia charakterystykę autora P-SPACE i inne wyniki.

Interaktywne dowody i twardość aproksymacji klik

Probabilistyczne sprawdzanie dowodów: nowa charakterystyka NP

Weryfikacja dowodu i problemy twardości aproksymacji

Opis: Te trzy artykuły ustaliły zaskakujący fakt, że niektóre problemy w NP pozostają trudne, nawet gdy wymagane jest tylko przybliżone rozwiązanie. Zobacz twierdzenie PCP .

Wewnętrzna trudność obliczeniowa funkcji

Opis: Pierwsza definicja klasy złożoności P. Jedna z prac założycielskich teorii złożoności.

Algorytmy

„Program maszynowy do dowodzenia twierdzeń”

Opis: Algorytm DPLL . Podstawowy algorytm dla SAT i innych problemów NP-Complete .

„Logika zorientowana na maszynę oparta na zasadzie rozdzielczości”

Opis: Pierwszy opis rozwiązania i unifikacji używany w automatycznym dowodzeniu twierdzeń ; używany w Prologu i programowaniu logicznym .

"Problem komiwojażera i minimalne drzewa rozpinające"

Opis: Zastosowanie algorytmu minimalnego drzewa rozpinającego jako algorytmu aproksymacyjnego dla problemu komiwojażera NP-Complete . Algorytmy aproksymacyjne stały się powszechną metodą radzenia sobie z problemami NP-Complete.

„Algorytm wielomianowy w programowaniu liniowym”

Opis: przez długi czas nie istniał algorytm wielomianowy, którego można dowieść, dla problemu programowania liniowego . Khachiyan jako pierwszy dostarczył algorytm, który był wielomianowy (i nie tylko był wystarczająco szybki przez większość czasu, jak poprzednie algorytmy). Później Narendra Karmarkar przedstawił szybszy algorytm w: Narendra Karmarkar, „Nowy algorytm wielomianowy do programowania liniowego”, Combinatorica , tom 4, no. 4, s. 373-395, 1984.

„Algorytm probabilistyczny do testowania pierwszości”

Opis: W pracy przedstawiono test pierwszości Millera-Rabina oraz zarysowano program algorytmów randomizowanych .

„Optymalizacja poprzez symulowane wyżarzanie”

Opis: W tym artykule opisano symulowane wyżarzanie , które jest obecnie bardzo powszechną heurystyką dla problemów NP-Complete .

Sztuka programowania komputerowego

Opis: Ta monografia ma cztery tomy obejmujące popularne algorytmy. Algorytmy są napisane zarówno w języku asemblerowym angielskim, jak i asemblerze MIX (lub w asemblerze MMIX w nowszych zeszytach). Dzięki temu algorytmy są zarówno zrozumiałe, jak i precyzyjne. Jednak użycie języka programowania niskiego poziomu frustruje niektórych programistów bardziej zaznajomionych z nowoczesnymi strukturalnymi językami programowania .

Algorytmy + Struktury danych = Programy

Opis: Wczesna, wpływowa książka o algorytmach i strukturach danych, z implementacjami w Pascalu.

Projektowanie i analiza algorytmów komputerowych

Opis: Jeden ze standardowych tekstów o algorytmach za okres około 1975-1985.

Jak rozwiązać to za pomocą komputera?

Opis: Wyjaśnia dlaczego algorytmy i struktury danych. Wyjaśnia proces twórczy , linię rozumowania , czynniki projektowe stojące za innowacyjnymi rozwiązaniami.

Algorytmy

Opis: Bardzo popularny tekst o algorytmach w późnych latach 80-tych. Był bardziej przystępny i czytelny (ale bardziej elementarny) niż Aho, Hopcroft i Ullman. Istnieją nowsze wydania.

Wprowadzenie do algorytmów

Opis: Ten podręcznik stał się tak popularny, że jest niemal de facto standardem nauczania podstawowych algorytmów. Wydanie I (z pierwszymi trzema autorami) ukazało się w 1990 roku, wydanie II w 2001 roku, a wydanie III w 2009 roku.

Algorytmiczna teoria informacji

„Na tablicach liczb losowych”

Opis: Zaproponował obliczeniowe i kombinatoryczne podejście do prawdopodobieństwa.

„Formalna teoria wnioskowania indukcyjnego”

Opis: Był to początek algorytmicznej teorii informacji i złożoności Kołmogorowa . Zauważ, że chociaż złożoność Kołmogorowa została nazwana na cześć Andrieja Kołmogorowa , powiedział on, że zalążek tej idei pochodzi od Raya Solomonoffa . Andriej Kołmogorow wniósł duży wkład w tę dziedzinę, ale w późniejszych artykułach.

„Algorytmiczna teoria informacji”

Opis: Wprowadzenie do algorytmicznej teorii informacji autorstwa jednej z ważnych osób w okolicy.

Teoria informacji

"Matematyczna teoria komunikacji"

Opis: Ten artykuł stworzył dziedzinę teorii informacji .

"Wykrywanie błędów i kody korekcji błędów"

Opis: W tym artykule Hamming przedstawił ideę kodu korygującego błędy . Stworzył kod Hamminga i odległość Hamminga oraz opracował metody dowodzenia optymalności kodu.

„Metoda konstrukcji kodów minimalnej redundancji”

Opis: Kodowanie Huffmana .

"Uniwersalny algorytm do sekwencyjnej kompresji danych"

Opis: Algorytm kompresji LZ77 .

Elementy teorii informacji

Opis: Popularne wprowadzenie do teorii informacji.

Weryfikacja formalna

Przypisywanie znaczenia programom

Opis: Przełomowy artykuł Roberta Floyda Assigning Meanings to Programs wprowadza metodę asercji indukcyjnych i opisuje, w jaki sposób program z adnotacjami z asercjami pierwszego rzędu może zostać pokazany jako spełniający specyfikację warunku wstępnego i końcowego – w artykule przedstawiono również koncepcje niezmiennika pętli i stan weryfikacji.

Aksjomatyczna podstawa programowania komputerowego

Opis: Artykuł Tony'ego Hoare'a An Axiomatic Basis for Computer Programming opisuje zbiór reguł wnioskowania (tj. formalnego dowodu) dla fragmentów języka programowania podobnego do Algola, opisanych w kategoriach (tak, jak się teraz nazywa) trójek Hoare'a.

Strzeżone polecenia, nieokreśloność i formalne wyprowadzanie programów

Opis: Artykuł Edsgera Dijkstry Guarded Commands, Nondeterminacy and Formal Derivation of Programs (poszerzony o jego podręcznik do studiów podyplomowych Dyscyplina programowania z 1976 r.) proponuje, aby zamiast formalnej weryfikacji programu po jego napisaniu (tj. post facto), programy i ich formalne dowody powinny być opracowywane ręka w rękę (używając transformatorów predykatów do stopniowego udoskonalania najsłabszych warunków wstępnych), metodą znaną jako programowe (lub formalne) udoskonalanie (lub wyprowadzenie), lub czasami „poprawność przez konstrukcję”.

Dowodzenie twierdzeń o programach równoległych

Opis: Artykuł wprowadzający dowody niezmienności programów współbieżnych.

Aksjomatyczna technika dowodowa dla programów równoległych I

Opis: W niniejszym artykule, wraz z artykułem tych samych autorów „Verifying Properties of Parallel Programs: An Axiomatic Approach. Commun. ACM 19(5): 279–285 (1976)”, przedstawiono aksjomatyczne podejście do weryfikacji programów równoległych.

Dyscyplina programowania

Opis: Klasyczny podręcznik Edsgera Dijkstry do studiów podyplomowych Dyscyplina programowania rozszerza jego wcześniejszy artykuł Guarded Commands, Nondeterminacy and Formal Derivation of Programs i mocno ustanawia zasadę formalnego wyprowadzania programów (i ich dowodów) z ich specyfikacji.

Semantyka denotacyjna

Opis: Semantyka denotacyjna Joego Stoya to pierwsza (na poziomie podyplomowym) obszerna ekspozycja matematycznego (lub funkcjonalnego) podejścia do formalnej semantyki języków programowania (w przeciwieństwie do podejścia operacyjnego i algebraicznego).

Temporalna logika programów

Opis: Zasugerowano użycie logiki temporalnej jako metody weryfikacji formalnej.

Charakteryzacja właściwości poprawnościowych programów równoległych z wykorzystaniem punktów stałych (1980)

Opis: Sprawdzanie modelu zostało wprowadzone jako procedura sprawdzania poprawności programów współbieżnych.

Komunikowanie procesów sekwencyjnych (1978)

Opis: Artykuł Tony'ego Hoare'a (oryginalny) komunikujący się sekwencyjny proces (CSP) przedstawia ideę współbieżnych procesów (tj. programów), które nie współdzielą zmiennych, ale zamiast tego współpracują wyłącznie poprzez wymianę synchronicznych wiadomości.

Rachunek systemów komunikacyjnych

Opis: Artykuł Robina Milnera A Calculus of Communicating Systems (CCS) opisuje algebrę procesów pozwalającą na formalne rozumowanie systemów współbieżnych procesów, co nie było możliwe we wcześniejszych modelach współbieżności (semafory, sekcje krytyczne, oryginalny CSP).

Tworzenie oprogramowania: rygorystyczne podejście

Opis: Podręcznik Cliffa Jonesa Tworzenie oprogramowania: rygorystyczne podejście to pierwsza pełnometrażowa prezentacja metody rozwoju wiedeńskiego (VDM), która rozwinęła się (głównie) w wiedeńskim laboratorium badawczym IBM w ciągu ostatniej dekady i która łączy w sobie ideę programu udokładnianie według Dijkstry z udokładnianiem danych (lub reifikacją), w którym algebraicznie zdefiniowane abstrakcyjne typy danych są formalnie przekształcane w coraz bardziej „konkretne” reprezentacje.

Nauka programowania

Opis: Podręcznik Davida Griesa Nauka o programowaniu opisuje najsłabszą metodę Dijkstry do formalnego wyprowadzania programów, z wyjątkiem znacznie bardziej przystępnego sposobu niż wcześniejsza dyscyplina programowania Dijkstry .

Pokazuje, jak konstruować programy, które działają poprawnie (bez błędów, poza błędami pisarskimi). Czyni to, pokazując, jak używać wyrażeń predykatów warunku wstępnego i końcowego oraz technik sprawdzania programu, aby kierować sposobem tworzenia programów.

Wszystkie przykłady w książce są na małą skalę i wyraźnie akademickie (w przeciwieństwie do świata rzeczywistego). Kładą nacisk na podstawowe algorytmy, takie jak sortowanie i scalanie oraz manipulowanie ciągami. Uwzględniono podprogramy (funkcje), ale środowiska programowania obiektowego i funkcjonalnego nie są adresowane.

Komunikowanie procesów sekwencyjnych (1985)

Opis: Podręcznik Tony'ego Hoare'a Communicating Sequential Processes (CSP) (obecnie trzecie najczęściej cytowane źródło informatyki wszechczasów) przedstawia zaktualizowany model CSP, w którym współpracujące procesy nie mają nawet zmiennych programowych i który, podobnie jak CCS, umożliwia systemom procesów być uzasadnione formalnie.

Logika liniowa (1987)

Opis: Liniowa logika Girarda była przełomem w projektowaniu systemów typowania dla obliczeń sekwencyjnych i współbieżnych, zwłaszcza dla systemów typowania świadomych zasobów.

Rachunek procesów mobilnych (1989)

Opis: Ten artykuł przedstawia rachunek Pi , uogólnienie CCS, które umożliwia mobilność procesów. Rachunek jest niezwykle prosty i stał się dominującym paradygmatem w teoretycznym badaniu języków programowania, systemów typowania i logiki programu.

Notacja Z: podręcznik referencyjny

Opis: Klasyczny podręcznik Mike'a Spivey'a The Z Notation: A Reference Manual podsumowuje formalną specyfikację języka Z, notację Z , która chociaż została stworzona przez Jeana-Raymonda Abriala, rozwinęła się (głównie) na Uniwersytecie Oksfordzkim w ciągu poprzedniej dekady.

Komunikacja i współbieżność

Opis: Podręcznik Robina Milnera Communication and Concurrency jest bardziej przystępną, choć wciąż zaawansowaną technicznie, ekspozycją jego wcześniejszych prac CCS.

Praktyczna teoria programowania

Opis: aktualna wersja programowania predykatywnego . Podstawa dla UTP firmy CAR Hoare . Najprostsze i najbardziej wszechstronne metody formalne.

Bibliografia