Algorytmy
Algorytmy. Struktury danych i złożoność obliczeniowa
Feliks Kurp
Algorytmy to skończone ciągi jasno zdefiniowanych czynności, prowadzących do wykonania określonych zadań. Niniejszy podręcznik, skupiony na algorytmach imperatywnych (od łacińskiego słowa imporo – rozkazywać) wprowadza podstawowe pojęcia algorytmiki niezbędne do nauki programowania. Uczy projektowania, zapisywania i analizy poprawności, jak również podstaw szacowania złożoności czasowej i pamięciowej algorytmów. Wraz z książką, którą trzymasz w ręku między innymi: Poznasz szereg ważnych algorytmów, jak wyszukiwanie binarne, sortowanie szybkie, algorytmy klasy dziel i zwyciężaj, algorytmy zachłanne etc. Nauczysz się korzystać ze stosowanych powszechnie w programowaniu struktur danych: tablic, słowników, list wiązanych, stosów, kolejek, drzew binarnych i grafów. Dowiesz się jak praktycznie stosować iterację i rekurencję w programowaniu. Zdobędziesz podstawy języka Java W książce zamieszczono szereg zadań, których rozwiązanie zmusza czytelnika do lepszego zrozumienia i pogłębienia jego umiejętności praktycznych. Książka jest bogato ilustrowana rysunkami poglądowymi i fragmentami kodów.
Algorytmy sztucznej inteligencji. Ilustrowany przewodnik
Rishal Hurbans
Sztuczna inteligencja ma umożliwiać wykorzystywanie danych i algorytmów do podejmowania lepszych decyzji, rozwiązywania trudnych problemów i automatyzowania złożonych zadań. Ma też zwiększać produktywność człowieka. Obecnie sztuczna inteligencja z rozmachem wkracza do kolejnych dziedzin. Budzi zachwyt, ale też kontrowersje i obawy. Nowe narzędzia, choćby były tworzone z najlepszymi intencjami, zawsze mogą zostać wykorzystane w niewłaściwy czy szkodliwy sposób. Oznacza to, że każdy, kto rozwija nowe technologie, powinien to robić odpowiedzialnie. Aby to było możliwe, trzeba dobrze zrozumieć podstawy działania sztucznej inteligencji - algorytmy. To praktyczny przewodnik po algorytmach sztucznej inteligencji. Skorzystają z niego programiści i inżynierowie, którzy chcą zrozumieć zagadnienia i algorytmy związane ze sztuczną inteligencją na podstawie praktycznych przykładów i wizualnych wyjaśnień. Książka pokazuje, jak radzić sobie z takimi zadaniami programistycznymi jak wykrywanie oszustw bankowych czy sterowanie pojazdem autonomicznym. Pierwsze rozdziały dotyczą podstawowych koncepcji i algorytmów i stają się punktem wyjścia do bardziej złożonych tematów: wydajnych algorytmów przeszukiwania oraz poszukiwania rozwiązań w środowisku konkurencyjnym. Przedstawiono tu zagadnienia uczenia maszynowego, w tym proces przygotowania danych, modelowania i testowania. Omówiono też zasady uczenia przez wzmacnianie za pomocą algorytmu Q-learning. W książce: kategorie i znaczenie algorytmów sztucznej inteligencji. inteligentne przeszukiwanie w procesie podejmowania decyzji algorytmy genetyczne i inteligencja rozproszona uczenie maszynowe i sieci neuronowe uczenie przez wzmacnianie Zrozum algorytmy, a pojmiesz istotę sztucznej inteligencji!
Algorytmy uczenia maszynowego. Zaawansowane techniki implementacji
Giuseppe Bonaccorso
Imponujący rozwój standardowych algorytmów przy ciągłej obniżce cen sprzętu i udostępnianiu coraz to szybszych komponentów przyczynił się do zrewolucjonizowania wielu gałęzi przemysłu. Obecnie uczenie maszynowe pozwala automatyzować procesy, które do niedawna musiały być zarządzane przez człowieka. Zadania, które jeszcze dekadę temu stanowiły nieprzekraczalną przeszkodę, dziś są wykonywane przez zwykły komputer osobisty. W efekcie dzięki technologii oraz dostępnym wysokopoziomowym otwartym platformom każdy, kto zainteresuje się uczeniem maszynowym, może projektować i wdrażać niezwykle potężne modele. Celem tej książki jest przybliżenie profesjonalistom tajników złożonych algorytmów uczenia maszynowego i zasad ich stosowania w praktyce. Poza praktycznymi informacjami dotyczącymi działania algorytmów i ich wdrożeń znalazły się tu również niezbędne podstawy teoretyczne. Opisano klasyczne modele uczenia nadzorowanego, nienadzorowanego i półnadzorowanego. Wskazano, w jakich sytuacjach okazują się one najbardziej przydatne. Zaprezentowano techniki wydobywania danych za pomocą modeli bayesowskich, algorytmu MCMC, a także dzięki stosowaniu ukrytych modeli Markowa. Omówiono zestaw przydatnych do uczenia maszynowego narzędzi, takich jak biblioteki: scikit-learn, Keras i TensorFlow. Najciekawsze zagadnienia: najważniejsze koncepcje teoretyczne uczenia maszynowego modelowanie probabilistyczne i uczenie hebbowskie zaawansowane koncepcje modeli neuronowych modele generatywne, takie jak splotowe sieci GAN i sieci Wassersteina głębokie sieci przekonań zaawansowane algorytmy: TD(tylda), aktor-krytyk, SARSA i Q-uczenie Uczenie maszynowe - już dziś zaimplementuj rozwiązania przyszłości!
Robert Sedgewick, Kevin Wayne
Nie odkrywaj koła na nowo — sprawdź gotowe rozwiązania! Jak oceniać wydajność algorytmów? Jak wydajnie sortować elementy? Jak kompresować dane? Algorytmy od zawsze porównywane były do przepisów kucharskich. Z celnością tego porównania trudno dyskutować, na pewno jednak przesolenie zupy ma zupełnie inne konsekwencje niż błędnie opracowany lub zaimplementowany algorytm. To właśnie algorytmy decydują o czasie wykonania skomplikowanych operacji przez programy komputerowe, a ich odpowiednia implementacja może niejednokrotnie decydować o sukcesie lub porażce projektu wartego fortunę. Dzięki tej książce masz szansę uniknąć typowych programistycznych błędów i porażek. Jej lektura zapozna Cię z najpopularniejszymi algorytmami, ich licznymi zaletami oraz słabymi stronami. Sprawdzisz, do czego można je zastosować, a w jakich miejscach lepiej zrezygnować z ich wykorzystania. Ponadto nauczysz się analizować działanie algorytmów, mierzyć ich wydajność oraz dobierać dane testowe. W książce zostały omówione klasyczne algorytmy sortowania, wyszukiwania, operacji na grafach oraz kompresji danych. Jej ogromnym atutem są przykładowe implementacje algorytmów w języku JAVA oraz to, że przedstawiony kod jest gotowy do natychmiastowego użycia! Pozycja ta jest obowiązkową lekturą dla każdego programisty, któremu zależy na najwyższej wydajności tworzonych rozwiązań. Podstawowe pojęcia Struktura programu w języku JAVA Instrukcje, typy danych, wyrażenia w języku JAVA Korzystanie z abstrakcyjnych typów danych Stosy, kolejki Analiza algorytmów Algorytmy sortowania i wyszukiwania Wykorzystanie grafów Znajdowanie najkrótszej ścieżki Operacja na łańcuchach znaków Algorytmy kompresji danych Nie trać czasu i energii — korzystaj ze sprawdzonych rozwiązań!
Prateek Joshi
Artificial Intelligence is becoming increasingly relevant in the modern world. By harnessing the power of algorithms, you can create apps which intelligently interact with the world around you, building intelligent recommender systems, automatic speech recognition systems and more.Starting with AI basics you'll move on to learn how to develop building blocks using data mining techniques. Discover how to make informed decisions about which algorithms to use, and how to apply them to real-world scenarios. This practical book covers a range of topics including predictive analytics and deep learning.
Nicolas Bohorquez
Asynchronous programming is one of the most effective but often misunderstood techniques for building fast, scalable, and responsive systems in Python. While it can significantly improve performance, efficiency, and sustainability, using async without a clear understanding of its trade-offs can lead to fragile designs and hard-to-debug issues.This book offers a structured approach to applying asynchronous programming in Python. It begins with a conceptual framework to help you distinguish between synchronous and asynchronous execution models, and shows how async relates to other concurrency strategies such as multithreading and multiprocessing. From there, you will explore the core tools available for building async applications in Python.You will also learn how to measure the impact of async programming in practical scenarios, profile and debug asynchronous code, and evaluate performance improvements using real-world metrics. The final chapters focus on applying async techniques to common cloud-based systems, such as web frameworks, database interactions, and data-pipelines tools.Designed for developers looking to apply async programming with confidence, this book blends real-world examples with core concepts to help you write efficient, maintainable Python code.
Badanie danych. Raport z pierwszej linii działań
Rachel Schutt, Cathy O'Neil
Unikalne wprowadzenie do nauki o danych! W dzisiejszych czasach najcenniejszym dobrem jest informacja. Ogromne ilości danych są przechowywane w przepastnych bazach danych, a kluczem do sukcesu jest ich umiejętna analiza i wyciąganie wniosków. To dynamicznie rozwijająca się dziedzina wiedzy, w której do tej pory brakowało solidnych podręczników, pozwalających na dogłębne poznanie tego obszaru. Na szczęście to się zmieniło! To unikalna książka, w której badacze z największych firm branży IT dzielą się skutecznymi technikami analizy danych. Z kolejnych rozdziałów dowiesz się, czym jest nauka o danych, model danych oraz test A/B. Ponadto zdobędziesz wiedzę na temat wnioskowania statystycznego, algorytmów, języka R oraz wizualizacji danych. Sięgnij po tę książkę, jeżeli chcesz się dowiedzieć, jak wykrywać oszustwa, korzystać z MapReduce oraz badać przyczynowość. To obowiązkowa pozycja na półce czytelników zainteresowanych badaniem danych. Wśród tematów poruszonych w książce odnajdziesz: Wnioskowanie statystyczne, eksploracyjną analizę danych i proces (metodologię) nauki o danych Algorytmy Filtry spamu, naiwny algorytm Bayesa i wstępną obróbkę danych Regresję logistyczną Modelowanie finansowe Mechanizmy rekomendacji i przyczynowość Wizualizowanie danych Sieci społecznościowe i dziennikarstwo danych Inżynierię danych, systemy MapReduce, Pregel i Hadoop Wyciągnij wartościowe wnioski z posiadanych informacji!
James Cutajar
Learning about data structures and algorithms gives you a better insight on how to solve common programming problems. Most of the problems faced everyday by programmers have been solved, tried, and tested. By knowing how these solutions work, you can ensure that you choose the right tool when you face these problems.This book teaches you tools that you can use to build efficient applications. It starts with an introduction to algorithms and big O notation, later explains bubble, merge, quicksort, and other popular programming patterns. You’ll also learn about data structures such as binary trees, hash tables, and graphs. The book progresses to advanced concepts, such as algorithm design paradigms and graph theory. By the end of the book, you will know how to correctly implement common algorithms and data structures within your applications.