Symulacja obliczeń kwantowych



Podobne dokumenty
Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Protokół teleportacji kwantowej

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Wprowadzenie do metod numerycznych Wykład 3 Metody algebry liniowej I Wektory i macierze

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Wykład 14. Elementy algebry macierzy

Kwantowa kooperacja. Robert Nowotniak. Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka

Wykresy i interfejsy użytkownika

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Wprowadzenie do środowiska

Wstęp do komputerów kwantowych

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Wstęp do Modelu Standardowego

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Algebra liniowa (ALL010) 2. KIERUNEK: MATEMATYKA. 3. POZIOM STUDIÓW: I stopnia 4. ROK/ SEMESTR STUDIÓW: I/1

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Informatyka Kwantowa Sekcja Informatyki Kwantowej prezentacja

spis treści 1 Zbiory i zdania... 5

Układy równań liniowych i metody ich rozwiązywania

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Algebra liniowa z geometrią

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

2.1. Postać algebraiczna liczb zespolonych Postać trygonometryczna liczb zespolonych... 26

PRZEWODNIK PO PRZEDMIOCIE

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Język programowania komputerów kwantowych oparty o model macierzy gęstości

Niezb. ednik matematyczny. Niezb. ednik matematyczny

VIII. TELEPORTACJA KWANTOWA Janusz Adamowski

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni ,5 1

BIBLIOTEKA NUMPY, CZĘŚĆ 2

PODSTAWY RACHUNKU WEKTOROWEGO

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Wstęp do algorytmiki kwantowej

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. wykład z algebry liniowej Warszawa, styczeń 2009

Modelowanie danych hodowlanych

Macierze i Wyznaczniki

Lista nr 1 - Liczby zespolone

Krystalochemia białek 2016/2017

Algebra liniowa z geometria. - zadania Rok akademicki 2010/2011

Analiza korespondencji

Wyznaczniki. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 6. Wykład z algebry liniowej Warszawa, listopad 2013

ALGEBRA z GEOMETRIA, ANALITYCZNA,

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

A A A A A A A A A n n

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Wstęp do komputerów kwantowych

Algebra z geometrią analityczną zadania z odpowiedziami

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Macierze. Rozdział Działania na macierzach

PRZEWODNIK PO PRZEDMIOCIE

Ćwiczenie 3: Wprowadzenie do programu Matlab

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Iloczyn skalarny, wektorowy, mieszany. Ortogonalność wektorów. Metoda ortogonalizacji Grama-Schmidta. Małgorzata Kowaluk semestr X

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni 30 30

φ(x 1,..., x n ) = a i x 2 i +

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Programowanie dynamiczne

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

1 Macierze i wyznaczniki

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Zadania egzaminacyjne

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

Wykład z Technologii Informacyjnych. Piotr Mika

Z-ID-103 Algebra liniowa Linear Algebra

Działania na przekształceniach liniowych i macierzach

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

Przekształcenia geometryczne. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej

Zadania z algebry liniowej Iloczyn skalarny, przestrzenie euklidesowe

Wprowadzenie do programu Mathcad 15 cz. 1

1. PODSTAWY TEORETYCZNE

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w Uczelni 30 30

Wprowadzenie do pakietów MATLAB/GNU Octave

Algebra macierzy

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Analiza matematyczna i algebra liniowa Macierze

Zastosowania wyznaczników

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Transkrypt:

Model kwantowych bramek logicznych w NumPy Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka Sekcja Informatyki Kwantowej, 10 października 2007

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Python - podstawowe informacje Cechy języka Python: 1 Łatwy do nauczenia 2 Język imperatywny trzeciej generacji, wysokiego poziomu 3 Dobre wsparcie dla programowania zorientowanego obiektowo 4 Bogata biblioteka standardowa 5 Elementy programowania funkcyjnego (anonimowe funkcje, domknięcia) 6 Tutorial dostępny na stronie: http://docs.python.org/tut/

Numerical Python Biblioteka Numerical Python (NumPy) Darmowa alternatywa dla Matlaba (do prostych zastosowań) Przydatne (dla nas) rzeczy: Wydajne operacje na macierzach wyznaczniki, ślady, działania,... Łatwe obliczenia i eksperymenty numeryczne Algebra liniowa - moduł numpy.linalg wartości i wektory własne, rozkłady SVD, QR,... Szybkie przekształcenia ortogonalne (FFT) - moduł numpy.fft

Numerical Python Biblioteka Numerical Python (NumPy) Darmowa alternatywa dla Matlaba (do prostych zastosowań) Przydatne (dla nas) rzeczy: Wydajne operacje na macierzach wyznaczniki, ślady, działania,... Łatwe obliczenia i eksperymenty numeryczne Algebra liniowa - moduł numpy.linalg wartości i wektory własne, rozkłady SVD, QR,... Szybkie przekształcenia ortogonalne (FFT) - moduł numpy.fft

Numerical Python Biblioteka Numerical Python (NumPy) Darmowa alternatywa dla Matlaba (do prostych zastosowań) Przydatne (dla nas) rzeczy: Wydajne operacje na macierzach wyznaczniki, ślady, działania,... Łatwe obliczenia i eksperymenty numeryczne Algebra liniowa - moduł numpy.linalg wartości i wektory własne, rozkłady SVD, QR,... Szybkie przekształcenia ortogonalne (FFT) - moduł numpy.fft

Numerical Python Biblioteka Numerical Python (NumPy) Darmowa alternatywa dla Matlaba (do prostych zastosowań) Przydatne (dla nas) rzeczy: Wydajne operacje na macierzach wyznaczniki, ślady, działania,... Łatwe obliczenia i eksperymenty numeryczne Algebra liniowa - moduł numpy.linalg wartości i wektory własne, rozkłady SVD, QR,... Szybkie przekształcenia ortogonalne (FFT) - moduł numpy.fft

Numerical Python Biblioteka Numerical Python (NumPy) Darmowa alternatywa dla Matlaba (do prostych zastosowań) Przydatne (dla nas) rzeczy: Wydajne operacje na macierzach wyznaczniki, ślady, działania,... Łatwe obliczenia i eksperymenty numeryczne Algebra liniowa - moduł numpy.linalg wartości i wektory własne, rozkłady SVD, QR,... Szybkie przekształcenia ortogonalne (FFT) - moduł numpy.fft

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Obliczenia kwantowe - wymagania Do symulacji obliczeń kwantowych (w modelu bramek kwantowych) potrzebujemy co najmniej następujacego zestawu: 1 wektory liczb zespolonych (macierze kolumnowe) - do reprezentowania kubitów (2-elementowe) i rejestrów kwantowych (2 n -elementowe) + odpowiedni zbiór operacji 2 macierze liczb zespolonych (bramki kwantowe) - do opisywania zmian stanów układów kwantowych (opisywanych przez operatory unitarne) + odpowiedni zbiór operacji 3 odpowiednie struktury łacz ace powyższe elementy - do zapisywania układu bramek kwantowych jako sieci macierzy

Obliczenia kwantowe - wymagania Do symulacji obliczeń kwantowych (w modelu bramek kwantowych) potrzebujemy co najmniej następujacego zestawu: 1 wektory liczb zespolonych (macierze kolumnowe) - do reprezentowania kubitów (2-elementowe) i rejestrów kwantowych (2 n -elementowe) + odpowiedni zbiór operacji 2 macierze liczb zespolonych (bramki kwantowe) - do opisywania zmian stanów układów kwantowych (opisywanych przez operatory unitarne) + odpowiedni zbiór operacji 3 odpowiednie struktury łacz ace powyższe elementy - do zapisywania układu bramek kwantowych jako sieci macierzy

Obliczenia kwantowe - wymagania Do symulacji obliczeń kwantowych (w modelu bramek kwantowych) potrzebujemy co najmniej następujacego zestawu: 1 wektory liczb zespolonych (macierze kolumnowe) - do reprezentowania kubitów (2-elementowe) i rejestrów kwantowych (2 n -elementowe) + odpowiedni zbiór operacji 2 macierze liczb zespolonych (bramki kwantowe) - do opisywania zmian stanów układów kwantowych (opisywanych przez operatory unitarne) + odpowiedni zbiór operacji 3 odpowiednie struktury łacz ace powyższe elementy - do zapisywania układu bramek kwantowych jako sieci macierzy

Obliczenia kwantowe - wymagania Do symulacji obliczeń kwantowych (w modelu bramek kwantowych) potrzebujemy co najmniej następujacego zestawu: 1 wektory liczb zespolonych (macierze kolumnowe) - do reprezentowania kubitów (2-elementowe) i rejestrów kwantowych (2 n -elementowe) + odpowiedni zbiór operacji 2 macierze liczb zespolonych (bramki kwantowe) - do opisywania zmian stanów układów kwantowych (opisywanych przez operatory unitarne) + odpowiedni zbiór operacji 3 odpowiednie struktury łacz ace powyższe elementy - do zapisywania układu bramek kwantowych jako sieci macierzy

Obliczenia kwantowe - wymagania Niezbędne operacje na wektorach (kubity i rejestry kwantowe): 1 sprzężenie hermitowskie 2 normalizacja 3 pomiar kwantowy (redukcja wektora stanu) - dwa rodzaje: pomiar całego rejestru pomiar niektórych kubitów z rejestru

Obliczenia kwantowe - wymagania Niezbędne operacje na wektorach (kubity i rejestry kwantowe): 1 sprzężenie hermitowskie 2 normalizacja 3 pomiar kwantowy (redukcja wektora stanu) - dwa rodzaje: pomiar całego rejestru pomiar niektórych kubitów z rejestru

Obliczenia kwantowe - wymagania Niezbędne operacje na wektorach (kubity i rejestry kwantowe): 1 sprzężenie hermitowskie 2 normalizacja 3 pomiar kwantowy (redukcja wektora stanu) - dwa rodzaje: pomiar całego rejestru pomiar niektórych kubitów z rejestru

Obliczenia kwantowe - wymagania Niezbędne operacje na wektorach (kubity i rejestry kwantowe): 1 sprzężenie hermitowskie 2 normalizacja 3 pomiar kwantowy (redukcja wektora stanu) - dwa rodzaje: pomiar całego rejestru pomiar niektórych kubitów z rejestru

Obliczenia kwantowe - wymagania Niezbędne operacje na macierzach (bramki kwantowe): 1 iloczyn tensorowy macierzy 2 mnożenie macierzy (zwykłe) 3 sprzężenie hermitowskie 4 mnożenie przez wektor (działanie na stan w rejestrze kwantowym) 5 dodatkowo przydatne: sprawdzenie, czy macierz jest unitarna obliczanie wyznacznika, odwrotności

Obliczenia kwantowe - wymagania Niezbędne operacje na macierzach (bramki kwantowe): 1 iloczyn tensorowy macierzy 2 mnożenie macierzy (zwykłe) 3 sprzężenie hermitowskie 4 mnożenie przez wektor (działanie na stan w rejestrze kwantowym) 5 dodatkowo przydatne: sprawdzenie, czy macierz jest unitarna obliczanie wyznacznika, odwrotności

Obliczenia kwantowe - wymagania Niezbędne operacje na macierzach (bramki kwantowe): 1 iloczyn tensorowy macierzy 2 mnożenie macierzy (zwykłe) 3 sprzężenie hermitowskie 4 mnożenie przez wektor (działanie na stan w rejestrze kwantowym) 5 dodatkowo przydatne: sprawdzenie, czy macierz jest unitarna obliczanie wyznacznika, odwrotności

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Obliczenia kwantowe w NumPy Podstawowe typy danych w Numerical Python: 1 macierze matrix macierz1 = matrix([[1, 2], [3, 4]]) 2 tablice array tablica1 = array([[5, 6], [7, 8]]) 3 matrix i array różnia się sposobem dzialania operatora (mnożenie).

Obliczenia kwantowe w NumPy Uwaga 1 Obiekty klasy matrix można mnożyć za pomoca przeciażonego dla nich operatora. 2 Tablice klasy array należy mnożyć za pomoca funcji dot(). 3 Różnica: operator dla obiektów array oznacza mnożenie "element po elemencie".

Obliczenia kwantowe w NumPy Uwaga 1 Obiekty klasy matrix można mnożyć za pomoca przeciażonego dla nich operatora. 2 Tablice klasy array należy mnożyć za pomoca funcji dot(). 3 Różnica: operator dla obiektów array oznacza mnożenie "element po elemencie".

Obliczenia kwantowe w NumPy Przykład: Definicje kilku podstawowych bramek kwantowych (Controlled-Not, Hadamard (dla jednego kubitu), obrót amplitudy o π/2): 1 CNot = array([ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]]) 2 H1 = sqrt(2) / 2 * array([ [1, 1], [1,-1]]) 3 PhasePi2 = array([[ 1, 0 ], [ 0, exp(1j * pi/2) ]])

NumPy - kluczowe funkcje Podstawowe funkcje: identity(n), eye(n) - macierz jednostkowa n n dot(m1,m2) - iloczyn skalarny, mnożenie macierzowe m1 m2 transpose(m) - transpozycja macierzy m T shape(m1) - zwraca rozmiar macierzy (w, k) kron(m1, m2) - iloczyn tensorowy (Kroneckera) m1 m2 vdot(v1, v2) - iloczyn v 1 v 2 set_printoptions(...) - opcje wyświetlania l. zmiennoprzecinkowych M1.H - sprzężenie hermitowskie macierzy M M1[n] - n-ty wiersz macierzy M1 M1[:,n] - n-ta kolumna macierzy M1

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Symulacja układu kwantowego Przykład (qcirc1.py): Generowanie splatanej trójki kubitów: φ = 2 2 000 + 2 2 111

Symulacja układu kwantowego Przykład (qcirc1.py): Generowanie splatanej trójki kubitów: 2 2 φ = 2 000 + 2 111 Taki stan może być wytworzony ze stanu bazowego 000 za pomoca poniższego układu bramek elementranych (Hadamard + dwukrotnie CNot):

Symulacja układu kwantowego Stan poczatkowy 000 rejestru kwantowego (input): input = transpose(array([[1,0,0,0,0,0,0,0]]))

Symulacja układu kwantowego Stan poczatkowy 000 rejestru kwantowego (input): input = transpose(array([[1,0,0,0,0,0,0,0]])) Macierze (8 8) dla trzech poszczególnych etapów obliczeń: stage1 = kron(kron(i,h),i) stage2 = kron(i,cnot) stage3 = kron(cnot2,i)

Symulacja układu kwantowego Stan poczatkowy 000 rejestru kwantowego (input): input = transpose(array([[1,0,0,0,0,0,0,0]])) Macierze (8 8) dla trzech poszczególnych etapów obliczeń: stage1 = kron(kron(i,h),i) stage2 = kron(i,cnot) stage3 = kron(cnot2,i) Obliczenie macierzy całego układu (circuit) i wartości na wyjściu: circuit = dot(dot(stage3, stage2), stage1) output = dot(circuit, input)

Symulacja układu kwantowego Rezultat działania programu Output quantum register state: [[ 0.70710678] [ 0. ] [ 0. ] [ 0. ] [ 0. ] [ 0. ] [ 0. ] [ 0.70710678]]

Rezultat symulacji Zatem rezultatem działania programu było otrzymanie wektora stanu: 2 2 0 0 0 0 0 0 2 2 = 2 2 1 0 0 0 0 0 0 0 + 2 2 0 0 0 0 0 0 0 1 = 2 2 000 + 2 2 111

Plan prezentacji 1 Python i NumPy - podstawowe informacje 2 Wymagania do obliczeń kwantowych 3 Numerical Python - najważniejsze funkcje 4 Przykład 5 Podsumowanie

Obliczenia kwantowe w NumPy W przedstawiony sposób za pomoca języka Python i biblioteki NumPy moga być przeprowadzane dowolne obliczenia kwantowe. Wystarczajace do tego sa bowiem: 1 Macierze unitarne opisujace bramki - i operacje na nich 2 Łaczenie bramek elementarnych: równoległe - iloczyn tensorowy (kron) szeregowe - iloczyn macierzy poszczególnych etapów 3 Operacja pomiaru stanu (należy dodatkowo zaimplementować) 4 Iloczyn skalarny macierzy całego układu przez wektor stanu wejściowego

Odnośniki 1 Tutorial do języka Python: http://docs.python.org/tut/ 2 Dokumentacja biblioteki NumPy http://numpy.scipy.org/numpy.pdf 3 Numpy Example List With Doc - przykłady do NumPy: http://www.scipy.org/numpy_example_list_with_doc

Koniec Dziękuję. Pytania lub watpliwości?