неделя, 29 януари 2017 г.

Добър си юнак хранила

В трудни моменти се замислям за справедливостта и смисъла на живота.

Не намирам думи, с които да спомена моите предци, които вече не са между живите: двете ми баби, двамата дядовци, майка, вече и татко.
Винаги съм мислил, че те са с нещо по-добри, по-силни и по-достойни от мене.

На 10 милиарда човешки същества, които ги има сега, сигурно се падат 100 милиарда, които са живели някога на Земята.
Някои са били добри, други лоши, но всеки е получил еднакво дарът на живота.
Имало е велики  хора, които са направили много.
Мисля, че са заслужавали да живеят повече, но са си отишли рано.

Какво бих могъл да искам ?
Да можеха всички да живеят повече.
Аз няма да деля хората на добри и лоши.

Една история:


АФЕРИМ БАБО, МАШААЛЛА, ЛЕЛЕ !
ДОБЪР СИ ЮНАК ХРАНИЛА.

четвъртък, 19 януари 2017 г.

Квантови схеми

Квантовите изчисления могат да се представят графично чрез квантови схеми. Квантовата схема се състои от хоризонтални линии, представящи квантови битове и символи на квантовите операции върху линиите.

 Еднобитовата квантова операция се представя с квадратче със символа на операцията в него (I, H, X, Y, Z, S, S+, T или T+). Двубитовата операция CNOT се представя с кръгче и линия излизаща от него към управляващия кюбит.

Изчислението се извършва отляво на дясно. Преди началото на линиите отляво се записват началните състояния на кюбитовете.

След измерването на състоянието на квантов бит се получава класическа битова стойност 0 или 1 (с някаква вероятност). Така след някакъв брой пускания на квантовата схема може да се построи разпределение на вероятностите на класическите състояния, получавани след измерванията.

Реализирах алгоритъма за така нареченото bit-flip кодиране и декодиране с корекция на грешка в състоянието |Ψ> на един квантов бит.

Схемата на кодиращата част:

Квантова схема bit-flip кодер

Схемата на декодиращата част:

Квантова схема bit-flip декодер

Пуснах тази схема да се изпълни с 8192 повторения на квантовия компютър на IBM http://www.research.ibm.com/quantum/.
При изпълнението на входа на кодиращата част подавах състоянието на суперпозиция:

 |+> = (|0> + |1>) / √2

След кодиращата и преди декодиращата част зададох да се изпълнява изчакване за време около 390 ns, при което се получават случайни изменения (вследствие на естествената еволюция) на състоянието на квантовите битове на реалния квантов компютър.

Квантовият компютър 5Q на IBM  има 5 кюбита, поради което в резултатите от измерванията състоянията се представят с по 5 бита, от които съм използвал само младшите 3 бита:

Хистограма на резултатите от bit-flip кодиране-декодиране на |+>

Интересно е да се пресметне какъв е информационният капацитет на система от N квантови битове. Квантовото състояние на един кюбит може да се представи с две комплексни числа (коефициентите пред |0> и |1> в разлагането по стандартния базис). Система от N на брой квантови битове има стандартен базис, който се състои от 2N на брой вектора. Поради това състоянието на системата от N кюбита може да се представи с 2N комплексни числа.

Броят на комплексните числа, с които се представя състоянието на N квантови бита:

Брой квантови битове Брой комплексни числа
1 2
2 4
5 32
10 1024
20 1 048 576
30 1 073 741 824
40 1 099 511 627 776
50 1 125 899 906 842 624

Тоест, при 30 квантови бита информационният капацитет е от порядъка на гигабайтове, при 40 кюбита - терабайтове, а при 50 - петабайтове. Това означава, че даже при скромния брой от 30 - 40 кюбита, квантовият компютър става сравним със сегашните обикновенни компютри, а при 50 и повече кюбита вече започва да ги превъзхожда в някакво отношение.

сряда, 4 януари 2017 г.

Двойки квантови битове

Един квантов бит има две базисни състояния |0> и |1>, а състоянието му |Ψ> в общия случай  се описва със суперпозиция на базисните състояния

|Ψ> = α|0> + β|1>

При система от два квантови бита базисните състояния са вече четири: |00>, |01>, |10> и |11>, а състоянието |Ψ> се описва със суперпозицията

|Ψ> = a|00> + b|01> + c|10> + d|11>,

където a,b,c и d са някакви комплексни числа.

Разбира се, например |01> означава, че първият квантов бит е в състояние |0> и едновременно с това вторият квантов бит е в състояние |1>.

Ако се извърши измерване на общото състояние на системата от два квантови бита, ще се получи резултат:
  • |00> с вероятност |a|2
  • |01> с вероятност |b|2
  • |10> с вероятност |c|2, или 
  • |11> с вероятност |d|2.


Състояния на Бел


Двойка квантови битове може да се намира в състояние на квантово преплитане.

Квантовото преплитане (Quantum entanglement) е квантовомеханично явление, при което квантовите състояния на два (или повече) обекта се оказват взаимнозависими. Тази взаимозависимост се запазва, даже ако обектите са отдалечени в пространството на произволно голямо разстояние, правещо невъзможно всяко класическо (не-квантово) взимодействие между тях.

В експерименти е реализирано квантово преплитане на фотони, електрони и други микрочастици. Квантово преплетените частици се държат като едно цяло независимо от разстоянието между тях и показват пълна мигновена връзка между състоянията си.

Два фотона в състояние на квантово преплитане се наричат бифотон (biphoton).

Съществуват четири квантови състояния на максимално преплитане (maximally entangled states), наричани състояния на Бел (Bell states):

+> = (|00> + |11>)/√2
-> = (|00> - |11>)/√2
+> = (|01> + |10>)/√2
-> = (|01> - |10>)/√2

+> се нарича състояние на котката на Щрьодингер;
-> се нарича АПР-състояние (по имената на Айнщайн, Подолски и Розен, EPR - Einstein, Podolsky, Rosen).

Квантова операция CNOT


Квантовата операция CNOT, наричана управляемо НЕ (Controlled NOT) въздейства върху състоянието на двойка квантови битове, като го променя по следния начин.
Ако състоянието преди операцията CNOT е било

|Ψ> = a|00> + b|01> + c|10> + d|11>, 

то състоянието след операцията CNOT става

|Ψ> = a|00> + b|01> + d|10> + c|11>, 

или накратко

CNOT(a|00>+b|01>+c|10>+d|11>) = a|00>+b|01>+d|10>+c|11>.

Базисните състояния на двойката квантови битове могат да се представят по следния начин:

 |00> = 1|00> + 0|01> + 0|10> + 0|11>
|01> = 0|00> + 1|01> + 0|10> + 0|11>
|10> = 0|00> + 0|01> + 1|10> + 0|11>
|11> = 0|00> + 0|01> + 0|10> + 1|11>

Тогава резултатите от квантовата операция CNOT ще бъдат следните:

CNOT(|00>)=CNOT(1|00>+0|01>+0|10>+0|11>)=1|00>+0|01>+0|10>+0|11>
 =|00>
CNOT(|01>)=CNOT(0|00>+1|01>+0|10>+0|11>)=0|00>+1|01>+0|10>+0|11>
 =|01>
CNOT(|10>)=CNOT(0|00>+0|01>+1|10>+0|11>)=0|00>+0|01>+0|10>+1|11>
 =|11>
CNOT(|11>)=CNOT(0|00>+0|01>+0|10>+1|11>)=0|00>+0|01>+1|10>+0|11>
 =|10>

Или накратко

CNOT(|00>) = |00>
CNOT(|01>) = |01>
CNOT(|10>) = |11>
CNOT(|11>) = |10>

Вижда се, че в граничния случай, когато състоянието на двойката квантови битове е чисто класическата комбинация от 0 и 1, операцията CNOT прави така, че когато първият бит е 0, вторият остава непроменен, а когато първият бит е 1, състоянието на втория се променя на противоположното. Затова операцията CNOT е наречена квантово управляемо НЕ. Първият квантов бит се нарича управляващ.

Операцията CNOT е обратима - ако бъде приложена още един път върху резултата от своето изпълнение, ще се получи пак началното квантово състояние:

CNOT(CNOT(|Ψ>)) = |Ψ>