Skip to content

Repozytorium ze wszystkimi kodami oraz historią commitów zgodnie z "Inteligencja obliczeniowa. Kurs video. Algorytmy genetyczne i programowanie równoległe", wyd. Helion.

License

Notifications You must be signed in to change notification settings

gnypit/helion_io_part1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f52ba0d · Mar 11, 2025
Dec 29, 2024
Feb 12, 2025
Feb 12, 2025
Mar 4, 2025
Mar 4, 2025
Mar 3, 2025
Jun 9, 2024
Mar 11, 2025
Sep 22, 2024

Repository files navigation

Witam wszystkich w repozytorium do kursu video "Inteligencja obliczeniowa. Algorytmy genetyczne i programowanie równoległe"!

Na wstępie należą się podziękowania redakcji wydawnictwa Helion oraz dwóm osobom:

  1. Mojej żone Alicji, za wyrozumiałość, gdy nasze mieszkanie zmieniało się w studio nagraniowe o mało standardowych godzinach dnia i nocy;
  2. Mojemu tacie Tomaszowi, za wiele nocy spędzonych nad uczeniem mnie programowania w Pascalu, gdy byłem jeszcze w gimnazjum.

Struktura repozytorium jest następująca:

  • folder "01_wstep" zawiera zeszyty z użytecznymi bibliotekami w Pythonie, przykładami programowania obiektowego oraz skryptem do aplikacji okienkowej prostego kalkulatora;
  • folder "02_algorytmy_genetyczne" zawiera zeszyty z optymalizacją funkcji oraz rozwiązaniami problemu plecakowego/złodzieja za pomocą algorytmów genetycznych z wykorzystaniem biblioteki PyGAD - dodatkowo w tym folderze znajdują się wszystkie pliki związane z pierwszym projektem, czyli rozwiązaniem problemy labiryntu;
  • folder "03_programowanie_rownolegle" zawiera skrypty do uruchomienia za pomocą PyPy bądź CPython, profilowania kodu, generowania danych oraz pracy z wątkami i procesami - ponadto znajdują się tu również dane i praca domowa związana z przetwarzaniem danych za pomocą wątków oraz drugi projekt, czyli mnożenie dowolnie dużych macierzy kwadratowych równolegle;
  • folder "notatki" z plikami PDF z tym, co pisałem podczas filmów teoretycznych.

Dodatkowo w repozytorium można znaleźć notatki z filmów teoretycznych i nieco przydatnych linków. Pomijając skrypty do aplikacji okienkowej oraz te stworzone do porównywania różnych implementacji Pythona, wszystko można uruchomić w Google Colaboratory. W razie potrzeby zachęcam do komentarzy i zgłaszania chęci kontaktu tutaj, w repozytorium. Zwłaszcza, jeśli zauważy się niedociągnięcia - jestem tylko człowiekiem i mogłem coś przeoczyć ;) albo czegoś nie wiedzieć. W razie kłopotów z korzystaniem z repozytorium zapraszam do tworzenia issues oraz dyskusji tu, na GitHub.

Spis treści do filmów w kursie:

  1. Wstęp
    • 01.00 - Zwiastun
    • 01.01 - Krótko o kursie & polecane materiały
    • 01.02 - Krótka prezentacja gotowego repozytorium (https://www.github.com/gnypit/helion_io_part1)
    • 01.03 - Instalacja Pythona, instalowanie bibliotek, korzystanie z Google Colaboratory
    • 01.04 - Typy danych, struktury danych, klasy (programowanie obiektowe) - teoria
    • 01.05 - Stworzenie repozytorium Git, obsługa Jupytera oraz początek "projektu" kalkulatora
    • 01.06 - Kalkulator c.d
    • 01.07 - Kalkulator c.d.
    • 01.08 - Kalkulator - koniec wersji w zeszycie Jupytera
    • 01.09 - Predefiniowane metody dla klas w Pythonie
    • 01.10 - Kalkulator jako aplikacja okienkowa cz. 1
    • 01.11 - Kalkulator jako aplikacja okienkowa cz. 2
    • 01.12 - Kalkulator jako aplikacja okienkowa cz. 3
    • 01.13 - Używanie biblioteki numpy oraz matplotlib
    • 01.14 - Używanie biblioteki plotly
    • 01.15 - Krótko o bibliotekach pandas i seaborn
    • BONUS 01 - Funkcje, przestrzenie, miary i metryki
    • BONUS 02 - Prawdopodobieństwo & ekstrema funkcji
  2. Wprowadzenie do algorytmów genetycznych z biblioteką pygad
    • 02.01 - Fundamenty algorytmów genetycznych - teoria
    • 02.02 - Operatory selekcji - ranking i losowy - teoria
    • 02.03 - Operatory selekcji - rangowy: liniowy i ekspotencjalny - teoria
    • 02.04 - Operatory selekcji - turniej + pseudokody - teoria
    • 02.05 - Operatory krzyżowania - teoria
    • 02.06 - PyGAD: strona www & dokumentacja
    • 02.07 - PyGAD ćw. nr 1: Optymalizacja funkcji wytrzymałości stopu
    • 02.08 - PyGAD ćw. nr 2: Problem partycji - cz. 1
    • 02.09 - PyGAD ćw. nr 2: Problem partycji - cz. 2
    • 02.10 - PyGAD ćw. nr 3: Problem "złodzieja"
    • 02.11 - PyGAD ćw. nr 3: Problem "złodzieja" c.d. - jak ewaluować kod
    • 02.12 - Projekt nr 1: Rozwiązywanie labiryntu cz. 1 (teoria & nieco o symulacjach)
    • 02.13 - Projekt nr 1: Rozwiązywanie labiryntu cz. 2
    • 02.14 - Projekt nr 1: Rozwiązywanie labiryntu cz. 3
    • 02.15 - Projekt nr 1: Rozwiązywanie labiryntu cz. 4
    • 02.16 - Projekt nr 1: Rozwiązywanie labiryntu cz. 5
    • 02.17 - Podsumowanie rozdziału nr 2 i zapowiedź rozdziału nr 3
  3. Podstawy programowania równoległego
    • 03.01 - Omówienie idei programowania równoległego, procesów, wątków, oraz problemów CPU- bądź I/O-bound
    • 03.02 - Krótko o Python 3.13; omówienie kompilatorów i interpreterów
    • 03.03 - Używanie PyPy
    • 03.04 - Profilowanie kodu
    • 03.05 - Blokady i bariery na przykładzie przetwarzania danych tekstowych wątkami
    • 03.06 - Zmienne warunkowe, race condition - symulacja konta bankowego
    • 03.07 - Równoległe pobieranie danych za pomocą API i ich przetwarzanie - wątki c.d.
    • 03.08 - Trochę teorii związanej z macierzami
    • 03.09 - Projekt nr 2: mnożenie macierzy w sposób równoległy cz. 1
    • 03.10 - Projekt nr 2: mnożenie macierzy w sposób równoległy cz. 2
    • 03.11 - Projekt nr 2: mnożenie macierzy w sposób równoległy cz. 3
    • 03.12 - Podsumowanie rozdziału 3 i zapowiedź równoległych algorytmów genetycznych w drugiej części kursu

Aby nie popełniać autoplagiatu, już na tym etapie wspomnę, że część kodów jest inspirowana innym repozytorium: https://github.com/gnypit/pyqkd

Ponadto należą się ukłony wobec wszelkich twórców oraz osób kontrybuujących do powstawania Pythona i bibliotek, których tu używaliśmy, z PyGAD na czele.

Finalnie, coby nieco autopromocji też było, zachęcam do zapoznania się z moimi publikacjami oraz zespołami naukowymi, z którymi mam przyjemność pracować:

Do kontaktu zachęcam tutaj: https://www.linkedin.com/in/gnypit/

Powodzenia w nauce! Jakub T. Gnyp

About

Repozytorium ze wszystkimi kodami oraz historią commitów zgodnie z "Inteligencja obliczeniowa. Kurs video. Algorytmy genetyczne i programowanie równoległe", wyd. Helion.

Resources

License

Stars

Watchers

Forks