Doplnění poznámek z PRO
This commit is contained in:
parent
8a9d04fc64
commit
dd1b5b9243
47
KIV PRO/06. In-place a in situ algoritmy.md
Normal file
47
KIV PRO/06. In-place a in situ algoritmy.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
# In-place a in situ algoritmy
|
||||
|
||||
## In-place algoritmus
|
||||
|
||||
- narozdíl od data stream algoritmu se předpokládá vstup v poli
|
||||
- transformuje datové struktury s užitím malé, $O(1)$ dodatečné paměti
|
||||
- vstup během chodu programu obvykle přepsán výstupem
|
||||
|
||||
Příklady
|
||||
- otočení řetězce
|
||||
|
||||
## In situ algoritmus
|
||||
|
||||
- někdy do in-place řazeny také algoritmy, které potřebují kromě vstupního pole $O(\log n)$ extra paměť
|
||||
- pro omezená data sice pointer potřebuje $O(1)$ paměť, ale pro libovolně velká data potřebuje $O(\log n)$ bitů pro specifikaci indexů do seznamu délky $n$ - obvykle se toto ale ignoruje
|
||||
- tyto algoritmy někdy označovány jako **in situ**
|
||||
|
||||
## Výhody in-place a in situ
|
||||
|
||||
- jde zpracovat větší datové množiny
|
||||
- větší lokalita reference - vhodné pro paměťové hierarchie
|
||||
- méně náchylné k selhání - nevyžaduje velké objemy paměti
|
||||
- hodně velké datové množiny často na discích - pomalý náhodný přístup, levná dodatečná paměť, lokalita reference pak důležitější než objem dostatečné paměti
|
||||
|
||||
## Příklady
|
||||
|
||||
- Willardův 2D dělicí strom
|
||||
- konvexní obálky
|
||||
- Grahamovo prohledávání
|
||||
|
||||
## In-place a in situ sorting
|
||||
|
||||
1. **spojité pole**
|
||||
- konstantní čas na přístup a prohození, dlouhý čas na posuvy
|
||||
- pokud ignorujeme $O(\log n)$ na pointery:
|
||||
- **heapsort** - ano, konstantní dodatečná paměť
|
||||
- **quicksort** - in situ, $O(\log n)$ paměť na rekurzi
|
||||
- **mergesort** - ne
|
||||
2. zřetězené seznamy
|
||||
- vyhledávání podle indexu $O(n)$
|
||||
- **quicksort a heapsort**
|
||||
- nutné drastické modifikace, aby alespoň $O(n^2)$
|
||||
- pro tento druh algoritmů zřetěz. seznamy nevhodné
|
||||
- **mergesort**
|
||||
- $O(n \log n)$ čas, $O(\log n)$ dodatečná paměť
|
||||
- krok merge se sřetězenými seznamy lehčí než s poli
|
||||
- **mergesort** s poli - dobrá lokalita reference, pro data na disku lepší než jiné algoritmy
|
144
KIV PRO/07. Kvantové výpočty.md
Normal file
144
KIV PRO/07. Kvantové výpočty.md
Normal file
|
@ -0,0 +1,144 @@
|
|||
# Kvantové výpočty
|
||||
|
||||
- idea kvantových výpočtů: R. Feynman
|
||||
- časová náročnost numerické simulace vývoje kvantového systému roste exponenciálně s počtem stupňů volnosti tohoto systému (např. s počtem interagujících částic)
|
||||
- spontánní dynamika vhodně sestavené kvantové soustavy tedy může realizovat a podstatně urychlit určité numerické výpočty
|
||||
|
||||
## Základní vlastnosti
|
||||
|
||||
- superpozice stavů
|
||||
- změna stavu objektu kvantovým měřením
|
||||
- vzájemná provázanost/propletení
|
||||
|
||||
Analogie
|
||||
- dokud objekt nevidíme (nezměříme jej - je např. pod plachtou), tak se nachází zároveň ve všech možných stavech, kde každý má svou pravděpodobnost
|
||||
- s objektem můžeme manipulovat, ale nesmíme jej vidět (změřit)
|
||||
- jeho stav můžeme předpovídat pravděpodobnostmi jednotlivých stavů
|
||||
- pokud se podíváme na objekt (změřime jej), tak se ocitne v jednom z možných stavů, ve kterém už zůstane
|
||||
|
||||
Shrnutí
|
||||
- **kvantová částice** existuje zároveň v mnona nekompatibilních stavech
|
||||
- ve stavu superpozice je možné působit na všechny stavy najednou
|
||||
- **kvantové měření**: když objekt změříme vzhledem k předem vybrané množině stavů, objekt se promítne do jednoho z nich
|
||||
- když pozorování zopakujeme, částice zůstane ve stejném stavu
|
||||
- **částice a měřící aparát** určují možné stavy, které jsou výsledkem měření
|
||||
|
||||
**Bra-ketová notace**
|
||||
- Ket - sloupcový vektor komplexních čísel $|abc>$
|
||||
- Bra - řádkový vektor komplexně sdružených hodnot $<abc|$
|
||||
|
||||
## Qubity
|
||||
|
||||
- základní jednotka kvantových výpočtů, kvantová obdoba bitu, reprezentována ketem
|
||||
- základní stavy:
|
||||
- $|0> = [10]^T$
|
||||
- $|1> = [01]^T$
|
||||
- částice může být v obou stavech najednou
|
||||
- $q = c_{0}|0> + c_{1}|1>$, kde $c_{0}, c_{1}$ jsou komplexní čísla $|c_{0}|^2 + |c_{1}|^2 = 1$
|
||||
- měřením qubit přejde do stavu $|0>$ s pravděpodobností $|c_{0}|^2$ a $|1>$ s pravděpodobností $|c_{1}|^2$
|
||||
- realizace: 2 směry polarizace protonů, 2 orientace spinu elektronů
|
||||
|
||||
**Vícebitové registry**
|
||||
- klasický registr vytváříme slepením bitů
|
||||
- kvantový registr vektorovým součinem bitů (vzniknou všechny kombinace složek v pořadí, v jakém jsou uvedeny)
|
||||
|
||||
**Příprava qubitu**
|
||||
- qubit dán do požadovaného stavu, pak je registr místo vektorového součinu vytvořen jen slepením bytu
|
||||
- kopie qubitu bez změření není možná
|
||||
- je možná pouze v případě, že původní částice při kopírování zahyne
|
||||
- klonování není možné, **teleportace** ano
|
||||
|
||||
## Propletení (entanglement)
|
||||
|
||||
- příklad: 2x2 bit. registry
|
||||
- $b_{0} = |00>, b_{1} = |11>$
|
||||
- $\beta = w|00> + w|11>, w=\frac{1}{\sqrt{ 2 }}$
|
||||
- změříme jen 2. qubit a získáme 0 nebo 1
|
||||
- poté víme, že 1. qubit je také právě 0 nebo 1 (podle druhého)
|
||||
- stav neprohlédnutého bitu je promítnut, aniž bychom si jej prohlédli
|
||||
- tzv. **propletení** 2 qubitů registru $\beta$
|
||||
|
||||
Důsledky
|
||||
- není časově omezené - propletené částice tak zůstanou navždy
|
||||
- propletené bity nemusí ležet fyzicky blízko - klidně ve vzdálenosti celého vesmíru
|
||||
- změřením jedné částice změříme i ostatní s ní propletené
|
||||
- obě kolabují do stejného stavu
|
||||
- **experiment Einstein-Podolsky-Rosen** (EPR)
|
||||
- $q_{0}$ z $\beta$ si necháme, $q_{1}$ pošleme pryč rychlostí světla, po 10 mil. let se podíváme na $q_{0}$ a promítne se tím i $q_{1}$
|
||||
|
||||
## Použití
|
||||
|
||||
**Kvantový paralelismus**
|
||||
- kvantový stav je vlastně superpozice všech hodnot
|
||||
- výpočet se všemi hodnotami najednou
|
||||
|
||||
Obecně nelze oddělit dílčí stavy součástí kvantového systému
|
||||
|
||||
**Kvantový počítač**
|
||||
- soustava určitého počtu qubitů
|
||||
- zvolenou posloupností fyzikálních operací se dostávají do superponovaných a provázaných kvantových stavů
|
||||
- tato posloupnost operací - hlavní součást **kvantového algoritmu**
|
||||
|
||||
**Vhodné úlohy**
|
||||
- faktorizace
|
||||
- najít prvočísla, jejichž součinem je dané číslo
|
||||
- Shor, Bellovy laboratoře, 1994
|
||||
- kryptografie
|
||||
- hledání v neseřazeném seznamu
|
||||
|
||||
## Fyzikální realizace kvantových počítačů
|
||||
|
||||
**1995**
|
||||
- teoreticky popsaná soustava nabitých atomů v silně ochlazeném stavu držená ve vzájemné vzdálenosti několika mikronů silným elektromagnetickým zářením, řízeno lasresovými impulsy
|
||||
- **problém**: udržení kvantového počítače po celou dobu výpočtu v naprosté izolaci anebo opravovat průběžně škody vzniklé interakcí
|
||||
|
||||
**2001** - Chuang, IBM
|
||||
- na bázi magnetické rezonance
|
||||
- 7 qbitů, Shorův algoritmus
|
||||
- velmi pomalé, pro praktické úlohy ještě nepoužitelné
|
||||
|
||||
**2007** - 16qb procesor
|
||||
|
||||
**2011** - D-Wave One
|
||||
- 128 qubitů
|
||||
- omezené možnosti výpočtů - kvantový optimalizátor
|
||||
- cena 10 milionů $
|
||||
- kvantové jevy drahých supervodivých materiálů
|
||||
- chlazení tekutým héliem
|
||||
|
||||
**2012** - Harvard
|
||||
- odstranění nutnosti extrémně nízkých teplot v kombinaci se supravodivými materiály a bez výrazného stínění
|
||||
- životnost qubitu rozšířena o několik řádů
|
||||
- založeno na diamantu s 2 miniaturními nečistotami o velikosti několika atomů
|
||||
- doba uložení informace: 2 sekundy
|
||||
|
||||
**2013** - Univerzita Simona Frasera
|
||||
- křemík a atomy fosforu
|
||||
- informace uložena 180 sekund
|
||||
- životnost qubitu 40 minut
|
||||
|
||||
**2019** - D-Wave má $2^{10}$ qb
|
||||
- stále vysoce specializované
|
||||
|
||||
**2019, leden** - IBM Q System One
|
||||
- kvantová výpočetní síla
|
||||
- futuristický design
|
||||
- stále limity současných technologií kvantového počítače
|
||||
- 20 qb
|
||||
- komerčně dostupný
|
||||
- kromě HW možnost open-source nástrojů - knihovny pro Python, kvantové simulátory
|
||||
- možnost počítat vzdáleně na cloudu kvant. počítačů, do něj přidán i tento
|
||||
- není 100% bezchybnost
|
||||
|
||||
**2019, říjen** - Google oznámil dosažení kvantové nadřazenosti
|
||||
- jejich kvantový počítač Sycamore za 200s vyřešil problém náhodného vzorkování, žádný počítač by to nevyřešil v rozumném čase
|
||||
- podle nich by tento problém řešil nejvýkonnější superpočítač IBM Summit 10 tisíc let
|
||||
- podle IBM jen 2,5 dne
|
||||
|
||||
### Problém chybovosti
|
||||
|
||||
- qb velmi citlivé a snadno ovlivnitelné vnějšími vlivy
|
||||
- chyby nutné rychle odstranit, velký vliv na výpočet
|
||||
- nejspíš nemožné zcela odstranit
|
||||
- Shor: kvantové algoritmy korigovat průběžně ukládáním zálohy (jen pro malé počty qb)
|
||||
- na prolomení významné části dnešních šifer by byly potřeba tisícovky qb, na ochranu proti chybám další miliony kontrolních qb
|
Loading…
Reference in a new issue