From dd1b5b92431f91df7868ffb9a121930fb37b89db Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Thu, 25 Jan 2024 15:24:15 +0100 Subject: [PATCH] =?UTF-8?q?Dopln=C4=9Bn=C3=AD=20pozn=C3=A1mek=20z=20PRO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KIV PRO/06. In-place a in situ algoritmy.md | 47 +++++++ KIV PRO/07. Kvantové výpočty.md | 144 ++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 KIV PRO/06. In-place a in situ algoritmy.md create mode 100644 KIV PRO/07. Kvantové výpočty.md diff --git a/KIV PRO/06. In-place a in situ algoritmy.md b/KIV PRO/06. In-place a in situ algoritmy.md new file mode 100644 index 0000000..2731a30 --- /dev/null +++ b/KIV PRO/06. In-place a in situ algoritmy.md @@ -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 \ No newline at end of file diff --git a/KIV PRO/07. Kvantové výpočty.md b/KIV PRO/07. Kvantové výpočty.md new file mode 100644 index 0000000..92d6d72 --- /dev/null +++ b/KIV PRO/07. Kvantové výpočty.md @@ -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 $ = [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 \ No newline at end of file