Rezerwuj algorytmy poza Cormen

21

Skończyłem większość materiału w książce Cormen's Intro to Algorytmy i szukam książki o algorytmach, która obejmowałaby materiał poza książką Cormana. Czy są jakieś rekomendacje?

UWAGA: Zapytałem o to przy przepełnieniu stosu, ale nie byłem zbyt zadowolony z odpowiedzi.

UWAGA: Patrząc na większość komentarzy, myślę, że idealnie chciałbym znaleźć książkę, która obejmowałaby materiał kursu 787 w tym opisie kursu .

Eugene
źródło
1
zobacz to
Kaveh
1
@Kaveh Przeczytałem już Tardos.
Eugene
1
„Wprowadzenie do algorytmów” obejmuje prawie wszystko w zakresie projektowania i analizy algorytmów i jest najpopularniejszym na świecie podręcznikiem zarówno dla studentów studiów licencjackich, jak i magisterskich. Każdy rozdział zawiera krótkie wprowadzenie do powiązanych materiałów, a na końcu znajduje się bardzo długa lista odniesień do dalszych badań. Jeśli uważasz, że potrzebujesz głębszego zrozumienia określonego tematu, np. Algorytmów graficznych, teorii złożoności itp., Najlepiej jest spojrzeć na bibliografię książki, a jeśli to nie pomoże, możesz również zasięgnąć porady ekspertów w tej dziedzinie konkretny obszar.
Ali
12
„Wprowadzenie do algorytmów” obejmuje prawie wszystko w zakresie projektowania i analizy algorytmów - Ach, gdyby tylko tak było.
JeffE
5
Jedną z książek, którą naprawdę lubię, jest Wprowadzenie do algorytmów: Podejście twórcze autorstwa Udi Manbera. W przeciwieństwie do większości innych podręczników sam uczy, jak wymyślić algorytmy. Dla każdego algorytmu omawianego w podręczniku zapewnia on coraz większy postęp sekcji, pierwszy opisujący najbardziej oczywiste podejście i każdą kolejną próbę naprawienia błędów poprzedniego. Moim zdaniem jest to doskonały tekst.
Vinayak Pathak

Odpowiedzi:

9
I am looking for an algorithms book that covers material beyond Corman's book.

Można na nie odpowiedzieć na wiele różnych sposobów, w zależności od tego, czego chcesz „poza”. Radziłbym zapytać o wiele bardziej szczegółowe wskazówki, ponieważ masz większe szanse na uzyskanie konkretnych, pomocnych odpowiedzi. Jeśli chodzi o ogólne wskazówki:

  • Możesz znaleźć garść ogólnych książek, które eksplorują ogólne zagadnienia algorytmiczne bardziej szczegółowo niż Corman, ale w przeważającej części musisz zacząć specjalizować się, jeśli książka będzie znacznie głębsza. W przeciwnym razie może być wzdęty i pozbawiony przydatności.
  • Zamiast tego poszukaj konkretnych tematów. Istnieje wiele zaawansowanych materiałów, jeśli skupisz się na konkretnych tematach. Czy jesteś zainteresowany:
    • algorytmy sortowania?
    • algorytmy ciągów?
    • algorytmy liczbowe?
    • algorytmy matrycowe?
    • algorytmy graficzne?
    • algorytmy geometryczne?
    • algorytmy kwantowe?
    • algorytmy stochastyczne / randomizowane?
    • Programowanie liniowe?
    • modele obliczeń?
    • podstawowa teoria złożoności i algorytmika?
  • Jeśli chcesz zrozumieć, w jaki sposób uzyskać własne algorytmy, skoncentruj się na zrozumieniu znanych struktur danych wykorzystywanych w badanej przestrzeni problemów (więc uzyskaj dobrą głębię istniejącej wiedzy) i spójrz na dobre zrozumienie teorii złożoności i modeli obliczenie. Dadzą one dobre intuicyjne odczucie, co jest możliwe dla danego problemu, a jakie podejścia prawdopodobnie odniosą większy sukces, nawet jeśli trudno ci formalnie udowodnić dolne granice.

Książki takie jak kilka Papadimitriou lub Arora / Barak on Theory złożoności byłyby moją propozycją, aby śledzić Cormana, aby lepiej zrozumieć, jakie algorytmy są możliwe i zbudować trochę intuicji, ale po prostu zajrzałbym do nowoczesnych artykułów przeglądowych na temat poszczególnych dziedzin i chciałbym ukończyć studia i książki na poziomie badawczym na bardziej szczegółowe tematy, jeśli chcesz zapoznać się z nowoczesnym poziomem zrozumienia.

ex0du5
źródło
1
Zadajesz bardzo dobre pytanie. Interesują mnie algorytmy teorii liczb, więc już spojrzałem na teorię liczb algorytmicznych Bacha i Shallita. Szukam jednak książek, które rozwiną moje algorytmiczne techniki rozwoju poza Cormenem.
Eugene
1
Nie szukam głębi, ale szerokość. Nie podstawowa teoria złożoności, ale wprowadzenie do algorytmów / struktur danych, o których słyszę, ale nie ma ich w CLRS (lub występują tylko jako problemy), aby dodać do arsenału programowania rzeczy, o których słyszałem; rzeczy takie jak: wyszukiwanie A *, najlepsze wyszukiwanie, filtry Bloom, kompresja plików / obrazów, Burstsort, Hidden Markov Model, klasyfikatory Naive Bayes, algorytmy kwantowe, listy pominięć, TimSort, Treaps, Tries, algorytmy diagramów Voronoi itp. Nawet jeśli jest to tylko zbiór interesujących artykułów na różne tematy, takie jak Perły programistyczne firmy Bentley.
dr jimbob,
16

Jak zauważyli inni, książki na temat (zaawansowanych) algorytmów najlepiej wybierać tematycznie. Dobrym, ale ciężkim ogólnym odniesieniem z rygorystyczną analizą jest prawdopodobnie sztuka programowania komputerowego Knutha.

Jeśli chodzi o techniki analizy, możesz zainteresować się Wstępem do analizy algorytmów Sedgewicka i Flajoleta oraz kombinatoryką algorytmiczną Flajoleta i Sedgewicka, aby uzyskać więcej teorii w tym samym kierunku.

Aby podejść do rozwiązywania trudnych problemów, zobacz Algorytmika dla trudnych problemów autorstwa Hromkoviča.

Raphael
źródło
5

Czy spojrzałeś na Handbook of Theoretical Computer Science

Jeśli chcesz wyjść poza niezbędne algorytmy i przejść do programowania funkcjonalnego, spójrz na struktury danych o czysto funkcjonalnym charakterze . Wiem, że tytuł mówi o strukturach danych, ale algorytmy w książce mogą otworzyć oczy na inny sposób programowania.

EDYTOWAĆ

Przyjrzałem w opisie kursu dla CS 787 i aktualnych zajęciach

Zauważa

Wykorzystamy głównie artykuły z literatury. Zostaną one udostępnione jako materiały informacyjne lub przez Internet. Kilka książek o algorytmach zostanie zarezerwowanych w bibliotece Wendta.

Gdybym to był ja, skontaktowałbym się z katalogiem instruktorów . :)

Guy Coder
źródło
Nie, nie widziałem tego podręcznika. Dzieki za sugestie!
Eugene
Łał. Nie mogłem znaleźć informacji o kursie. Dzięki za link.
Eugene
-2

Algorytmy komputerowe są bardzo złożone i trudne do zrozumienia, więc nie ma najlepszej książki, tzn. Tylko jednej, która wyjaśni ci wszystko. Musisz przeczytać kilka z nich, aby opanować ten temat.

oto moje 2 centy na podstawie 10 lat programowania i udziału w licznych wywiadach:

  1. Podręcznik projektowania algorytmów autorstwa Stevena S. Skieny
  2. Algorytmy ( http://algs4.cs.princeton.edu/home/ ) autorstwa Sedgwick
  3. Wprowadzenie do algorytmów Thomas Cormen
  4. Algorytmy do wywiadów Adnana Aziza
  5. Algorytmy w języku Python: opanowanie podstawowych algorytmów w języku Python
  6. Algorytmy odblokowane przez Thomasa Cormena

Odniesienie:

Kris
źródło
4
A dlaczego je polecasz?
Raphael
3
W szczególności, dlaczego polecasz „Wprowadzenie do algorytmów” Cormena i in. W odpowiedzi na pytanie o książki, które wykraczają poza tę książkę.
David Richerby,