Кіріспе

Кванттық компьютерлер үшін компьютерлік бағдарламалау. Кванттық бағдарламалау – белгілі бір эксперименттің қажетті нәтижесіне немесе тоқтарына жету үшін қақпалар, коммутаторлар және операторларды қолдана отырып, кванттық схемалар деп аталатын нұсқаулар тізбегін жобалау немесе құрастыру процесі. Кванттық схема алгоритмдері интегралдық схемаларда іске асырылуы, құралдармен орындалуы немесе кванттық компьютермен немесе кванттық процессормен пайдалану үшін бағдарламалау тілінде жазылуы мүмкін. Кванттық процессорларға негізделген жүйелерде кванттық бағдарламалау тілдері жоғары деңгейдегі құрылымдарды пайдалана отырып, кванттық алгоритмдерді бейнелеуге көмектеседі. Бұл сала ашық кодты философияға терең байланысты, сондықтан осы мақалада талқыланған кванттық бағдарламалық құралдардың көпшілігі ашық код ретінде тегін қолжетімді. Кванттық компьютерлер, мысалы KLM протоколына негізделгендер, сызықтық оптикалық кванттық есептеу (LOQC) моделі, электроникамен, интегралдық схемалармен, құралдармен, сенсорлармен және/немесе басқа физикалық тәсілдермен іске асырылған кванттық алгоритмдерді (схемаларды) пайдаланады. Кванттық жүйелерге қатысты эксперименттер үшін жасалған басқа схемалар құралдар мен сенсорларға негізделуі мүмкін.

Кванттық нұсқаулар жиынтығы

Кванттық нұсқаулар жиынтығы жоғары деңгейдегі алгоритмдерді кванттық процессорларда орындалатын физикалық нұсқауларға түрлендіруге қолданылады. Кейде осы нұсқаулар нақты аппараттық платформаға қатысты болады, мысалы, иондық тұзақтар немесе суперөткізгіш кубиттер.

cQASM

cQASM, сонымен қатар жалпы QASM деп аталады, аппараттық тәуелсіздігіне ие кванттық ассемблер тілі болып табылады, ол барлық кванттық компиляция және модельдеу құралдарының үйлесімділігін қамтамасыз етеді. Оны TUDelft-тегі QCA зертханасы ұсынды.

Қалқа

Quil – кванттық есептеулерге арналған нұсқаулар жиынтығы архитектурасы, ол алғаш рет ортақ кванттық/классикалық жад моделін ұсынды. Оны Роберт Смит, Майкл Кертис және Уильям Зенг «Практикалық кванттық нұсқаулар жиынтығы архитектурасы» еңбегінде енгізді. Көптеген кванттық алгоритмдер (кванттық телепортация, кванттық қателерді түзеу, модельдеу және оптимизациялау алгоритмдері сияқты) ортақ жад архитектурасын қажет етеді.

OpenQASM-тің атауы

OpenQASM — Qiskit және IBM Q Experience пайдалану үшін IBM ұсынған аралық өрнектелгіш формат.

Қара құс

Blackbird — Xanadu Quantum Technologies және Strawberry Fields қолданатын кванттық нұсқаулар жиынтығы және аралық өрнек. Ол фотондық кванттық аппараттарда іске қосылатын үздіксіз айнымалы кванттық бағдарламаларды бейнелеу үшін жасалған.

Кванттық бағдарламалық жасақтаманы әзірлеу жиынтығы

Кванттық бағдарламалық жасақтама жиынтықтары кванттық бағдарламаларды жасау және өзгертуге арналған құралдар топтамасын ұсынады. Олар кванттық бағдарламаларды модельдеуге, немесе оларды бұлттағы кванттық құрылғыларда және дербес орналастырылған кванттық құрылғыларда іске қосу үшін дайындауға мүмкіндік береді.

Кванттық процессорларға қолжетімді SDK

Келесі бағдарламалық жасақтама жиынтықтарын прототиптік кванттық құрылғыларда да, симуляторларда да кванттық тізбектерді іске қосу үшін қолдануға болады.

Персеваль

Quandela [fr] жасаған ашық кодты жоба, фотондық кванттық тізбектерді жобалау және Python негізінде кванттық алгоритмдерді әзірлеуге арналған. Есептеулер пайдаланушының жеке компьютерінде немесе бұлтта жүргізіледі. Персевал Quandela-ның бұлттағы фотондық кванттық процессорына қосылу үшін де қолданылады.

Мұхит

D Wave компаниясы әзірлеген ашық кодты құралдар жиынтығы. Көбінесе Python бағдарламалау тілінде жазылған, ол пайдаланушыларға Ising Model және Quadratic Unconstrained Binary Optimization (QUBO) форматтарында мәселелерді формулировать етуге мүмкіндік береді. Нәтижелерді Leap онлайн кванттық компьютеріне (D Wave-дің нақты уақыттық кванттық қолданбалар ортасы), клиентке тиесілі машиналарға немесе классикалық үлгілерге жіберу арқылы алуға болады.

Жоба Q

ETH Теориялық физика институтында жасалған ашық кодты жоба, ол кванттық тізбектерді жасау және басқару үшін Python бағдарламалау тілін пайдаланады. Нәтижелерді симулятор арқылы немесе IBM кванттық құрылғыларына жұмыс жіберу арқылы алуға болады.

Қискит

IBM әзірлеген ашық кодты жоба. Кванттық тізбектер Python тілінде құрылады және басқарылады. Нәтижелер пайдаланушының өзінің құрылғысында жұмыс істейтін симуляторлар, IBM ұсынған симуляторлар немесе IBM ұсынған кванттық құрылғылардың прототиптері арқылы алынады. Бағдарламаларды негізгі кванттық операцияларды қолдана отырып жасау мүмкіндігімен қатар, алгоритмдер мен сынақтарды жүргізуге арналған жоғары деңгейдегі құралдар арнайы пакеттерде қолжетімді. Qiskit кванттық тізбектерді бейнелеу үшін OpenQASM стандартына негізделген. Сондай-ақ, QiskitPulse стандарты арқылы кванттық жүйелердің импульстік деңгейін басқаруды қолдайды.

Қибо

Кванттық модельдеу, кванттық аппараттық басқару және калибрлеу үшін QRC, CQT және INFN сияқты бірнеше зертханалармен бірлесіп әзірленген ашық кодты, толық жинақты API. Qibo – кванттық модельдеу және аппараттық басқару үшін бірнеше бэкендтерді қамтитын модульдік құрылым. Бұл жобаның мақсаты – түрлі аспаптарға арналған драйверлермен және кванттық калибрлеу, сипаттамалау және тексеру құралдарымен платформадан тәуелсіз кванттық аппараттық басқару құрылымын ұсыну. Бұл құрылым зертханалардағы бағдарламалық жасақтаманы әзірлеуді жеңілдету арқылы өздігінен орналастырылатын кванттық құрылғыларға бағытталған.

Орман

Ригетти әзірлеген ашық бастапқы кодты жоба, кванттық схемаларды жасау және манипуляциялау үшін Python бағдарламалау тілін пайдаланады. Нәтижелер Ригетти ұсынған симуляторлар немесе кванттық құрылғылардың прототиптерін қолдану арқылы алынады. Бағдарламаларды негізгі кванттық операцияларды қолдана отырып жасау мүмкіндігінен бөлек, Grove жинағында жоғары деңгейдегі алгоритмдер де бар. Forest, Quil командалар жиынтығына негізделген.

тіке тігу>

2018 жылдың желтоқсан айында Кембридж кванттық есептеулері компаниясы жасаған, симуляторлар мен бірнеше кванттық аппараттық платформаларға бағытталған кванттық бағдарламалау ортасы және оптимизациялайтын компилятор.

Сабақ:

Xanadu Quantum Technologies компаниясы әзірлеген ашық кодты Python кітапханасы, үздіксіз өзгермелі (CV) кванттық оптикалық тізбектерді жобалауға, модельдеуге және оңтайландыруға арналған. Үш түрлі симулятор ұсынылады: біреуі Фок негізінде, біреуі кванттық оптиканың Гаусс формуласын қолданады, ал үшіншісі TensorFlow машиналық оқыту кітапханасын пайдаланады. Strawberry Fields – Xanadu компаниясының кванттық фотоникалық жабдықтарында бағдарламаларды іске қосуға арналған кітапхана.

Пеннилейн

Кванттық компьютерлерді дифференциалданатын бағдарламалауға арналған Xanadu Quantum Technologies компаниясы жасаған Python ашық кодты кітапханасы. PennyLane пайдаланушыларға TensorFlow, NumPy немесе PyTorch қолданып модельдер құруға және IBMQ, Google Quantum, Rigetti, Quantinuum және Alpine Quantum Technologies ұсынатын кванттық компьютерлерге қосылуға мүмкіндік береді.

Кванттық әзірлеу жиынтығы

NET Framework құрамында Microsoft әзірлеген жоба. Q# кванттық бағдарламалау тілін пайдаланып, кванттық бағдарламаларды Visual Studio және VSCode ортасында жазуға және іске қосуға болады. QDK-да жасалған бағдарламаларды Microsoft Azure Quantum-да, сондай-ақ Quantinuum компаниясының кванттық компьютерлерінде орындауға болады.

QCL

Кванттық есептеу тілі (QCL) – іске асырылған алғашқы кванттық бағдарламалау тілдерінің бірі. QCL-дің ең маңызды мүмкіндігі – пайдаланушы анықтаған операторлар мен функцияларды қолдау. Оның синтаксисі C бағдарламалау тілінің синтаксисіне ұқсас, ал классикалық дерек түрлері C тіліндегі қарапайым дерек түрлерімен саякес келеді. Бір бағдарламада классикалық және кванттық кодты біріктіруге болады.

Кванттық псевдокод

Э. Книлл ұсынған кванттық псевдокод – кванттық алгоритмдерді сипаттау үшін ресми тілде жазылған алғашқы тіл. Ол енгізілген, және одан әрі кванттық кездейсоқ қолжетімділік машинасы (QRAM) деп аталатын кванттық машина моделімен тығыз байланысты болды.

С#

Microsoft Quantum Development Kit-пен қолдануға арналған, Microsoft компаниясы жасаған тіл.

Қалай ойлайсыз?

Q|SI> – Net тіліне ендірілген, кванттық while тілінің кеңейтілген нұсқасында кванттық бағдарламалауды қолдайтын платформа. Бұл платформа кванттық while тілінің компиляторын және кванттық есептеулерді модельдеу, кванттық схемаларды оңтайландыру, кванттық бағдарламалардың тоқтауын талдау және кванттық бағдарламаларды тексеруге арналған құралдар жиынтығын қамтиды.

qGCL

Кванттық қорғалған командалық тіл (qGCL) П. Зулианидің докторлық диссертациясында анықталған. Ол Эдсгер Дайкстра жасаған қорғалған командалық тілге негізделген. Оны кванттық бағдарламалардың сипаттама тілі деп айтуға болады.

QMASM

Quantum Macro Assembler (QMASM) — D Wave сияқты кванттық айналдырғыштарға арналған төмен деңгейлі тіл.

Ескі тірек

Scaffold – C тіліне ұқсас тіл, ол QASM және OpenQASM форматына компиляцияланады. Ол LLVM компиляторлық инфрақұрылымы негізінде салынған, бұл Scaffold кодын белгілі бір нұсқаулар жиынтығын жасау алдында оңтайландыруға мүмкіндік береді.

Қалшықты

Silq – кванттық есептеулерге арналған жоғары деңгейдегі бағдарламалау тілі, берік статикалық типтеу жүйесімен және ETH Цюрихте жасалған.

LQP

Кванттық бағдарламалар логикасы (LQP) – көп бөлшектік күйлердің кванттық өлшеулерінің және бірлік эволюцияларының маңызды ерекшеліктерін көрсете алатын, сондай-ақ түрлі түйісу формаларының логикалық сипаттамаларын ұсынатын динамикалық кванттық логика. Бұл логика кванттық есептеулердегі әртүрлі протоколдардың дұрыстығын сипаттау және растау үшін қолданылған.

Функционалдық тілдер

Кванттық есептеулер үшін функционалдық бағдарламалау тілдерін жасау жұмыстары жүргізілуде. Функционалдық бағдарламалау тілдері бағдарламаларды түсінуге және олар туралы ой жүргізуге өте ыңғайлы. Мысалдарға Селингердің QPL және Алтенкирх пен Граттедждің Хаскелл тіліне ұқсас QML тілі жатады. Ван Тондер, Селингер және Валирон, сондай-ақ Арриги мен Доуек лямбда-есептеуге негізделген жоғары деңгейдегі кванттық бағдарламалау тілдерін ұсынды.

QFC және QPL

QFC және QPL – Питер Селингер анықтаған екі тығыз байланысты кванттық бағдарламалау тілі. Олардың айырмашылығы тек синтаксисінде: QFC ағын диаграммасы синтаксисін пайдаланады, ал QPL мәтіндік синтаксисті пайдаланады. Бұл тілдер классикалық басқару ағынына ие, бірақ кванттық немесе классикалық деректермен жұмыс істей алады. Селингер осы тілдер үшін супероператорлар санатындағы денотациялық семантиканы ұсынады.

QML

QML — Altenkirch және Grattage жасаған, Haskell-ге ұқсас кванттық бағдарламалау тілі.

СӨЗДЕГІНІЗ

LIQUi|> (liquid деп айтылады) – F# бағдарламалау тіліне арналған кванттық симуляция кеңейтуі. Оны қазіргі уақытта Microsoft Research StationQ күш-жігерінің бөлігі болып табылатын Quantum Architectures and Computation Group (QuArC) тобы әзірлеп жатыр. LIQUi|> теориялық зерттеушілерге физикалық кванттық компьютерлер қолжетімді болмастан бұрын кванттық алгоритмдерді жобалаумен тәжірибе жасауға мүмкіндік беруді мақсат етеді. Ол бағдарламалау тілін, оңтайландыру және кестелеу алгоритмдерін, сондай-ақ кванттық симуляторларды қамтиды. LIQUi|> жоғары деңгейдегі бағдарлама түрінде жазылған кванттық алгоритмді кванттық құрылғыға арналған төмен деңгейлі машиналық нұсқауларға аудару үшін қолданылуы мүмкін.

Кванттық ламбда калькулдары

Кванттық ламбда калькульдері – 1930 жылдары Алонзо Черч және Стивен Коул Клин енгізген классикалық ламбда калькульінің кеңейтілген нұсқалары. Кванттық ламбда калькулидің мақсаты – кванттық бағдарламалау тілдерін жоғары ретті функциялар теориясымен толықтыру. Кванттық ламбдалық есептеуді анықтауға жасалған алғашқы тырасты 1996 жылы Филип Меймин жасады. Оның Ламбда-Q есебі кез келген кванттық есептеуді бейнелеуге жеткілікті күшті. Дегенмен, бұл тіл NP-толық мәселелерді тиімді шеше алады, сондықтан ол стандартты кванттық есептеу модельдерінен (мысалы, кванттық Тьюринг машинасы немесе кванттық схемалық модель) айқын артық күшке ие болып көрінеді. Осы себепті, Мейминнің Ламбда-Q есебі физикалық құрылғыда жүзеге асырылуы мүмкін емес. 2003 жылы Андре ван Тондер кванттық бағдарламалардың дұрыстығын дәлелдеуге қолайлы ламбда есебінің кеңейтілген түрін анықтады. Ол сондай-ақ оны Scheme бағдарламалау тілінде іске асырды. 2004 жылы Селингер және Валирон сызықтық логикаға негізделген типтік жүйемен кванттық есептеу үшін қатаң түрде типтелген ламбда калькульін анықтады.