Существует ли учебное пособие, которое начинается с «чисто CS-фона» и продвигается к «созданию нового квантового языка программирования»?


12

Я из области компьютерных наук, и мне трудно определиться с ресурсами, на которых я должен сосредоточиться при изучении квантовых вычислений, так как есть так много для чтения / просмотра. Моя конечная цель - сделать язык программирования, действующий как интерфейс между квантовыми компьютерами и человеком, похожим на человека 1972 года, когда был создан язык Си. В качестве реалистичного промежуточного этапа я хотел бы приступить к написанию программ на QISKit от IBM.

Для этого мне понадобится схематическое учебное пособие, чтобы получить необходимые знания по физике и смежным областям, необходимым для погружения в область квантовых вычислений. Существует ли это уже: упорядоченный список необходимых понятий и способностей для освоения, в котором, по возможности, также упоминается достаточный материал для приобретения каждого из них ?

Примите знания физики на уровне средней школы. Предоставить учебное пособие, то есть от начинающего до опытного руководства. Постарайтесь перечислить ресурсы видео / книг, которым нужно следовать в хронологическом порядке, чтобы стать экспертом в области квантовых вычислений, до уровня, на котором я могу написать свой собственный язык квантовых вычислений (при условии, что у меня уже есть другие навыки CS для написания языка) ,



3
Добро пожаловать в Quantum Computing SE! В настоящее время из-за названия этого вопроса создается впечатление, что вы спрашиваете что-то широкое и основанное на мнениях (для этого не предназначен формат SE Q & A), хотя основная часть вопроса проясняет, что это на самом деле запрос ресурса (что приемлемо). Таким образом, было бы очень полезно, если бы вы редактировали заголовок своего вопроса, чтобы он был более конкретным в отношении того, что вы хотите знать. Кроме того, было бы полезно, если бы вы в точности указали, какие ответы на вопрос, связанный в комментариях, отсутствуют, чтобы мы могли лучше помочь. Спасибо!
Mithrandir24601

1
В частности, ознакомьтесь с нашей политикой по вопросам запроса ресурсов . Это слишком широко.
Хизер

1
Вы думаете о чем-то похожем на nand2tetris, но на квантовый? Или что-то вроде книги «Квантовые вычисления для компьютерных ученых»?
Джеймс Вуттон,

1
Благодаря вашим изменениям я считаю, что теперь это соответствует требованиям запроса ресурсов, поэтому я снова открыл.
вереск

Ответы:


11

Я не думаю, что есть единственный золотой ресурс, который может дать вам все необходимые знания. Но я мог бы предложить путь (или схематичное учебное пособие в ваших словах):

Если ваша цель - создать новый язык квантового программирования, я бы скорее сказал, что вы должны сначала тщательно изучить существующий язык квантового программирования, а также основные понятия квантовых вычислений, как со стороны физики, так и со стороны компьютерных наук (возможно, даже математики). сторона!).

  • У Microsoft есть свой квантовый язык программирования под названием Q # (который является частью их Quantum Development Kit ). Полное руководство по документации находится на их веб-сайте: https://docs.microsoft.com/en-us/quantum . Если вы со стороны CS, я надеюсь , что у вас уже есть некоторые знания векторов, матриц и линейной алгебры в целом. Если это так, вы можете начать читать руководство постатейно. Первоначально они начинаются с краткого пересмотра матриц, векторов и т. Д., За которым следует краткое введение в кубиты. Этого достаточно для того, чтобы хотя бы начать писать основную квантовую программу с минимальным пониманием физики, стоящей за ней. Кстати, если ваши понятия линейной алгебры слабы, вы всегда можете попробоватьЛекции ханской академии о том же.

  • Далее вы бы хотели изучить хотя бы некоторые основы квантовой механики. Я лично люблю лекции профессора Вазирани , которые сейчас на Youtube. Около 60 десятиминутных лекций он охватывает все необходимые основы квантовой механики и алгоритмов квантовых вычислений. После этого вы будете в хорошей форме, чтобы самостоятельно выбирать новые алгоритмы.

  • В качестве третьего шага я бы предложил взять « Квантовые вычисления и квантовую информацию Исаака Чуанга и Майкла Нильсена », а также « Квантовые вычисления для компьютерных ученых» Мирко А. Маннуччи и Носона С. Янофски »для освещения важных тем, которые вы пропустил.

Этого должно быть достаточно для того, чтобы вы получили прочную основу, чтобы начать писать свой собственный квантовый язык программирования. Вы также можете изучить учебные пособия для других распространенных языков квантовых вычислений, чтобы получить представление о том, как писать квантовые программы и разрабатывать квантовые языки программирования.


6

Я бы посоветовал вам задуматься над тем, подходит ли цель «создания нового языка квантового программирования» на данном этапе разработки квантовых вычислений. Это не самый распространенный подход, поскольку в основном мы все еще находимся на стадии мышления с точки зрения того, что по сути является машинным языком. Когда мы создаем алгоритмы, уровень, на котором это делается, подобен выражению классических алгоритмов в терминах логических элементов (таких как этот пример для умножения). Квантовые SDK, такие как QISKit, по сути являются способами создания рабочих мест для отправки на квантовое оборудование или симуляторы. Это включает в себя инструменты для выполнения моделирования, оптимизации для времени выполнения или уровня шума и т. Д. Они на самом деле не являются языками в том высокоуровневом смысле, к которому мы привыкли при классических вычислениях.

Для введения в то, что происходит на этом уровне квантового стека, Терри Рудольф может помочь Q для Quantum .

Для вашей промежуточной цели написания программ с использованием QISKit я бы порекомендовал учебник по QISKit . Он имеет много отработанных примеров реализации коротких квантовых программ. Существует также публикация QISKit на Medium, в которой некоторые вещи из учебника объясняются более подробно. Существует также игровое руководство по QISKit , которое может быть полезно в качестве разминки для полного руководства по QISKit.

Полное раскрытие: я внес вклад во все вещи, упомянутые в последнем абзаце.


3
Я хотел бы не согласиться с этим. Как только FORTRAN был разработан (когда цифровые компьютеры были еще довольно примитивны), люди начали использовать его вместо машинного языка, и это был, вероятно, самый большой скачок в языках программирования в истории классических компьютеров. Почему мы должны заставлять людей программировать на машинном языке для квантовых компьютеров? (Я уверен, что они будут, для эффективности, но они не должны быть принуждены.)
Питер Шор

1
Отличный момент! Я бы сказал, что на данный момент аппаратное обеспечение не слишком задумывается над языком машин. Но было бы здорово оказаться неправым.
Джеймс Вуттон

Я немного отредактировал свой ответ, чтобы смягчить негатив, и просто указал, что в данный момент это не совсем обычный способ (хотя это не значит, что это неправильно)
Джеймс Вуттон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.