Przejdź do treści

Materiały Akademii Sztuki Kwantowej → blok 4

Kwantowe wyżarzanie kombinatorycznych problemów optymalizacyjnych

Prowadzenie: dr hab. Bartłomiej Gardas

Adiabatyczne obliczenia kwantowe i algorytmy inspirowane fizyką, ze szczególnym uwzględnieniem procesora kwantowego D-Wave. Model Isinga i QUBO, kodowanie problemów (Max-Cut, kolorowanie grafów, TSP), symulowane wyżarzanie, symulowana bifurkacja, obliczenia na kartach graficznych.

Slajdy i skrypty (PDF)

Pliki otwierają się bezpośrednio w przeglądarce — nie trzeba niczego instalować ani zakładać konta.

MateriałStronRozmiar
Kwantowe wyżarzanie — komplet materiałów szkolenia w jednym pliku
01-kwantowe-wyzarzanie-komplet-materialow.pdf
1362,9 MB

Notatniki Jupyter z ćwiczeniami

Odnośnik „otwórz podgląd” prowadzi do gotowego podglądu notatnika wraz z wynikami obliczeń i wykresami — bez instalowania Pythona. Aby samodzielnie uruchomić kod, należy pobrać plik .ipynb (patrz „Jak uruchomić ćwiczenia” poniżej).

Dzień 1 — teoria: model Isinga, QUBO, twierdzenie adiabatyczne, D-Wave

katalog warsztaty/dzien-1

NotatnikPodglądPlikKomórek
Pozyskanie plików
00_Przygotowanie_srodowiska_pracy.ipynb
otwórz podglądpobierz33
Klasyczny model Isinga
01_Klasyczny_model_Isinga.ipynb
otwórz podglądpobierz17
Model QUBO
02_Model_QUBO.ipynb
otwórz podglądpobierz13
Kodowanie dyskretnych problemów optymalizacyjnych za pomocą QUBO / Isinga.
03_Przykłady_kodowania_problemow_QUBO_Ising.ipynb
otwórz podglądpobierz7
Algorytm wyczerpującego przeszukiwania
04_Algorytm_wyczerpującego_przeszukiwania.ipynb
otwórz podglądpobierz9
Gwarancja optymalności
05_Przegląd_algorytmow_hurystycznych.ipynb
otwórz podglądpobierz2
Kwantowy model Isinga
06_Kwantowy_model_Isinga.ipynb
otwórz podglądpobierz3
Twierdzenie adiabatyczne
07_Twierdzenie_adiabatyczne_i_wyzarzanie_kwantowe.ipynb
otwórz podglądpobierz8
Wyżarzacze kwantowe
08_D_Wave.ipynb
otwórz podglądpobierz5
Zadania dodatkowe niewymagające programowania
09_zadania_dodatkowe.ipynb
otwórz podglądpobierz1

Dzień 2 — praktyka: symulowane wyżarzanie, symulowana bifurkacja, GPU

katalog warsztaty/dzien-2

NotatnikPodglądPlikKomórek
Ocean Software
01_Praca_z_wyżarzaczami_kwantowymi.ipynb
otwórz podglądpobierz11
Algorytm symulowanego wyżarzania
02_Algorytm_symulowanego_wyżarzania.ipynb
otwórz podglądpobierz18
Algorytm symulowanej bifurkacji
03_Algorytm_symulowanej_bifurkacji.ipynb
otwórz podglądpobierz18
Wyżarzanie równoległe
04_Algorytm_wyżarzania_równoległego.ipynb
otwórz podglądpobierz14
Branch and Bound
05_Algorytm_heurystycznego_branch_and_bound.ipynb
otwórz podglądpobierz8
Wykorzystanie procesorów graficznych (GPU) w algorytmach heurystycznych
06_GPU.ipynb
otwórz podglądpobierz17

Pomiary wydajności algorytmów (wymagają dodatkowego środowiska: GPU, CuPy/PyTorch CUDA)

katalog warsztaty/dzien-2/benchmarks

NotatnikPodglądPlikKomórek
Generowanie danych dla benchmarków
obliczenia_dodatkowe_srodowisko.ipynb
otwórz podglądpobierz3
Generowanie danych dla benchmarków
obliczenia_podstawowe_srodowisko.ipynb
otwórz podglądpobierz4
Wyniki benchmarków
wyniki.ipynb
otwórz podglądpobierz9

Moduły pomocnicze, instancje testowe i wyprowadzenia rachunkowe

katalog warsztaty/pliki_pomocnicze

NotatnikPodglądPlikKomórek
Wyprowadzenie wzorów:
oscylator_harmoniczny_wyprowadzenie.ipynb
otwórz podglądpobierz3
Wyprowadzenie wzoru na różnicę energii
roznica_energii_wyprowadzenie.ipynb
otwórz podglądpobierz1
Problem podziału grafu
rozwiazania_wybranych_zadan_dodatkowych.ipynb
otwórz podglądpobierz4
Metoda Eulera
rozwiazywanie_rownan_rozniczkowych.ipynb
otwórz podglądpobierz14
Łagodne wprowadzenie do teorii grafów
wprowadzenie_do_teorii_grafow.ipynb
otwórz podglądpobierz13

Program szkolenia

DokumentRozmiar
Modul qa
plan/modul_qa.md
2 kB
Podsumowanie
plan/podsumowanie.md
1 kB

Przykładowe programy

PlikRozmiar
warsztaty/dzien-1/setup.py1 kB
warsztaty/dzien-2/setup.py1 kB
warsztaty/dzien-2/benchmarks/benchmark_data.py4 kB
warsztaty/dzien-2/benchmarks/benchmark_functions.py11 kB
warsztaty/pliki_pomocnicze/__init__.py1 kB
warsztaty/pliki_pomocnicze/funkcje_pomocnicze.py6 kB
warsztaty/pliki_pomocnicze/funkcje_pomocnicze_gpu.py1 kB
warsztaty/pliki_pomocnicze/generacja_instancji.py2 kB

Jak uruchomić ćwiczenia

  1. Zainstaluj Pythona w wersji 3.10 lub nowszej (python.org).
  2. Pobierz materiały bloku: przejdź do katalogu w repozytorium i użyj przycisku Code → Download ZIP (pobiera całe repozytorium) lub sklonuj je poleceniem git clone https://github.com/iitis/AkademiaSztukiKwantowej.git.
  3. Zainstaluj wymagane pakiety: pip install -r materialy/04-kwantowe-wyzarzanie/warsztaty/requirements.txt
  4. Uruchom notatniki: jupyter notebook — a następnie otwórz wybrany plik .ipynb.

Materiały źródłowe i historia prac

Komplet plików roboczych, z których powstały powyższe materiały (źródła LaTeX wraz z rysunkami, wersje robocze notatników, pełna historia zmian), pozostaje w gałęziach autorskich repozytorium: bg/quantum_annealing. Do korzystania z materiałów nie jest potrzebny dostęp do tych gałęzi.