О квантовых компьютерах, биткоине и превосходстве#
Эта лекция не несет в себе образовательного смысла, а лишь пытается ответить на вопросы, которые обычно возникают у тех, кто впервые сталкивается с темой квантовых вычислений. А именно:
что это за вычисления такие?
зачем вообще это все нужно?
и когда взломают биткоин?
что за превосходство, о котором все говорят?
Что это вообще за компьютеры такие?#
Количественная эволюция компьютеров#
Сегодня классические компьютеры, построенные на идеях Тьюринга, фон Неймана и Шокли, стали неотъемлемой частью нашей жизни. Все мы привыкли к тому, что с каждым годом наши компьютеры становятся все мощнее и мощнее. И то, что сегодня является бюджетным ноутбуком 15 лет назад было аналогом суперкомпьютера!

Fig. 2 Иллюстрация закона Мура — рост числа транзисторов с 1970-х #
Так называемый закон Мура, сформулированный Гордоном Муром еще в конце 60-х годов, говорит нам о том, что число транзисторов на кристалле интегральной схемы будет удваиваться каждые два года. И этот закон стабильно выполняется.
Качественная эволюция компьютеров#
Но, к сожалению, по сугубо физическим причинам, выполнение закона Мура не может длиться вечно — рано или поздно, но прямое увеличение количества транзисторов станет невозможно. Поэтому сегодня все чаще можно услышать слова о том, что современным компьютеры ждет качественная революция. Кто-то говорит о переходе на новые материалы для изготовления транзисторов. Кто-то говорит о создании транзисторов на новых принципах, например, об оптических компьютерах. Но часто можно услышать слова о том, что следующим революционным прорывом станет создание квантовых компьютеров. О них мы и будем говорить.
Идея о квантовом компьютере#
Сегодня существует несколько версий о том, кто же первым высказал идею о квантовом компьютере. Как это часто бывает, сразу несколько ученых одновременно и независимо пришли к одной и той же идее. Одним из таких ученых был Ричард Фейнман.

Fig. 3 Ричард Фейнман, 1918-1988 #
В 1981-м году, когда шло очень активное развитие одновременно классических компьютеров и вычислительной квантовой механики, он высказал идею о том, что для решения задач квантовой физики нам нужен квантовый компьютер.
Что это за компьютер такой?#
Этот вопрос на самом деле крайне сложный и именно ему будет посвящена первая половина нашего курса. Кажется странным, если вопрос, которому будет посвящено несколько полноценных лекций с формулами можно было бы раскрыть в одном абзаце. Было бы ошибкой пытаться сказать, что обычные компьютеры работают на законах классической физики, а квантовые на основе квантовой механики — ведь нормально объяснить работу транзистора можно лишь с привлечением уровня Ферми и прочих сложных штук из квантовой физики. Также неправильно было бы говорить о том, что в отличии от классических компьютеров, где есть лишь \(0\) и \(1\) в квантовых есть все состояния сразу. Ведь ничего не мешает сделать так называемую вероятностную машину Тьюринга, другими словами, классический компьютер, который оперирует многими состояниями сразу. Особенно не хочется сразу сыпать на читателя кучу непонятных терминов, типа квантовой суперпозиции, кубита или запутанности, ведь для тех, кто не знает что такое квантовые компьютеры эти термины, вероятнее всего, тоже ничего не дадут. Для начала, давайте просто условимся, что квантовые компьютеры это, в отличии от фотонных, графеновых, или других перспективных “новых” компьютеров, не только использование новых материалов или технической базы, а еще и использование новой, отличной от заложенной Тьюрингом концепции вычислений, представления и обработки информации.
А зачем это вообще нужно?#
Факторизация больших чисел#
Мне кажется, что именно открытие алгоритма Шора для эффективного решения задачи факторизации послужило наибольшим толчком в популяризации квантовых вычислений. Именно после этого большое число специалистов устремилось в эту область, военные и корпорации начали вкладывать деньги, а журналисты стали писать о будущем крахе банковских платежей и вообще всего мира. Вероятно, алгоритм Шора является самым раскрученным квантовым алгоритмом.
Дело в том, что большая часть всей современной криптографии держится на одном простом предположении о невозможности эффективно решать задачу факторизации больших чисел. Ну или по простому, если у нас есть число, которое является произведением двух относительно больших простых чисел, то мы будем до бесконечности искать эти числа и скорее всего так и не найдем их. Но это для классического компьютера. А вот для квантового компьютера в 1994-м Питером Шором был предложен алгоритм, который решает эту задачу эффективно, за относительно короткий промежуток времени.

Fig. 4 Питер Шор, тот, кто переполошил весь мир своим алгоритмом #
Именно этот алгоритм в будущем взломает биткоин и обрушит банковскую систему, но не все так плохо – развитие квантовых компьютеров подтолкнуло ученых в области криптографии к созданию новых, так называемых пост-квантовых алгоритмов шифрования, которые нельзя взломать за разумное время и на классическом, и на квантовом компьютере.
Комбинаторные и NP-трудные задачи#
Помимо уже озвученных проблем с выполнением закона Мура, есть также и другая проблема. А именно то, что существуют задачи, которые скорее всего никогда не получится эффективно решать на классическом компьютере Тьюринга. Даже на фотонном или графеновом. Хороший пример это задача о рюкзаке. Когда у нас есть рюкзак ограниченного объема, а также есть много предметов разного веса и стоимости. И нам надо наполнить наш рюкзак так, чтобы предметы внутри него имели максимальную суммарную стоимость. Задача кажется легкой, но она относится к так называемым \(NP\) -полным задачам. Такие задачи, например, в случае большого рюкзака и набора предметов, невозможно точно решить за разумное время. Да и вообще их решить с приемлемой точностью, пусть даже приближенно это сегодня большая проблема!
Здесь я не зря написал “скорее всего”. Дело в том, что этот вопрос является одним из так называемых вопросов тысячелетия. Так, для известной задачи о наполнении рюкзака, мы не знаем сегодня эффективного алгоритма решения на классическом компьютере. Но мы также и не можем пока доказать, что такого алгоритма не существует. Ну то есть скорее всего такого алгоритма и правда не существует, а также скорее всего \(P \neq NP\) , но доказать это пока ни у кого не вышло. Но это скорее лирическое отступление.
Так вот, дело в том, что для квантовых компьютеров уже сегодня известны алгоритмы, которые позволяют потенциально эффективно, пусть и приближенно решать такие задачи на квантовом компьютере. Это задача коммивояжера, задача о рюкзаке, задача кластеризации графа и много других задач комбинаторной оптимизации. В нашем курсе будет целый блок, посвященный таким квантовым алгоритмам как Variational Quantum Eigensolver и Quantum Approximate Optimization Algorithm.

Fig. 5 Визуализация решения задачи коммивояжера – кратчайший путь, чтобы объехать 12 немецких городов – очень важная задача современной логистики #
Симуляция квантовой механики#
Это то, ради чего Фейнман предложил создать квантовые компьютеры. Это отдельная большая тема, где много квантовой механики. Ей будет посвящено сразу несколько отдельных лекций нашего курса. Но попробуем объяснить в двух словах, не вдаваясь в детали.
Дело в том, что задачи квантовой механики не получается решать аналитически. Казалось бы, в чем проблема, законы Ньютона уже для трех тел тоже аналитически не решаются, но это не мешает нам летать в космос, ведь такую задачу можно решить численно. Но ту приходит вторая проблема, а именно, что явно интегрировать уравнение Шредингера по времени, или, по простому, решать квантовую механику численно тоже вычислительно почти невозможно более чем для двух частиц.
Fig. 6 Эрвин Шредингер, 1887-1961, создатель знаменитого уравнения и мема про кота #
Казалось бы, что нам с этого. Ведь квантовая механика это удел теоретиков. Но вот проблема, квантовая механика лежит в основе квантовой химии, а та, в свою очередь, лежит в основе вообще всей химии и таких ее прикладных направлений, как создание новых лекарств, разработка новых аккумуляторов для автомобилей Tesla и многого другого. И сегодня мы вынуждены использовать лишь очень приближенные решения и концепции, точности которых часто не хватает.
Квантовые компьютеры в этом случае могут сделать реальный прорыв. Ведь в силу своей физической природы, квантовый компьютер идеально подходит для симуляции квантовой механики, а значит и решения столь важных сегодня задач из области разработки лекарств и дизайна новых материалов.
Машинное обучение и искусственный интеллект#
За последние 10-15 лет машинное обучение достигло поистине небывалых высот в своем развитии. Многие задачи, решение которых силами компьютера, раньше казалось невозможным сегодня успешно решаются при помощи машинного обучения. Примеры таких задач это, например, игра в Go, различение пород чихуахуа по фотографии, распознавание лиц в видеопотоке, составление относительно осмысленных текстов и генерация картин в стиле Пикассо из простых фотографий. Но оно все еще очень далеко от возможностей человеческого мозга. Так, наиболее масштабные искусственные нейронные сети, по примерным оценкам, имеют сегодня размер, эквивалентный 15 миллионам нейронов, в то время как человеческий мозг имеет порядка 85 миллиардов! Вызывает вопросы также и скорость обучения современных нейронных сетей. Так, самые большие языковые модели сегодня обучаются неделями на кластерах из тысяч видеокарт, в то время как человек с его относительно скромными вычислительными возможностями учится говорить всего 2-3 года.
И тут тоже на помощь могут прийти квантовые компьютеры. В данном случае, квантовые аналоги нейронных сетей, а также их комбинации с классическими нейронными сетями уже сегодня показывают впечатляющие результаты. Так, есть работы, где показано, что 4 квантовых нейрона по своей выразительности эквивалентны классической искусственной нейронной сети с \(\sim 250\) нейронами!
Именно квантовому машинному обучению, а также способам его применения и будет посвящена большая часть нашего курса. Мы постараемся рассмотреть все вопросы по этой теме, начиная от теории того, как можно строить квантовые алгоритмы машинного обучения и заканчивая тем, как их можно запрограммировать на современных языках квантового программирования. Если эта тема вам интересна, то этот курс точно для вас!
Ну и когда взломают биткоин?#
Наверное это один из главных вопросов, которые возникают при чтении подобных статей. И ответим сразу: взломают нескоро, времени еще много, 10 лет точно есть.
Fig. 7 Биткоин, как и многие другие электронные средства вынуждены будут перейти на пост-квантовую криптографию #
Сколько нужно кубитов под разные задачи?#
Наверное сразу стоит оценить тот размер, который квантовый компьютер должен иметь для эффективного решения описанных выше задач. Примерно цифры такие:
алгоритм Шора и взлом современной криптографии (включая биткоин): \(\sim 20\cdot 10^6\) (20 миллионов) кубит
задачи оптимизации: \(\sim 100 \cdot 10^3\) (100 тысяч) кубит
первые полезные задачи в квантовой химии: \(\sim 1\cdot 10^3\) (1 тысяча) кубит
квантовое машинное обучение: \(\sim 100-500\) кубит
Это кстати одна из причин, почему наш курс посвящен по большей части именно квантовому машинному обучению.
Логические vs Физические кубиты#
Есть еще такая проблема, что вся квантовая механика вероятностная. А еще, что квантовые компьютеры работают в области микромира и очень чувствительны к любым шумам извне. Это ведет к совершенно недопустимому уровню ошибок в вычислениях и их низкой детерминированности. Например, сегодня хорошим уровнем точности для квантовых компьютеров является 99% на одну операцию. Но ведь каждый алгоритм включает в себя сотни или даже тысячи операций! И тогда уровень ошибок становится совсем печальным.
Но есть и хорошие новости. Сегодня существует очень много классных алгоритмов коррекции ошибок, которые позволяют используя несколько физических кубит с высоким уровнем ошибок создать один логический кубит, имеющий очень низкий уровень ошибок. То есть программист будет писать код, который производит операции над одним кубитом, а на физическом уровне это будет операция над несколькими кубитами. В общем вопрос вполне решаемый. Вот только для создания одного качественного логического кубита может потребоваться до тысячи физических кубит! А те оценки, которые мы привели выше, они как раз про логические кубиты, то есть кубиты с очень высокой точностью операций на уровне классических компьютеров.
Сколько кубит есть сегодня?#
Скажем сразу, сегодня уже существуют квантовые компьютеры. Вот только все производители, когда пишут о новом рекорде, имеют в виду чаще всего именно физические кубиты.
Fig. 8 Квантовый компьютер компании IBM выглядит примерно так #
Есть квантовые компьютеры с разной архитектурой. Одни имеют больше кубит, но и более высокий уровень ошибок. Другие имеют низкий уровень ошибок, но их трудно масштабировать. Теме квантового железа в этом курсе будет посвящен отдельный блок из нескольких лекций. Но если кратко, то можно назвать примерно такие цифры:
рекорд в относительно легко масштабируемых, но шумных квантовых компьютерах это \(\sim 55\) кубит
рекорд в относительно точных, но медленных и плохо масштабируемых компьютерах это \(\sim 20\) кубит
рекорд в точных и масштабируемых, но очень трудно программируемых компьютерах это \(\sim 25\) кубит
Тут имеем ввиду соответственно:
сверхпроводящие кубиты, которые сегодня проще всего масштабировать
ионы в ловушках, которые имеют одну из самых высоких точностей
фотоны, которые вроде всем хороши, кроме того, что на них программирование это юстировка линз и лазеров на оптическом столе
Стоит добавить, что рекорд в точных и масштабируемых, а также программируемых (топологических) кубитах сегодня это ровно 2 кубита. Серьезно, взаимодействие двух логических кубит было опубликовано в Nature в этом году (2021).
Какие планы имеют ведущие игроки на этом рынке?#
Казалось бы, с такими масштабами биткоину боятся нечего, да и в целом область выглядит не самой перспективной. Но есть один нюанс. Все крупные игроки на рынке создания квантовых компьютеров (Google Quantum, IBM Quantum, IonQ, Xanadu) озвучили планы к 2030-му году иметь порядка одного миллиона физических кубит, что эквивалентно порядка тысячи логических кубит. Для криптографии это еще не страшно, но вот многие полезные задачи уже можно будет попробовать решать. Ну и стоит еще раз посмотреть на график закона Мура для классических компьютеров, которые каждые десять лет показывают примерно такой же прогресс!
О квантовом превосходстве#
Очень часто можно услышать разговоры о том, что достигнуто или опровергнуто квантовое превосходство. Попробуем под конец лекции разобраться, что же это такое и почему это важно (или не важно).
Понятие квантового превосходства#
Само понятие было сформулировано еще в 2012-м году известным физиком теоретиком Джоном Прескиллом.
Fig. 9 Джон Прескил, который и придумал этот термин. Еще он известен своим знаменитым пари с другим физиком Стивеном Хокингом (которое Хокинг проиграл) #
Квантовое превосходство это решение на квантовом компьютере задачи, которую нельзя решить на классическом компьютере за разумное время (10 тысяч лет разумным временем не считается). Достижение квантового превосходства это однозначно новый уровень в развитии квантовых вычислений. Но есть один подвох. Дело в том, что речь идет о совершенно любой задаче, независимо от того, насколько она полезна или бесполезна.
Так что когда кто-то заявляет о достижении квантового превосходства, то это важный повод для ученых и разработчиков квантовых компьютеров, но скорее всего это очень малозначимый факт, с точки зрения простого обывателя.
Хронология событий#
Ну и в конце приводим краткую хронологию событий.
2019 год, компания Google заявляет о достижении квантового превосходства. Задача выбрана максимально удобная для квантового компьютера и полностью лишенная практического смысла. По словам разработчиков из Google их квантовый компьютер за 4 минуты решил задачу, которую классический суперкомпьютер решал бы 10 тысяч лет. Их квантовый компьютер имел 54 кубита
2019 год, компания IBM заявляет, что Google не учли, что их задачу можно решать на классическом компьютере более оптимально, но без экспериментов
2020 год, компания Alibaba реализует алгоритм IBM на своем суперкомпьютере и решает задачу за \(\sim 20\) дней
2021 год, группа китайских ученых оптимизирует классический алгоритм и решает задачу на 60 видеокартах NVIDIA за 7 дней
2021 год, группа других китайских ученых заявляет, что достигла нового превосходства на квантовом компьютере из 56 кубит
В общем сейчас идет довольно интересный процесс войны меча и щита. Пока одни ученые строят более мощные квантовые компьютеры, другие придумывают более продвинутые алгоритмы их симуляции. Хотя конечно все ученые говорят, что уже где-то на 60-70 кубитах эта история окончательно закончится в пользу квантовых компьютеров.
А как это вообще выглядит? И сколько стоит?#
На сегодня почти все известные технологии создания квантовых компьютеров требуют чего-то из:
сверхточная юстировка лазеров на оптическом столе
Или даже всего сразу. Поэтому сегодня почти все квантовые компьютеры продаются через облачные сервисы. Например, относительно недавно ведущий поставщик облачных технологий – компания Amazon добавила в свой сервис AWS новый продукт Amazon Braket. Этот продукт позволяет взять в аренду самый настоящий компьютер точно также, как мы привыкли брать в аренду процессоры, видеокарты или жесткие диски. Аналогичные продукты сейчас предоставляют и другие крупные игроки на рынке облачных услуг. Хотя это все пока исключительно для целей исследования. Ведь как мы уже поняли, сегодня квантовые компьютеры еще не способны решать реальные задачи. Стоит такое развлечение не очень дорого, например, можно запустить свою квантовую программу на 32-х кубитном компьютере Aspen-9 всего за $0.3 (per-task).
Некоторые производители идут дальше и предлагают относительно компактные решения. Так, недавно было представлено 24-х кубитное решение, которое помещается в две стандартных серверных стойки. Но масштабируемость таких устройств вызывает вопросы.
В любом случае, в ближайшие 15-20 лет точно не стоит ждать появление карманного квантового компьютера, или хотя бы квантового сопроцессора в домашнем ПК. Да и в этом нет особого смысла, ведь мало кому дома нужно взламывать биткоин, решать логистическую проблему или разрабатывать высокотемпературный сверхпроводник.
Заключение#
Это вводная лекция, она не даст вам каких-то особых знаний. Скорее, ее цель заинтересовать читателя. Самое интересное будет в основной части курса, где мы будем разбирать квантовые алгоритмы, пытаться симулировать квантовую механику и обучать самые настоящие квантовые нейросети! Ждем вас на курсе!
Существуют ли квантовые компьютеры на самом деле?
Просто: В СМИ опять поднялась шумиха про квантовые компьютеры будущего.
Сложнее: В Google объявили, что принадлежащий компании квантовый компьютер D-Wave решил поставленную задачу в 100 миллионов раз быстрее, чем обычный компьютер. Эта новость стала поводом для нового обсуждения одного из самых ожидаемых технологических прорывов. Разработку настоящего квантового компьютера можно сравнить с мечтой о лекарстве от рака или болезни Альцгеймера, термоядерной энергии и колонизации Марса. «Медуза» попросила научного журналиста Сергея Немалевича объяснить, существуют ли уже настоящие квантовые компьютеры и чем они лучше обычных.
Почему о квантовых компьютерах столько говорят?
Просто: Потому что они очень быстрые.
Сложнее: В не очень далеком будущем квантовые компьютеры могут стать необходимостью. Потребности человечества в производительности компьютерных процессоров уже сейчас обгоняют развитие классической электроники. Есть знаменитый закон Мура, описывающий скорость роста производительности процессоров: число транзисторов на кристалле интегральной схемы удваивается каждые два года. Сейчас этот закон уже не совсем выполняется — число транзисторов удваивается раз в 2,5 года. Так или иначе, производительность традиционных процессоров не может расти до бесконечности. Никто не знает, когда понадобится качественный скачок, но рано или поздно он обязательно понадобится. И создание квантового компьютера, способного решать некоторые важные вычислительные задачи гораздо быстрее обычного, — одно из возможных направлений развития.
Что такое квантовый компьютер? Чем он отличается от обычного?
Просто: В обычных информация хранится в битах — нулях или единицах, а в квантовых — в кубитах. Кубиты могут как бы находиться одновременно в двух состояниях: содержать ноль и единицу сразу. Благодаря этому теоретически квантовый компьютер может работать быстрее.
Сложнее: Как понятно из названия, квантовый компьютер использует феномены квантовой механики. В микромире, живущем по законам квантовой механики, возможны явления, немыслимые в привычном нам макромире. Например, частица может находиться в суперпозиции — сразу в двух состояниях. Есть популярная метафора: представьте подброшенную в воздух монету, которая одновременно и орел, и решка. Грубо говоря, примерно так же устроена работа кубита — основной единицы хранения информации в квантовом компьютере.
Другой эффект называется квантовой зацепленностью: состояния двух частиц могут быть взаимосвязаны и меняться одновременно, даже если эти частицы находятся в разных уголках галактики. Благодаря квантовой зацепленности кубиты можно собирать в связанные между собой наборы. Если набор из N классических бит хранит последовательность из N нулей и единиц, то в регистре из N кубит записано несравнимо больше информации — суперпозиция всех возможных последовательностей из N нулей и единиц.
Поймав монету, мы видим, что она выпала либо орлом, либо решкой — вероятность 50 на 50. Так же, измеряя состояние кубита, мы получим ноль, либо один; только — в отличие от монеты — вероятности получения каждого из двух значений не равны. Вот эти вероятности и «записаны» в суперпозиции. А если измерить значение квантового регистра, получится только одна последовательность нулей и единиц, но, опять же, с некоторой вероятностью, которая — в виде коэффициента — хранилась в исходном квантовом состоянии.
Квантовая ячейка памяти содержит не конкретную единицу информации, а набор вероятностей получения любой возможной единицы информации при измерении. И если классический процессор за один такт изменяет последовательность из N нулей и единиц, то квантовый процессор изменяет набор из 2 в степени N вероятностей — в сущности, совершая экспоненциально больше работы. Это свойство называется квантовым параллелизмом, и теоретически квантовый процессор может работать экспоненциально быстрее классического.
И как, получается?
Просто: Не особо.
Сложнее: На самом деле, почти никогда не получается. Во-первых, квантовые вычисления не дают абсолютно точного решения задачи — ответ оказывается правильным только с некоторой вероятностью, и коррекция возможной ошибки отнимает дополнительные вычислительные ресурсы. Во-вторых, когда имеешь дело не с понятными нулями и единицами, а с их громоздкими суперпозициями, приходится исхитряться, даже чтобы реализовать простейшие логические операции. Построение квантовых алгоритмов — теоретическая область, развивающаяся параллельно с попытками инженеров создать для них квантовые компьютеры. Успехов в этом направлении достигнуто больше, в частности, известно, что любой классический алгоритм можно перепрограммировать в квантовый, но число квантовых алгоритмов, которые будут заведомо работать намного быстрее классических (то есть возникнет «квантовое ускорение»), относительно невелико. Самые известные из них — алгоритм Гровера для решения задачи перебора и алгоритм Шора, позволяющий раскладывать число на сомножители.
Так квантовые компьютеры существуют или нет?
Просто: Да, но такие простые, что их квантовость не дает никаких преимуществ.
Сложнее: Квантовых компьютеров, которые способны решать любую задачу, пока не существует. Большинство исследований сейчас направлено не столько на построение действующих квантовых компьютеров, сколько на отработку базовых технологий, в первую очередь — создания кубитов. Время от времени на регистрах из нескольких кубитов запускаются какие-нибудь квантовые алгоритмы и решаются простенькие задачи, вроде разложения числа 143 на простые множители или осуществления перебора из четырех вариантов. Поскольку базовых проблем остается еще очень много, создавать системы больше, чем из пары десятков кубитов, не имеет особого смысла, а у устройств с меньшим количеством кубитов нет заметных преимуществ перед классическими компьютерами. Особняком здесь стоят устройства канадской компании D-Wave, последнее из которых — с 1152 кубитами внутри — наделало недавно столько шума.
Квантовые компьютеры никак не могут сделать — в чем проблема?
Просто: Квантовые системы очень чувствительны: чуть что, они лишаются своего квантового волшебства, а заодно и всех полезных свойств.
Сложнее: Любое «наблюдение» или «измерение», а в сущности, почти любой контакт с внешней средой приводит к тому, что квантовая система становится классической, это явление называется декогеренцией. Представьте подброшенную монетку, которая от столкновения с любой молекулой воздуха или даже от случайно упавшего на нее взгляда немедленно выпадает орлом или решкой. А уж если в системе несколько запутанных кубит, удержать их от декогеренции еще сложнее — это иногда сравнивают с попыткой поставить множество карандашей вертикально на кончики остро отточенных грифелей. Качественная изоляция квантовой системы от внешней среды — не только инженерно сложная, но и дорогостоящая задача. Даже первые прототипы квантовых вычислителей с несколькими кубитами по размерам напоминают компьютеры середины прошлого века и стоят миллионы долларов. Сейчас разрабатывается несколько конкурирующих технологий реализации кубитов, и самая главная задача — как можно дольше удержать их от декогеренции.
D-Wave продвинулась дальше других?
Просто: Да, они продвинулись дальше других, но в основном в области маркетинга — хорошо продают свои продукты.
Сложнее: Не особо. Канадская компания D-Wave имеет удивительную историю. В 1999 году физик-инженер и чемпион мира по борьбе джиу-джитсу Джорди Роуз прочитал популярную книгу про квантовые вычисления и увлекся этой идеей. О практической реализации квантовых компьютеров тогда еще мало кто помышлял, но Роуз умудрился привлечь финансирование на создание прототипа квантового вычислителя — не имея ни ноу-хау, ни технологий. Почти все разработки D-Wave вела чужими руками, зато каждый созданный прототип упаковывался в черную коробку (точнее — шкаф) с красивым логотипом, который потом громко представляли на рынке как действующий квантовый компьютер. Научное сообщество морщилось, однако коммерческие гиганты, в том числе Lockheed Martin и Google, устройства D-Wave покупали, не жалея десятков миллионов долларов — на всякий случай. Споры о том, что именно находится в черных ящиках с логотипом D-Wave — и можно ли это назвать квантовым компьютером, не утихают до сих пор.
Чем устройства D-Wave отличаются от тех, что разрабатывают конкуренты?
Просто: Легче сказать, чем они похожи — в них есть кубиты и их почему-то называют квантовыми компьютерами. В остальном почти ничего общего.
Сложнее: Хотя в этих устройствах тоже есть кубиты, они выстроены в специфическую прихотливую архитектуру. В сущности, D-Wave умеет решать одну-единственную оптимизационную задачу, которая соответствует естественной эволюции лежащей в ее основе квантовой системы. Машину нельзя непосредственно заставить сложить два числа, выполнить простейшую логическую операцию, на ней нельзя запустить квантовый алгоритм Шора. Все, что она умеет делать — симулировать саму себя, как если бы для решения задачки из школьного учебника про движение двух поездов навстречу друг другу использовалась система, состоящая их двух настоящих поездов и секундомера. Любопытно, что долго никто не мог даже доказать, что работа D-Wave действительно использует явления квантового мира. Убедиться в этом воочию невозможно (как уже говорилось, квантовые эффекты нельзя наблюдать — они сразу становятся классическими), так что единственный способ — удостовериться, что устройство способно сделать то, на что не способны классические системы, например, работать намного быстрее них. И именно это наконец удалось сделать исследователям из Google.
Так это правда, что D-Wave работает в сто миллионов раз быстрее обычного компьютера?
Просто: Правда. Как и то, что улитка доползет до соседней комнаты быстрее вас, если вы решите попутно обогнуть экватор.
Сложнее: Это правда, но только если сравнивать работу D-Wave с работой классического алгоритма, имитирующего то, что происходит внутри D-Wave по обычным физическим законам. Возвращаясь к примеру с задачкой про поезда, такой алгоритм бы буквально моделировал движение двух поездов, всякий раз проверяя, не встретились ли они. Разумеется, есть способ решить ту же задачу проще и быстрее — подставив нужные значения переменных в несложную формулу. Так же и с D-Wave: машина решила задачу поиска минимума с помощью так называемого квантового отжига, команда Google сравнила результат с работой алгоритма имитации квантового отжига, и да — получилось в сто миллионов раз быстрее. Но для того же вычисления есть другой классический алгоритм Селби, который выполняет его быстрее, чем D-Wave. Об этом, кстати, прямо говорится в статье специалистов Google. Другими словами, D-Wave работает быстрее, когда решает одну узкоспециальную задачу и только если сравнивать ее с работой одного неоптимального классического алгоритма. С практической точки зрения, никакого смысла в этом нет, вожделенного квантового ускорения тоже не наблюдается.
Выходит, Google всех надул?
Просто: Нет. Скорее Google убедился, что не надули его.
Сложнее: Отнюдь, все эти подробности явно описаны в статье. Если кто-то кого-то и надул, то это журналисты, поспешившие сообщить о технологической революции. А Google нужно было убедиться, что купленная ими машина хотя бы и впрямь является квантовой — для этого нужно было сравнить скорость ее работы именно с неоптимальной классической имитацией квантового отжига. Теперь никто не сомневается, что в работе D-Wave участвует квантовое явление, а если точнее — так называемый туннельный эффект. Но никто не сомневается, что системе D-Wave не суждено совершить настоящую революцию в квантовых вычислениях — она слишком специфически устроена, ее преимущества очень редко проявляются, с ней не работают уже придуманные квантовые алгоритмы. Скорее всего, по-настоящему большие новости придут не со стороны канадского стартапа, а от одной из сильных академических лабораторий, например, под руководством Джона Мартиниза в университете Санта-Барбары или Криса Монро в университете Мэриленда.
Рассказываем о квантовом компьютере простыми словами
Все чаще в новостной ленте встречаются упоминания квантового компьютера. Технологию развивают ученые по всему миру. Она может стать началом нового этапа в развитии технологий. В будущем задачу, на которую у суперкомпьютера уходит несколько лет, квантовый аналог решит за пару минут. Но как работает квантовый компьютер и каковы его перспективы? Последние новости о разработке собраны в этой статье.
Что такое квантовый компьютер
В первую очередь стоит определить, чем квантовые компьютеры отличаются от обычных. На привычных устройствах данные хранятся в битах, минимальной единице измерения информации. Любые данные поступают в виде двоичного кода. В случае с квантовыми компьютерами речь идет о кубитах. Аппаратам не приходится перебирать множественные варианты. Анализ производится мгновенно.
Кубиты имеют два состояния: суперпозиция и запутанность. В первом случае возможна любая линейная комбинация элементов. Запутанные кубиты в свою очередь образуют систему. Все ее составляющие взаимно влияют друг на друга. Измерив один кубит, можно сделать выводы о всех оставшихся. Это в разы повышает скорость вычисления.
Квантовый компьютер задействует принцип вероятности. Устройство мгновенно анализирует все предполагаемые сочетания. Истинным становится наиболее реалистичное решение. Чаще всего оно и оказывается лучшим выбором.
Отсюда возникает теория квантового производства. Вычислительная способность аппарата на кубитах в сотни раз превышает возможности обычного устройства. Ученые уверены, что вскоре квантовый компьютер превзойдет даже мощнейшие суперкомпьютеры. Пока что это остается только теорией. На деле технология все еще содержит изъяны. Точность компьютеров не исключает возможные ошибки. Исследователи работают над созданием универсального алгоритма пресечения неточностей.
Создание квантового компьютера началось в 1998-м году. В первую очередь им оснастили университеты, лаборатории и центры исследований. Спустя двадцать лет IBM смогли использовать квантовый компьютер через облачную базу. Эта опция поддерживается до сих пор. Облачные вычисления имеют непосредственный доступ к процессорам. Это также ускоряет передачу данных.
Разработка может получить широкое распространение в повседневной жизни. Это решит ряд проблем в сферах здравоохранения, экономики и дешифровки. Квантовые компьютеры способны выстраивать наиболее удобные маршруты. Из всех вероятных путей устройства выбирают кратчайший. Это можно использовать для навигации и транспортировки грузов.
Устройство также ускорит вычисления в областях фармацевтики, климата, финансов и не только. Самые серьезные вопросы человечества могут получить оптимальные решения. Квантовому компьютеру под силу дешифровать самые сложные коды.
Разработкой занимаются крупнейшие мировые компании, в том числе Intel, Google и IBM.
Логический кубит для вычисления ошибок
На днях ученые из Университета Дьюка представили свое открытие в области квантовых технологий. Они научили компьютер исправлять логические ошибки. Точность вычислений составила больше девяноста девяти процентов.
Квантовые компьютеры не вошли в обиход из-за частотности ошибок. Ученые долго не могли организовать систему исправления неточностей. Вычисления оказывались не готовыми к практическому применению. Это вдохновило американскую команду работать в новом направлении. Ученые решили научить компьютер самостоятельно исправлять ошибки.
Для этого они сложили несколько кубитов в общий логический кубит. Он не просто обнаруживает и исправляет недочеты. Он пресекает их дальнейшее повторение и распространение. Благодаря этому можно перестать опасаться сбоев системы.
Исследования показали надежность логического кубита. Точность его измерения на одну вторую процента выше, чем у других алгоритмов. Это приближает истинность ответа практически к стопроцентному значению.
Если разработка получит широкое распространение, квантовые компьютеры станут доступны для повсеместного использования.
Идеальное решение
Toyota не теряет времени и уже готова использовать квантовый компьютер. Машины все еще плохо программируют. Зато в работе с химическими процессами им нет равных. Поэтому Toyota c объединением QunaSys разработают на квантовом компьютере материалы для аккумуляторов.
Устройство должно смодулировать материал с идеальными свойствами. В основе исследования лежит теория электронной плотности Шредингера. Она рассматривает плотное тело как взаимодействие электронов в решетке атомных ядер. Простыми словами, компьютер воссоздаст электронную структуру материала. С задачей он справится в разы быстрее и точнее, чем суперкомпьютер. С ходом времени разработчики надеются снизить количество ошибок в вычислениях.
В случае успеха будет решена проблема разработки аккумуляторов для электромобилей. Даже лучшие аккумуляторы показывают относительно низкие результаты. Они огнеопасны, быстро выходят из строя и недешево обходятся владельцам. С квантовым компьютером проблема может быть решена.
В эксперименте используется квантовый компьютер Q System One от IBM.
Квантовый компьютер на классической архитектуре
Ученые из Университета Париж-Сакле тоже работают над усовершенствованием технологии. Команда решила разделить квантовый компьютер на процессор и блок памяти. Иными словами, устройство аппарата повторяет классическую архитектуру. Так исследователи надеются сократить количество используемых в вычислениях кубитов.
Производительность разделенной системы сопоставили с типичным квантовым компьютером. Тестовым испытанием стал поиск множителей RSA-чисел. Обычный квантовый компьютер прошел челлендж за восемь часов. Для этого ему потребовалось двадцать миллионов кубитов.
Разделенная система представляет собой аппарат для вычислений из двухмерной сетки. Оно присоединяется к квантовой памяти. Для разложения RSA-числа такому аппарату потребовалось всего тринадцать тысяч кубитов. Но на решение задачи ушло сто семьдесят семь дней.
И все-таки ученые считают свою разработку перспективной. Большое количество кубитов усложняет реализацию квантового компьютера. Новое устройство более простое в производстве. Оно также оказалось устойчивее против ошибок.
Пока что это только проект. Первые результаты исследования были опубликованы 12-го ноября.
Больше — лучше
Эффективность классической архитектуры все еще не доказана. И другие команды ученых намерены наращивать кубитный объем.
Юлихский исследовательский центр объявил о подготовке нового адиабатического компьютера. В его основе будут использоваться сто пятьдесят кубитов. В разработке примет участие французская команда Pasqal.
Адиабатический компьютер, или «квантовый отжигатель», может использовать несколько сотен кубитов. Это позволит ему решать сложнейшие задачи. Разработчики из Pasqal уверены, что устройство в сто пятьдесят кубитов позволит достигнуть «квантового превосходства».
Это будет прорывом для стран Европы. Тем временем китайские исследователи уже объявили о новом достижении. Ученые Научно-исследовательского университета Китая разработали два вычислительных устройства на фотонах. Они справляются с задачами в двадцать четыре раза быстрее, чем суперкомпьютер.
Лидеры ниши, компания IBM, тоже не остаются в стороне. Разработчики анонсировали чип Eagle на сто двадцать семь кубитов. В 2023-м году компания намерена запустить квантовую систему на его основе. Она превзойдет производительность классических современных компьютеров. Обычные ПК все еще справляются с базовыми задачами лучше, чем квантовые. IBM намерены исправить это.
Внедрение квантовых компьютеров окажет влияние на все сферы человеческой жизни. В том числе технология поспособствует развитию искусственного интеллекта. Пока что остается слишком много проблем, которые ученым надо решить. Разработчики уверены, что для этого потребуется около десяти лет. Но не исключено, что скоро станет известно об открытии, которое изменит все.
Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ]
Квантовая механика — это такой же набор законов природы только для мира очень маленьких частиц — электронов, протонов, фотонов, альтронов. хотя нет, это из Мстителей.
Короче, всех тех штук, из которых мы все состоим.
В начале прошлого века мы внезапно обнаружили, что между ними происходит полная дичь, необъяснимая имевшимися у нас законами физики. Мы нафигачили загадок и парадоксов, о которых все обожают спорить.
Но мы здесь сегодня не для этого.
Пока газеты тешили публику кликбейтными парадоксами, ученые за сотню лет изобрели себе набор законов, которые позволили все эти непотребства вполне логично считать на уровне простых вероятностей.
К сожалению, эти два мира так пока и не дружат, потому как всё это правильно объяснять простым людям никто не придумал. Каждый изобретает свой подход как ввести человека в новые правила игрового мира и выдержать тонкий баланс между «ученые засмеют» и «читатели ничего не поймут».
Здесь все либо впадают в упрощения с котами, которые «как будто одновременно и там и сям», либо в научную заумь с матрицами прямо на лицо.
Сегодня я попробую свой путь, которым я объясняю это своим интересующимся друзьям.
Итак, заходя в новый мир, нам надо принять ТРИ самых важных правила этой игры. Тогда остальное будет выводиться как бы автоматически.
Начнём с первого.
Частицы теперь волны, а не мячики
Время каминг-аута.
Мне 30 лет, а я до сих пор при слове «атомы» и «электроны» представляю их себе как мячики. Молекулы в учебнике по химии всегда были набором мячиков и палочек между ними, а кристаллическая решетка — это когда целая стена из мячиков!
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/5/164525759314359925.jpg)
В целом, это неплохо работало.
Электрический ток я представлял себе как толпу таких мячиков, несущихся по проводу-трубе. Больше мячиков — значит больше ампер (силы тока), быстрее бегут — больше вольт (напряжение), шире труба — значит меньше сопротивление.
Сам я тоже сделан из таких атомов-мячиков, которые по неведомой мне причине решили притянуться друг другу и образовать такую вот причудливую форму меня. Ну круто же!
Так вот теперь время для первой важной части этого поста. Если мне удастся донести хотя бы это, значит вы уже поймете огромную часть квантовой механики, даже если сразу закроете пост после этого.
Мячики, вы лучшие, мы еще вспомним о вас!
Но когда мы говорим о квантовой физике, наши частицы больше не работают как мячики. Они живут как волны. Как круги на воде или звуки от гитарных струн, представляйте как удобнее.
Волны — это новые мячики
Срач о том, реально ли всё это волны или мы просто натянули имевшиеся для волн уравнения и сказали «опа, а вроде подходит» — один из самых громких споров современных физиков. Там рвут глотки и делятся на лагеря, так что давайте не будем и просто примем, что тот же самый мячик может ВЖУХ и быть посчитан как волна.
Так нам удобно и всё.
Отныне мы состоим не из мячиков, а из таких вот волнушечек, которые как-то между собой интерферируют и получается Олег. Вот прям как звуковые волны накладываются чтобы получилась музыка, так же вот и Олег.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645257760178892357.jpg)
Главный же прикол в том, что кроме волн больше нет ничего. Вообще ничего. Никаких скрытых параметров, по крайней мере локальных.
Абсолютно любое свойство объекта отныне можно описать одной такой жирной функцией взаимодействия этих волн друг с другом.
Как в телевизор приходят радиоволны и получается картинка на экране, так же наши волнушечки могут собраться по какой-то формуле и сделать Олега. Фотоны света отражатся от волн Олега и так его себе видим.
Но реален ли сам Олег?
ДА, И ТЫ ТОЖЕ ВСЕГО ЛИШЬ НАБОР ВОЛН
Дам вам время подумать над этим. Тут лучше не торопиться. Можете вернуться к посту вечером.
Суперпозиция — всего лишь вероятность
Объясняя, что за фигня такая ваша «суперпозиция», все вспоминают байку с Котом Шредингера, закрытого в коробке со случайно взрывающейся колбой смертельного яда.
Пока мы не откроем коробку, кот для нас как бы ОДНОВРЕМЕННО мертв и жив, потому мы говорим «находится в суперпозиции жизни и смерти».
Страшилка с котом уже лет 50 используется в школьной программе и авторы большей части статей, что я читал, тоже её обожают, даже несмотря на то, что она не даёт читателю никакого понимания как всё это реально можно использовать на практике.
Пора прекратить шутить шутку 100-летней давности. Люди в 21 веке могут себе позволить среднее образование и понять тему чуть глубже.
Предлагаю поговорить о суперпозиции как будто мы люди с айфонами, а не крепостным правом.
Потому вместо кота мы возьмем монетку 😀
Когда мы раскручиваем или подбрасываем её в воздух — она находится в суперпозиции орла и решки. Да, «как бы» одновременно. Только поймав монетку мы получаем один из результатов нашего измерения. Не поймаем — не узнаем. Всё.
В чем же драматическая разница с так нелюбимым нами котом?
В том, что внутри монетки всегда есть чёткие вероятности её падения орлом или решкой. В жизни мы принимаем их за 50% на 50%. Но если мы зададимся целью немного «подкрутить» фокус себе на пользу — мы можем сделать монетку из разных сплавов или как-то притягивать одну из сторон магнитом.
В теории мы можем сделать такую монетку, у которой вероятности выпадания орла и решки будут, скажем, 60% на 40%, что поможет нам чаще побеждать (наверное).
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645257884195314306.jpg)
Отныне всегда, когда слышите про суперпозицию, представляйте себе именно такую подброшенную монетку.
Суперпозиция – не загадочный феномен «одновременности», а чёткое и простое отношение двух вероятностей
Находясь в «суперпозиции», монетка не просто для нас «как бы одновременно орел и решка», она имеет две вполне стабильные и известные нам вероятности выпадения одного и другого.
Да, мы не знаем 100% исход, но можем чётко влиять на него, например, направляя на монетку магнит.
Всё это уже намного удобнее использовать на практике, не правда ли?
Вероятности мы умеем складывать, умножать, творить другие непотребства, в отличии от мертвых котов.
Поэтому и дальше, когда мы будем говорить о квантовых битах, про которые все говорят, что они «одновременно 1 и 0», забейте на это и представляйте себе их как монетки. Каждый бит-монетка имеет строгую вероятностью быть прочитанным как 1 и строгую вероятность 0. Компьютер же может управлять этими вероятностями прямо в полёте пока не прочитает сам бит.
Прочитали бит — поймали монетку. Очень удобно.
Если вы поняли монетки — вы уже наполовину поняли квантовый компьютер, поздравляю.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645257978115345004.jpg)
Запутанность — квантовый IF
Чтобы объяснить квантовую запутанность я продолжу аналогию с монеткой, чтобы вас не ЗАПУТАТЬ. Простите, я должен был использовать этот каламбур.
Представим себе, что мы распилили нашу монетку вдоль. Как печеньки Oreo.
Получилось две монетки — одна только с орлом, вторая только с решкой. Пустая сторона разреза нас щас не интересует.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258039143911201.jpg)
Не подглядывая где какая, мы подбрасываем обе новых монетки в воздух (переводим в суперпозицию, как мы теперь знаем). Монетки начинают вертеться в воздухе и не падают (потому что они теоретические!)
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645258059163886479.jpg)
Тут квантовый физик скажет, что между монетками создана запутанность. Русская терминология лажает, потому лучше дополнительно запомнить английское слово — Entanglement. Оно встречается чаще.
Всё это означает некую «зависимость», «спутанность» или просто «связь» состояний двух монеток.
Как видите, никакой магии пока нет, законы физики мы не нарушали, на митинг не выходили.
Мы упаковываем одну из наших новых прикольных крутящихся монеток в коробку и отправляем её своему знакомому в другой город. А еще лучше на другую планету или в соседнюю галактику.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/164525808617377409.jpg)
Теперь мы оба имеем по монетке, но понятия не имеем орел нам достался или решка. Кажется, пришло время посмотреть.
И вот тут обнаруживается ПАРАДОКС.
Следите за руками: в тот момент, когда один из нас открывает коробку, ловит свою монетку и видит, что на ней орёл — вторая монетка за много тысяч километров МОМЕНТАЛЬНО оказывается решкой.
Звучит тупо, да? Но мы на 100% в этом уверены.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258104167774199.jpg)
Вот только Эйнштейн не был доволен такой фигнёй.
Монетки находились далеко друг от друга, так? Но результат чтения одной моментально повлиял на значение второй, так? Значит мы только что нарушили теорию относительности и передали информацию быстрее скорости света.
🚔🚨🚔 Это полиция релятивизма. На этот раз без штрафа, но я выпишу вам предупреждение.
Но есть и хорошие новости: мы научились создавать системы из двух частиц, которые вот так моментально при чтении одной гарантируют нам значение другой.
Мы называем такие половинки «запутанными» друг с другом.
Оказывается, в нашем квантовом компьютере мы тоже можем так «запутывать» между собой биты, что если один покажет 0, второй 100% всегда примет значение 1 и наоборот. Такой вот физически нерушимый IF.
Подойдём к настоящим квантовым вычислениям.
Другие статьи в интернете сразу начинают с объяснения кубитов, но мне показалось, что зная три правила выше, нам будет намного проще разговаривать и действительно понять суть кубитов, а не «магию». Теперь можно раскидать всё прямо на пальцах.
Кубит (qubit) — это квантовый бит
Звучит крутейше, но для начала вспомним что такое бит.
Прямая бочка пошла. ТУЦ-ТУЦ-ТУЦ-ТУЦ-ТУЦ!
Не, в смысле кумплюктерный бит.
Бит — это любой выключатель, который может принимать значение 0 или 1.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645258288194187451.jpg)
Когда таких выключателей на стене много, мы даже можем закодировать в них какую-то информацию, чтобы сосед её увидел.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/164525830517971143.jpg)
Восемь битов 01000001, например, будут буквой A, причём что в ASCII, что в Юникоде.
Набор букв АААА, переданных по сети как 01000001 01000001 01000001 01000001, сообщит собеседнику, что вы орёте над его мемом.
Любое устройство, на котором вы сейчас читаете эти строки, состоит из таких вот единичек и ноликов. Вся информация кодируется в битах, биты молотит ваш процессор, биты хранятся на диске, образуя байты, мегабайты, гигабайты — вы это знаете лучше меня.
Физически нам действительно неважно что у них внутри. В первых компьютерах они были механическими реле, в современных — всего лишь импульсы по 5 вольт, суть осталась та же.
Мы можем хранить в бите нужное нам значение 1 или 0, перезаписывать его при необходимости, а так же прочитать в любой момент чтобы использовать дальше для вычислений.
Цепочка таких битов и инструкций что с ними делать даёт нам Машину Тьюринга. Так появились компьютеры. Привет.
🌖 Квантовый бит
Я так подробно разжёвывал выше про биты, чтобы всем стало понятно — в квантовых битах (кубитах) всё то же самое.
В них мы тоже принимаем за 0 или 1 какое-то их свойство, которое можем писать и читать, и так же можем делать их из разных материалов — просто теперь вместо механических реле мы используем частицы.
В чём же разница?
Кубит можно еще и подбросить как монетку! Перевести в суперпозицию, из которой он будет выпадать 0 (орлом) или 1 (решкой) с чёткой и нужной нам вероятностью.
Это открывает нам третье весёлое состояние, ради которого мы тут и собрались вообще.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258379139491444.jpg)
Любое чтение кубита уничтожит нашу суперпозицию. Он схлопнется в 0 или 1, то есть монетка будет поймана, а стрелочка на нашей картинке повернётся к |0〉 или |1〉.
Циферблатики со стрелочками — это стандартная форма записи, привыкайте.
До чтения же у нас есть четкая вероятность того и другого исхода. Скажем, 70% на 30%. Мы не можем предсказать результат, но вероятности вот они, пожалуйста.
Мы можем спокойно нарисовать вероятности нашего кубита на картинке. Они не изменятся без нашего вмешательства.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258405163990226.jpg)
В бульварных газетах тут любят говорить, что кубит как бы ОДНОВРЕМЕННО принимает значение 0 и 1. Думаю, после моего хейта в сторону Кота, вы понимаете почему мне не нравится это слово.
Оно отвратительно бесполезно! Щас еще параллельные миры плодить будем, ну уж нет.
Главная фишка такого кубита-монетки именно в том, что мы МОЖЕМ влиять на вращение этой монетки пока она в воздухе, влияя тем самым на вероятность выпадения орла или решки в конце.
Правда графики выше получаются не очень красиво, потому мы придумали рисовать такие вот циферблатики, где мы двигаем стрелочку как хотим, а в конце она схлопнется вверх или вниз.
Никакой магии, просто вероятность.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258440154447198.jpg)
Мы можем направить на нашу монетку магнит, чтобы замедлить её вращение, инвертировать её в другую сторону или вообще заморозить, чтобы орёл был строго вверх. В этом случае он будет выпадать в 100% случаев, если вдруг нам это нужно.
В классических битах мы могли в любое время записать в него 0 или 1, а в кубитах мы можем записать в него вероятность быть 0 или 1 в конечном счёте.
Мы имеем право сколько угодно шалить с вероятностями внутри кубита, но когда мы читаем его значение — он всегда схлопывается в 0 или 1 с заданной вероятностью, превращаясь по сути в обычный бит.
Да, мы можем имитировать им обычный бит, просто записывая 100% вероятность за один из вариантов кубита.
Это легально, однако обычный бит справится с этим лучше и быстрее, а всё квантовое веселье таится именно между состояниями 1 и 0.
Всё это не очень полезно пока у нас только один кубит, но когда мы возьмем их несколько, мы сможем завязать их вероятности друг на друга так, чтобы система выдавала нам один из результатов с большей суммарной вероятностью, чем все другие.
Самые смекалистые уже догадались что мы тут хотим: хитро завязать все вероятности, чтобы этот «самый вероятный» результат и был нашим правильным ответом. Но об этом мы еще поговорим в разделе про сам квантовый компьютер, терпения.
Квантовый компьютер
Много кубитов + алгоритм
Итак, что у нас есть на данном этапе:
Кубиты, которые похожи на обычные биты, только вместо 0 или 1 они хранят вероятность выпадения 0 или 1, которую мы можем как-то корректировать «в полёте» чтобы прочитать нужный результат в конце.
Как только мы «читаем» кубит, он всегда схлопывается в 0 или 1 как та монетка, которая в итоге выпадает только орлом или решкой. Кубит после этого уничтожается, потому чтение логичнее делать в самом конце.
Два кубита можно запутать между собой — тогда они всегда будут выдавать противоположный друг другу результат. Даже если мы специально изменим один кубит — второй изменится на ту же величину, только наоборот.
Нарастающее стрёмное ощущение, что всё вокруг волна — даже небо, даже кубит. Появляющиеся сомнения в объективности наблюдаемой реальности и своей роли в этом мире.
Чтобы собрать классический цифровой компьютер в домашних условиях, мы берём ленту, кладём на неё некую последовательность битов, двигаем эту ленту туда-сюда и выполняем записанные отдельно на листочке операции над ними.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645258518181794044.jpg)
Так получается алгоритм. Машина Тьюринга. Такой вот фигней, только на более высоком уровне, занимаются все программисты.
В квантовом компьютере у нас такая же лента, только теперь мы кладём на неё кубиты. Список операций тоже остался, но сами операции чуть изменились.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/16452585441566435.jpg)
Решительно очевидно, что мы имеем полное право писать и читать наши кубиты как обычные биты. Записали в кубит 100% вероятность выпадения 1 — получили в итоге 1. Вау.
Но смысла в этом ноль. Как колоть орехи микроскопом — никто не запретит, но это достаточно медленно и бессмысленно. Обычный компьютер справится с этим лучше.
Сила же квантового компьютера именно в том, что мы берём несколько кубитов, которые как вы помните можно представлять как крутящиеся монетки, и взаимодействуем именно с вероятностями их выпадения в 0 (орел) или 1 (решка), а не самими результатами 0 и 1.
Вот это уже куда более интересно. Квантово!
В наших алгоритмах мы больше не мыслим концепциями «прочитай здесь, если 1, переложи туда», а начинаем как бы настраивать взаимодействие наших монеток (кубитов) пока они еще крутятся, чтобы в итоге получить интересующий нас результат.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645258562195921498.jpg)
Как вы понимаете, никто не гарантирует какой стороной упадёт первый кубит, а значит и нельзя ничего гарантировать про второй, и так далее. Получается как будто дерево расчёта вариантов исхода алгоритма.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645258580161893017.jpg)
Добавление всего лишь одного кубита увеличивает мощность компьютера сразу в два раза, а не на +1 бит как в обычном. Это и даёт нам вот ту самую экспоненциальную скорость вычислений в квантовом компьютере.
В конце же наше дерево вычислений всё равно приведёт к одному результату с наибольшей вероятностью, а к другим с наименьшей. Это и будет ответ алгоритма.
Если хотите более подробного разбора дерева по шагам, рекомендую вот эту годную статью.
Мы не перебираем все варианты одновременно, как объясняют во многих статьях для новичков. Мы скорее настраиваем вероятности наших кубитов по ходу программы так, чтобы правильный результат засветился на выходе с большей вероятностью, чем неправильный.
Условно говоря, мы подкручиваем наши монетки и говорим как им вращаться друг относительно друга, чтобы в итоге они выпали на стол в комбинацию, например, «орел-решка-орел» (010).
Это и будет правильный ответ алгоритма.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258601153084731.jpg)
И да, как вы уже догадались, вероятность правильного ответа на выходе квантового алгоритма бывает не 100%. Ну вот не получилось у нас связать все кубиты-монетки так, чтобы в 100% случаях они выдавали «орел-решка-орел», получилось только в 90%.
Тогда в 1 случае из 10 квантовый компьютер будет вполне легально нам врать, выдавая неправильный ответ. Тогда мы просто запускаем алгоритм много-много раз как настоящие боги инженерии! 🙂
😎 Квантовое превосходство
Сейчас за достижение квантового превосходства бьются Google, IBM, и главные исследовательские институты всех уважающих себя стран. Побеждают, как обычно, китайцы.
Белые же европейцы в это время воюют за запрет термина «превосходство» потому что оно оскорбительно и нетолерантно.
Лет через пять меня точно отменят за этот пост. Сохраняйте.
На практике же момент «квантового превосходства» не означает ничего, кроме того, что можно будет открыть шампанское и выпить за технологический прогресс.
Все эксперименты по квантовому превосходству по прежнему проводятся на специально подобранных задачках, которые квантовый компьютер должен щёлкать на раз, а классический пыхтеть тысячелетиями.
Читеры вставляют палки в колёса, короче, и всё равно не могут догнать. Разве что иногда.
Именно поэтому квантовое превосходство интересно журналистам и историкам, но точно не инженерам.
Я как инженер жду не формального победителя первого забега, а того, кто покажет мне первый стабильный квантовый компьютер.
Сейчас с этим всё плохо. С текущим количеством шумов они попросту бесполезны для практических задач. Компьютер, который считает быстро, но постоянно врёт — разве это годится? Превосходство у них, блин.
Случайно подняться на гору легко — куда сложнее подниматься на неё каждый день. Можно использовать эту фразу как кредо по жизни.
The Алгоритм
Время программировать программы!
На уроках информатики в 8 классе сегодня каждому школьнику рассказывают, что любой компьютер на самом деле состоит из кучки простейших операций над одним или двумя битами, называемых логическими вентилями (или логическими гейтами, если вы дитя улиц и учились по английскому учебнику, как я).
Программисты знают их почти наизусть: NOT, AND, OR, XOR и производные NOR, NAND, XNOR, и.т.д.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/1645258743170982643.jpg)
Хитро соединив проводами пару-тройку вентилей можно получить сумматор или простейшую память — всё это базовые элементы любого процессора.
В этот процессор можно вшить язык ассемблера, на котором программисты смогут складывать и умножать настоящие числа типа 25 + 48 вместо перекладывания единичек и ноликов.
Потом они соберут из этих операций жирные высокоуровневые языки программирования.
Начнется бум кремния, крах доткомов, курсы «профессия Data Scientist за неделю» и вот уже даже бездомные пишут на React за еду.
Короче, в квантовых компьютерах всё то же самое!
Только уровень развития тут пока плавает где-то до изобретения ассемблера. Представляете сколько всего еще впереди?
ПИШЕМ. КВАНТОВЫЙ. КОД.
Я обещал вам квантовый Hello, World — держите. И да, он НА ПИТОНЕ.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645259227113489434.jpg)
Как и любой Hello World, он абсолютно бесполезен. Он лишь подбрасывает две монетки, связывает одну с другой и говорит орлами они упали или решками.
С другой стороны, мне очень нравится этот пример, потому что в нём сразу есть и суперпозиция, и квантовая запутанность двух кубитов, ну и самое главное — сраный if’чик на питоне!
Разберём всё подробно по шагам.
Итак, нам нужна схема из 2 кубитов и 2 обычных битов. Импортируем все нужные тулзы и начинаем рисовать.
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2) # 2 qubits + 2 bits
Все наши биты и кубиты по умолчанию инициализируются в 0.
Дальше накидываем гейты. Потому что можем. Я хочу перевести первый кубит в суперпозицию гейтом H, то есть «подбросить» эту монетку. Если сразу после этого H наш кубит прочитать — мы получим идеальный генератор случайных чисел, в 50% выдающий 0, в 50% — 1.
Но мы не хотим читать 0 или 1, мы хотим программировать на вероятностях.
Потому вторым гейтом я наложу условие CNOT. Если наш кубит выпадает в 1 — он автоматически перевернёт и соседний кубит. То есть сделает из 0 в 1. Если нет — ничего не изменится. Оба наших кубита остаются по нулям.
qc.h(0) # gate H for qubit 0
qc.cnot(0, 1) # gate CNOT between 0 -> 1 qubits
Пока хватит квантовой магии, время прочитать наши кубиты, превратив их в обычные единички и нолики, вывести, и закончить программу.
qc.measure(0, 0) # read qubit 0 -> bit 0
qc.measure(1, 1) # read qubit 1 -> bit 1
qc.draw(output=»mpl»)
На этом наша квантовая программа закончена. Нам надо лишь как-то её запустить. На игровой квантовый компьютер мы пока не заработали, потому будем тестово гонять в симуляторе прямо на макбуке.
from qiskit import assemble, Aer
from qiskit.visualization import plot_histogram
simulator = Aer.get_backend(«qasm_simulator»)
result = simulator.run (assemble(qc)).result()
plot_histogram(result.get_counts())
Имитируя вероятности квантового компьютера, наш симулятор выполняет код 1024 раза и замеряет результат каждого эксперимента. Получается вот такая картинка:
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645259685120644786.jpg)
Как можно заметить, вероятности близки к 50/50, но даже за 1024 броска монетки наш глупый цифровой рандом не приблизился к идеалу. Но жить вроде можно.
Дальше дело за малым — прочитать результат и сделать с ним что-то полезное в реальном мире. Тут уже можно наговнокодить if’чик на питоне и никто нас не осудит.
Он говорит «если оба кубита выпали в 11 — скажи решка, если в 00 — орел». Вариантов 01 и 10 у нас быть не может, иначе всю эту квантовую лавочку можно просто закрывать.
Для визуализации еще можно вывести получившиеся сферы Блоха для обоих кубитов. Если сделать это много раз, будет видно как стрелочки вдвоем прыгают вверх-вниз. Веселье.
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs12.pikabu.ru/post_img/2022/02/19/6/164525974815726650.jpg)
Нет, стойте, не конец.
Я же обещал выполнить это на реальном квантовом компьютере. С симуляторами ощущения не те. Придётся показать.
from qiskit import IBMQ
IBMQ.save_account(«YOUR_API_KEY»)
qpu = IBMQ.load_account().get_backend(«ibmq_casablanca»)
result = qpu.run (assemble(qc)).result()
plot_histogram(result.get_counts())
Ждём два часа в очереди и вуаля:
![Квантовый Компьютер Как устроен? Как программировать? Уже? [ДЛИННОПОСТ] Разработка, Программирование, Картинка с текстом, Квантовая физика, Квантовая механика, Квантовый компьютер, Квантовая запутанность, IT, Длиннопост](https://cs14.pikabu.ru/post_img/2022/02/19/6/1645259828182275409.jpg)
Как будто сам прикоснулся к вечности. Даже растрогался. Ну и немного кекнул над потерявшими когерентность экспериментами посередине.
Вот теперь точно конец.
Зачем нам это все?
Наверное, стоило начинать с этого пост, но уже как-то поздновато 😀
Как вы заметили, стиль поста отличается от восторженно-вдохновенных статей, к которым все привыкли. Разработка квантовых компьютеров сейчас действительно окутана скептицизмом.
Тут действительно есть где посомневаться.
В создаваемых нами сегодня квантовых компьютерах кубиты могут жить жалкие доли миллисекунд, потому нам приходится одновременно создавать несколько физических кубитов ради одного логического, что еще сильнее усложняет задачу.
Даже самые топовые квантовые компьютеры гугла и IBM (на март 2021) содержат по 53 и 65 физических кубитов, что вроде неплохо для начала, но работают они не ахти как и не всегда.
Нам остаётся лишь ждать и надеяться, пока скептики прыгают вокруг с криками «ну и хернёй же вы занимаетесь, это всё хайп, надите нормальную работу».
Источник, не обрезанный

1.1K поста 10.5K подписчиков
Правила сообщества
— Будьте взаимовежливы, аргументируйте критику
— Приветствуются любые посты по тематике программирования
— Если ваш пост содержит ссылки на внешние ресурсы — он должен быть самодостаточным. Вариации на тему «далее читайте в моей телеге» будут удаляться из сообщества
Если мы можем влиять на вероятность выпадения 1 и 0 у запутанных частиц — мы имеем по-настоящему полноценную сверхсветовую передачу информации.
Без этого, мы могли всего лишь прочитать у себя случайное «0010» — и быть уверенными, что на альфе лебедя, куда мы отправили запутанные пары, прочитается «1101». Ничего при этом не передавалось.
Но если мы сможем целенаправленно прочитать «0101» — то на альфе лебедя получат уже осмысленное сообщение «1010».
Охуеть. «Так человек приближается к Богу — и подбирает к нему пароль.» (С)
Не понял зачем нам для понимания кубитов понятие, что частица — это волна.
И второй вопрос: мы устанавливаем вероятности кубитов, чтобы получить правильный ответ. Но если мы знаем уже ответ, то зачем нам настраивать вероятности кубитов. А если мы хотим узнать ответ, то как тогда нам настроить вероятность кубитов, ведь тогда ответ может быть любой?
Монетки находились далеко друг от друга, так? Но результат чтения одной моментально повлиял на значение второй, так? Значит мы только что нарушили теорию относительности и передали информацию быстрее скорости света.
Бежиииим.
Вот тут объяснение похрамывает, имхо. Мы ничего не передали. Информация о состоянии второй частицы стала известна только нам. В другой галактике о состоянии своей половины монетки узнают только когда (если) откроют свою коробку.
Под понятие «передачи» здесь попадает только отсылка посылкой второй половины монетки куда бы то ни было, такая отправленная посылка релятивистских законов не нарушает.
🤔 Правда ли, что когда появится квантовый компьютер, вся криптография сломается и мир падёт?
В смысле, серьезно, я могу дать прямо ссылку на Jupyter Notebook, где квантовый алгоритм раскладывает число на простые множители, что по сути ломает шифр RSA. Это не мечты научных фантастов, это, блин, жупитер ноутбук!
Большинство современной криптографии, включая ту, которая делает «зелёный замочек» в любимом веб-браузере и охраняет денежки в вашем онлайн-банке, действительно превратится тыкву, так как алгоритм Шора поможет быстро раскладывать их ключи шифрования на множители, что до сих пор занимало десятки тысяч лет.
— Является ли это проблемой, которая может откинуть наш мир в каменный век?
— Есть ли у нас решение?
— К сожалению, тоже да — пост-квантовая криптография. Звучит как название модной пост-рок группы, но лучше!
У нас уже сразу несколько алгоритмов шифрования, устойчивых в постквантовом мире. Реализация ещё далека от продакшена, но в основном потому что всем пока насрать.
Как только на горизонте замаячит рабочий квантовый компьютер — их быстро допилят.
Настолько быстро, что на гитхабе уже есть прототипы либ от Open Quantum Safe, где ребята даже реализовали постквантовые (!) версии openssl и openssh.
Вы прямо сейчас можете зашифровать что-нибудь постквантовым ключом на своём пет-проджекте и гордиться этим на всю улицу.
Так что детишек взломом RSA пугать можно, но в реальности если бы была хотя бы малая вероятность приближающейся угрозы, все бы уже давно побежали переходить на постквантовые алгоритмы. Пока её даже близко нет.
Но криптоанархистов это не должны останавливать жалкие законы физики!
Прогресс-то идёт. Каждый сам решает когда начинать испытывать FOMO.
Мой план-лист по бесплатным IT курсам и ресурсам
В посте про «наставление» накидали кучу годноты + в телегу.
По всему этому я пройдусь, буду иногда постить об успехах.
Некоторые глянул мельком. Поэтому если там есть продукт-плейсмент — отпишите и я удалю. На первый взгляд очень даже хорошо. Искал с нуля т.к. лучше повторить, чем вспоминать и ошибиться.
Первое я уже успел попробовать (находил сам), прохожу в текущий момент.
Stepik — python для начинающих

Если что-то хотите предложить — пишите в комментарии.
UPD: даже в начале написал, что я не в курсе ни о какой рекламе на тех ресурсах. И первый же начал разводить вонь о том, что я продажный и сайт вообще мой. Ууух я конечно злой гений.
Предлагайте ваши варианты, что сами пробовали. Обязательно попробую.
UPD2: я без понятия почему «это» вылетело в горячие. Не бейте блин тапком.

Ответ UehalVOmsk в «О собеседованиях на 700к/месяц»
Я одно время (около года) проводил тех собесы для расширения фронт команды, искали мидл+. Кандидаты были максимально разношерстые, ну и я сам попроходил очень много собесов за свою рабочую жизнь (каждая смена работы выходила в пару тройку недель по 2-3 собеса ежедневно)
Для тех, кто удивляется, почему вопросы одни и те же для джуна \ мидла \ сеньора и для разных уровней зп вот ответ:
1) Первичный отсев. Это базовые вопросы, 90% которых встречается в работе. Я принимал как технически верные ответы как по документации, так и в свободной форме верно описанные. Но и на этом валилось где то 40% кандидатов. Видимо из разряда «попробую пройти на шару». Технически не грамотные, с плавающими знаниями, некоторые и с подсказками не отвечали на вопрос
2) Проверка софт скилов, как общается кандидат, как быстро оперирует знаниями в голове, не валится ли от каверзных вопросов, выражается ли чисто по документации или объясняет более понятно своим языком. Тут отсевались люди, которые слабо могли коммуницировать (долго мямлили, на очень долгое время замолкали, сквернословили (были и такие, что было шоком для меня), всякие побратимушки тоже были, те, кто быстро начинал переходить на агресивный тон. На той работе были крупные созвоны, где были и менеджеры и бизнес представители, в корпоративную этику такие кандидаты бы не вписались
3) На части написания кода смотрелось на то, как быстро, насколько чисто пишется код, рассуждает ли кандидат вслух (Была просьба рассуждать вслух и описывать свои действия). Рефакторит ли свой код кандидат по ходу написания. Задачи я составил свои, связанные как с базовыми вопросами js и react, так и обезличенные рабочие задачи. Все это так же помогало в
выявлении степени подготовки кандидата.
По итогам собеседования я писал короткое ревью о кандидате, минусах плюсах и передавал дальше HR’ам
По итогу за год было отобрано 4 кандидата, один из которых очень быстро слился в неизвестном направлении, бросив важную задачу, которую как оказалось он не сделал. До сих пор не понимаю, что это было, то ли как то за него рядом проходили задачи, то ли какие то жизненые проблемы случились.
Было это около 3х лет назад, позиция мидл+ реакт фронт, зп 3к$
Как я выполняю таски
Взято из телеграмма — Инкогнито


Ответ UehalVOmsk в «О собеседованиях на 700к/месяц»
Пришла пора поговорить за бекенд, а именно, за всеми старый «любимый» РНР и иже с ним (почему «иже с ним»?, потому что сейчас часто этот язык идет в паре с Golang).
Был недалече период необходимости прохождения собеседований. Были несколько интересных случаев, правда, конторы вряд ли известные широкой аудитории, поэтому называть не буду. Штатная разработка мне давно не интересна, поэтому я искал нечто выше, типа архитектора, techlead, либо, на край, teamlead. З/п разная, но я искал 400+ (да, «Знающие» скажут, что это мало для таких позиций — я в курсе).
Т.к. я не буду называть конторы, то выскажу лишь собирательные аспекты, которые для себя выявил.
Небольшие конторы, до 100 человек. Их проблема — они часто не знают точно, кто им нужен, и легко вместо вас, опытного и подготовленного человека могут взять просто того, кто интервьюверу внешне больше понравился. У меня было несколько отказов с формулировкой «Взяли по рекомендации».
Мне еще ниразу не попадались с их стороны серьезно подготовленные в техническом плане люди. Вас легко могут спросить, чем int8 от int32 отличается.
Средние конторы, до 1000 человек. Вот, тут бывают самые интересные собеседования. Тут и компетенция интервьювером бывает самой разной. Кто-то вас может гонять по типам данных и «что выведет скрипт?», а так же сдобрив это кодингом в стиле «отрефакторите код», кто-то может попросить вас проработать абстрактную архитектуру чего-то, поспрашивать про способы ускорения и оптимизации приложений (репликации, шардинг, балансинг, кеширование и тд). Не редко просят оптимизировать таблицу и запросы к ней.
Один раз я наткнулся на очень сильного интервьювера. Мы обсуждали не просто тонкости интепретатора, но и различные возмжные последствия от его нюансов, а так же способы диагностики и устранения неполадок сервисов и приложений в «боевом режиме». Различные другие аспекты языка, типа «настоящей» параллелизации выполнения приложения.
Большие конторы. Тут основная, имхо, проблема в том, что они четко знают (действительно знают), как собеседоваать junior-разрабов, но часто совершенно не понимают, как это делать с более серьезными позициями. Я считаю, что это выходит из-за сильной корреляции ответственности между сотрудниками: в таких конторах крайне редко бывают сотрудники с экспертизой, а чаще те, кто пришел и сидит на одном месте в одной области.
Обычно у них первый этап — это алгоритмы, и не стандартные, а те, которые выдуманы интервьювером, либо около него. Почти всегда задачи максимально абстрактные и содержат слова «бесконечное кольцо», «огромный файл», «бесконечная очередь» и тд. В 100% меня спрашивали про то, как считать сложность алгоритмов, и какая сложность будет у того или иного.
Я считаю это проблемой потому, что на практике не бывает ничего «бесконечного», особенно на позиции артихектора или techlead: у любой задачи есть в 100% случаем граничные условия, от которых зависит решение (в любой, даже np-полной задаче, решение меняется в зависимости от количества элементов). Года 3 назад я еще пытался доносить это до интервьюверов, но теперь просто кидаю ссылку на профиль leetcode, если начинается «алгоритмистика» — сильно время экономит.
Не редко бывают совершенно тупые задачи в стиле «сджойнить стопицот таблиц и наложить рекурсию в одном запросе» — опять же, протсо на знание ради знаний, что не практике вы никогда не примените.
Еще почему-то меня часто спрашивали под «подкапотное» устройство http/http2 протоколов, модель OSI (sic!) и чем UPD лучше/хуже TCP. Пару раз были вопросы про OLTP/OLAP механизмы, и чем одно лучше/хуже другого.
Честно говоря, я ниразу не проходил первый этап из-за своей неприязни к подобному (что человек может нагуглить за 1 минуту), поэтому что там дальше, я не знаю 🙂 Может, что-то действительно стоящее и интересное.
Если подвести итог, то, имхо, маленькие и большие конторы на подобные позиции не особо интересуют ваши практические технические скилы, больше — как вы себя подадите (первый этап в больших конторах — это не про скилы).
И чутка про забугорные конторы. В них часто потенциально невысокий уровень экспертизы интервьювера усугубляется наличием потенциальных индусов и всяких AWS/Azure сервисов, которые сильно разгружают (не в финансовом плане, конечно же) конторы. Так что знание этих сервисов даже, если вы идете на простую разработку, обязательны. Каждая вторая контора обязательно даст вам тестовое задание, и не потому, что «вас таких за забором дофига», а просто так.
Английский — естественно. Часто говорят про минимум В2, но на практике нужен С1, не меньше: если вам говорят, что собеседование будет на аглицком, это значит, что там будет либо native, либо fluent speaker.
Будет огромным плюсом, если вы познакомитесь с компанией заранее и проработаете свою мотивацию не в стиле «свалить из РФ».
Вообще, при собеседовании в забугорные конторы крайне важны soft skills. На столько важны, что вы обязаны научиться улыбаться, если еще не умеете. Я сейчас говорю про конторы, где HR сидит в каком-нибудь Кипре или Испании, а не те, что нанимают аутсорс рекрутеров в РФ.
Почему-то до сих пор часто конторы из заграницы уверены, что даже на лидирующие позиции достаточно 4000-4500$/мес gross, если вы из РФ. С учетом того, сколько придется на налоги и комиссии отдать, это очень мало.

Ответ UehalVOmsk в «О собеседованиях на 700к/месяц»
Вот так вот, ничего сверхъестественного. Время от времени терзает синдром самозванца. Не понимаю, ну как мне платят столько денег, если работаю, не особо напрягаясь, 8 часов в день. И после восьми часов выключаю уведомления и иду домой. Как так может быть, в то же время как, например, врачи на скорой засыпают на ходу от усталости и не зарабатывают столько.
Камрад -не все ИТшники одинаковые, равно как и не все врачи одинаковые.
Я, например, периодически играю в покер с врачами стоматологами — я вот так с ходу и не скажу, кто из нас больше зарабатывает.
Есть и в ИТ сфере огромное количество специалистов — которые зарабатывают как врачи на скорой. Например, те же самые линейщики в РТК, которые по авариям ездят — редко больше 50-80 получают. Хотя тоже вообще то ИТ-специалисты.
На одного сеньора с 6-тизначной ЗП, у нас в отрасли — есть 2-3 мидла, и еще 5-10 джунов и вспомогательного персонала у которых зп вполне себе 5 значная.
Вдобавок и государство у нас в этом плане в принципе не очень щедрое — позиция разработчика в ИТЦ в областном центре при региональном минцифры — 70-80 тыр (и это Камчатка с коэффициентом 2.6.) Где нить в Кургане — будет 30-40.
Так что посмотрите на медицину через призму грейдов и увидите — что терапевты/педиатры/скорая — это уровень джунов на самом деле. По факту — 1 и 2 линия поддержки.
Много вы в 1/2 линии поддержки знаете специалистов с 6 значной ЗП?
При том что, зачастую непрерывность деятельности предприятия и количество простоев от них зависят чуть ли не сильнее, чем от деятельности сеньоров.
Но узкие специалисты уровня сеньор — и в медицине получают сравнимые и даже бОльшие деньги.

Ответ на пост «О собеседованиях на 700к/месяц»
Как я собеседовался на разраба (c#) в тинькоф и меня не взяли)
0. Примено месяц назад я, согласно плану, должен был начать искать работу. А за несколько дней до этого меня по принципу холодной рассылки нашел рекрутер-на-аутсорсе и спросил, не хочу ли я пособеседоваться в тинькофф. «А почему бы и да» решил я, и началась эта эпопея.
Для ЛЛ: прошел все этапы, но офер не получил. Все закончилось хорошо, меня позвали в три компании с большим окладом и ворохом плюшек
1. Примерно несколько дней занало общение с рекрутером-на-аутсосре и было назначено техническое собеседование по .Net. На через неделю. Не-де-лю, не меньше (читать голосом кролика). «Да не особо-то и тороплюсь» подумал я и полистал Рихтера
2. В назаченный час Ч созвонились с молодым человеком в зуме (или гугл мит, или что-то такое) и очень душевно пообщались. Пожалуй, именно положительное впечатление от этого собеседования и настроило меня на дальшейшее прохождение квестов. Вопросы были стандартные, поколения GC, во что разворачивается await и.п., без хитрожопостей вроде лока на интернированной строке (в каких кейсах будет лок? отвечай не задумываясь!) и эксепшнов в конструкторе (будет ли вызван финализатор? а если подумать?).
Фидбек от интервьюера был в духе «все было хорошо, но можно было более подробно расказывать, чтобы не было повода задавать дополнительных вопросов»
3. И опять на-через-неделю было назначено собеседование по алгоритмам. В час Ч созвонился с другим молодым человеком, запустил VS, расшарил экран и приступл. По сценарию ты читаешь задачу, описываешь предполагаемое решение и после аппрува интервьюера пишешь код. Код должен работать, а тесты — проходить. Откровенно говоря, я сразу не рассчитывал на блестящее прохождение этого этапа: в реальной жизни какой-нибудь обход графа мне приходится реализовывать не часто
Задач было две, уровня изи\медиум с литкода, но и их я решил прямо скажем не блестяще. Под конец, когда время уже поджимало, тупо linq использовал. Но обе задачи формально были решены. Фидбек интервьюера в духе «задачи решены, но не оптимально, рекомендуется попрактиковаться на литкоде»
4. Поскольку я претендовал на позицию выше мидла, то необходимо было пройти и третье собеседование — т.н. дизайн-интервью. Тут я ожидал легкого прохождения, т.к. вопросами архитектуры и взаимодействия сервисом занимаюсь постоянно и собак покушал. Плюс все это уже длилось не одну неделю, так что пропросил назначить собеседование как можно скорее. Как можно скорее оказалось в понедельник, через 4 дня, и выходные я провел не зря
Дизайн-интервью — это новый жанр собеседований, где тебе предлагают спроектировать архитектуру какого-нибудь твиттера или фесбука. И у этого интеврью, по-хорошему, есть свой сценарий: ты должен уметь выяснять требования, рассчитывать нагрузку, вводить ограничения системы, входные-выходные контракты\потоки данных, ориентироваться преимуществах тех или иных архитектурных паттернов, решений, шин, бд и т.п. Все это мне дается легко, но посмотреть на ютубе, как это делают другие, оказалось совсем не лишним. К тому же здесь очень важен аспект ограниченного времени: тебе дается час, и ты должен за это время успеть все. Т.е. понимать, что на выяснение\согласование требований, ограничений и нагрузки у тебя 15 мин, и если ты в них не укладываешься — тебе может не хватить времени на что-то другое
В целом, как я и рассчитывал, этот этап был пройден хорошо, фидбек от интервьюера «все хорошо, стоит обратить более подробное внимание на NoSql, так же не все параметры нагрузки были учтены».
5. После этого мне сообщили, что будут думать над грейдом и в какую команду меня могут порекомендовать. Через несколько дней (а то и неделю) мне сообщили, что ничего не придумали. То ли недостаточно себя хорошо показал, то ли на самом деле не было открытых позиций — не понятно
1. Все эти этапы заняли ОЧЕНЬ много календарного времени. Каждое собеседование по 1-1.5 ч, не так много в сумме, но растянулась эта эпопея больше, чем на месяц.
2. Общение оставило положительные впечатления, очень хорошо организованные собеседования, без растекания мыслью по древу и прочих аспектов плохих собеседований (уверен, каждому из нас есть, что рассказать)) . Плюс фидбек по каждому этапу — хоршая практика.
3. О потраченном времени я не жалею, проходить собеседования — это тоже навык, освежить который было не лишним.
4. Некоторые компани работают по принципу фильтрации планктона, как киты: перманентно фильтруют рынок, собеседут, а уж потом думают, а нужен ли им этот человек
5. В процессе собеседований ни одно чсв не пострадало, ибо в итоге я пришел к трем оферам с весьма интересными условиями, из которых выбрал самый привлекательный

Pikabu сейчас


Мой пет-проект: самообучающаяся нейросеть, играющая в змейку на C#
Всем привет! Попробую разбавить волны авторским контентом.
Дисклеймер: я в курсе, что есть специализированные инструменты и библиотеки, которые могут делать всё то же самое, но быстрее и лучше. Смысл проекта в первую очередь в саморазвитии, получении более глубоких знаний, изучении механик и подкреплении всего этого практикой.
Ну так вот. В какой-то момент времени я стал интересоваться нейросетями и решил их поизучать. Почитал кое-какие книги, статьи и запилил свою первую нейросеть на python. Язык очень простой в освоении, но мне в первом приближении совсем не понравился, и я решил переписать всё на C#, чтобы лучше закрепить новые знания. Так появилась первая итерация моей библиотеки, которая умеет самые базовые вещи: стоить нейросети с заданной топологией, выполнять запросы и обучаться методом обратного распространения ошибки.
Второй итерацией я в топорно-экспериментальном режиме подключил возможность вычисления на GPU, а именно на CUDA. Эксперименты показали забавный результат: небольшие матрицы на CPU перемножаются намного быстрее, чем на GPU, а большие — наоборот, несравнимо быстрее перемножаются на GPU.
Третьей итерацией я написал консольную змейку и попытался обучать её методом обратного распространения ошибки. Результат был довольно-таки слабым, т.к. я не придумал способа эффективно собирать датасеты для обучения в автоматическом режиме, а обучать нейросеть вручную мне не хотелось, т.к. это противоречило самой идее того, что я хотел сделать.
В итоге родилась четвёртая итерация проекта, на базе генетического алгоритма: библиотека, которая умеет «мутировать» путём рандомного изменения части весов нейросети на рандомные значения, и консольная змейка, которая создаёт популяцию рандомных нейросетей, которые параллельно управляют каждая своей змейкой. После того, как вся популяция «поиграла», происходит выборка наиболее успешных игроков, которые становятся родителями в новой популяции. Каждый из них добавлется в новую популяцию сам, а так же создаёт потомство, каждый из представителей которого получает случайную мутацию. И в завершении, к ним добавляется новый набор «случайных» экземпляров, чтобы немного разбавить генофонд. Более изощрённых способов размножения, вроде суммирования весов или кроссинговера, я пока не реализовывал, но уже в таком виде проект начал работать — нейросеть начала вполне успешно обучаться, уже через сотню поколений показывая неплохие результаты.
Кому интересно посмотреть или пощупать мой говнокод — милости прошу на гитхаб: https://github.com/tyzegt/NeuralNetworkLib/tree/snake-geneti.
Ниже несколько гифок, иллюстрирующих прогресс обучения:






Анонс бесплатного курса "Командная строка для разработчиков"
По нашему опыту, современному backend-разработчику неплохо бы понимать Linux на каком-то уровне. Свои мысли насчёт того, зачем разработчику Linux, мы недавно оформили в виде статьи, вызвавшей особо бурные обсуждения.
Кто-то считает, что без линукса действительно никуда. Кто-то считает, что разработчику и в винде комфортно. Кому-то наши примеры показались выдуманными. Кто-то нашёл примеры очень жизненными.
На наш вкус, линукс полезен, но существует непростая проблема высокого порога входа. Есть либо огромные книги вроде Advanced Bash-Scripting Guide, либо фрагментарные статьи совершенно разного уровня качества, либо различные курсы. Курсов много разных, но у нас своё видение. Как в классическом комиксе про стандарты:

Сообщество любит отправлять новичков читать мануалы, что мега-полезно, но довольно непросто. Кстати, на курсе мы разберём, как читать man-ы.
Наша мотивация по созданию курса
Мы довольно давно готовим молодых python-разработчиков, и начинаем именно с базовых знаний в Linux, прививая желание и умение работать в терминале. Вдохновляясь курсом «Поколения Python» на степике, мы решили сделать свой бесплатный курс «Командная строка для разработчиков», посвящённый терминалу Linux, языку bash и базовому администрированию. Начинающим разработчикам поможем преодолеть неловкость перед текстовым терминалом, опытным разработчикам покажем неочевидные и полезные в работе фишки для увеличения продуктивности.
Курс начинался с оффлайна, а переход в онлайн требует существенной переработки материала. Поэтому релизимся поэтапно, выпуская новые уроки по мере готовности.
Подробнее о курсе
Курс сильно завязан на практику, поэтому обязателен компьютер с линуксом в каком-то виде. Мы предлагаем три варианта:
Ubuntu в качестве гостевой операционной системы. Для этого в системе виртуализации (virtualbox, VMWare или любой другой) поставить Ubuntu.
Ubuntu в качестве основной операционной системы. Годится любой Linux-дистрибутив или даже macOS.
Ubuntu в WSL2, он же Windows Subsystem for Linux.
Начало курса неспешное и подходит совсем для начинающих. При этом мы обращаем внимание на важные детали, на которые часто никто не обращает внимание. Например, когда выбирать короткие, а когда выбирать длинные флаги команды? Есть ли разница между ls -al, ls -la и ls —all?
Примерная структура курса
Модуль 1. Пользуемся Ubuntu. Осваиваем терминал
Введение в курс.
Перемещаемся по файловой системе.
Работаем с файловой системой.
Редактор текста, работаем с файлами. Создаём и запускаем скрипты.
Процессы, знакомимся с PID, ps | grep и конвейером.
Используем ctrl-r и работаем с историей команд. Алиасы.
Модуль 2. Программируем в Ubuntu. Основы Bash
Bash для разработчика, несколько занятий. Полезные однострочники на примере изменения формата файлов, сортировки в разных вариациях.
Всё про поиск — конкретных файлов, поиск внутри файлов .
Виртуальная файловая система proc. Используем proc, PID, PPID, дескрипторы стандартных потоков, файловые дескрипторы, аргументы командной строки, подменяем PATH. Переменные окружения (как они работают, область и время действия), в том числе PATH и HOME. Спецсимволы < > >> 2> 2>> &>.
Работаем с учётными записями в Ubuntu. Разграничиваем права доступа.
Применяем sudo и root. Немного про безопасность, проблемы копирования из терминала, про пакеты, которые ставятся курлом.
Добро пожаловать на курс «Командная строка для разработчиков»! Введение и первое занятие уже доступно.
Интереса ради, мы спросили ChatGPT, нужен ли линукс для питонистов.
ChatGPT о важности Linux для python-разработчика
Python-разработчикам может быть полезно использовать операционную систему Linux в своей работе по ряду причин.
Во-первых, Linux обычно является основной платформой для серверных приложений и веб-серверов, которые часто используются для хостинга Python-приложений. Разработчики, работающие с серверными приложениями, должны быть знакомы с Linux, чтобы установить, настроить и поддерживать серверное окружение.
Во-вторых, многие инструменты и библиотеки для Python, такие как NumPy, SciPy и Pandas, часто предназначены для работы в Linux-подобных операционных системах. Разработчики, которые используют эти инструменты, будут иметь преимущество, если они работают на Linux.
В-третьих, Linux предлагает множество инструментов командной строки, которые могут значительно упростить и ускорить разработку. Например, Linux-разработчики могут использовать командную строку для автоматизации задач, обработки данных, управления пакетами и тестирования кода.
Наконец, Linux является бесплатной и открытой операционной системой, которая имеет широкое сообщество разработчиков и пользователей. Это означает, что Python-разработчики могут получить доступ к большому количеству бесплатных инструментов, библиотек и ресурсов, которые могут помочь им в их работе.
В целом, использование Linux может значительно улучшить производительность и эффективность работы Python-разработчика, поэтому знание и опыт работы с этой операционной системой могут быть ценными навыками для разработчика.
Как считаете, правы ли нейросети?
В другой планете тебя нет, но в этой ты есть. Делай добро -это твоя основная мысль
Поиск проекта
Так получилось что временно освободилась достаточно сильная команда ИИ разработки (4 человека: 3 МЛ разных специализаций и 1 бек+аналитик). Вместе работали 3+ года. Есть временный доступ к кластеру из нескольких A100. Кроме этого 3е-из-4х имеют опыт построения хайлоад-беков и не только. (Как пример у меня стаж 19+ лет)
Мы готовы рассмотреть разовые проекты или иные формы сотрудничества.
Если интересно в комментариях напишу контакты.
Без рейтинга. Поднимите — может кому актуально, а мне не хочется чтобы команда развалилась.
Моя работа делать так, чтобы вам было не скучно отдыхать от вашей работы!

Я делаю еееееегры :)))
Ну, и всякие картинки пилю тоже время от времени, но это вы уже в курсе 🙂
А это моя старая и чуть более брутальная работа 😉


Ответ на пост «Список компаний предоставляющих айти стажировку ч.1»
Берут толковых без опыта, обучают, но платят не прям жирно. Скорей возьмут нового стажера чем серьезно поднимут зп уходящему. Залететь на старте на годик самое оно. Тусил там 1 год 5 лет назад, пришел стажер-разработчиком, ушел старшим аналитиком. (35к₽->55к₽).
Многие ломятся в яндекс потому что сила этого бренда огромна, одни думают что там огромные зарплаты, а другие думают что там работают небожители. В результате одни ломятся туда за большими деньгами, а другие за строчкой в резюме. Получаем большой спрос на вакансии и ограниченное предложение. В результате кандидатам начинают предлагать зп все меньше и меньше — всегда найдется тот, кто согласится.
А по стажировке мне сказать нечего, не думаю что прям плохой вариант)
Когда ходил на работу в AT Consulting проходил мимо входа. Они серьезно в одном здании находятся. Думаю это может дать косвенный, едва уловимый, намек что компании одного уровня.
На мое удивление автор пропустил Лабораторию Касперского SafeBoard. Может оставил на следующую часть? Логично, до следующего отбора почти год.
Сам я туда не прошел: в первый раз отсеяли на первом этапе, во второй на последнем (обида блэт). Есть знакомые кто прошел, отзывы очень положительные.
Нашел даже практику для школотронов. Интересно, смогут ли они принести пользу (кроме кофе) или это чисто благотворительность?

Сообразим на троих. Троичные компьютеры

В повседневной жизни мы используем десятичную систему счисления. Почему именно её — это вопрос отдельный. В конце концов, существуют системы с основанием 12 (по фалангам пальцев без большого), 5 (пальцы на одной руке), 20, 60 и так далее. В компьютерах всё несколько проще — там (можно даже сказать, «Традиционно») используется двоичная система, как самая лёгкая для воплощения. Есть ток — нету тока. Есть отверстие в перфокарте — нет отверстия. Ноль или единица. Короче говоря, «да» или «нет» — третьего не дано. А что будет, если дать? Об этом и поговорим.
Собственно, существуют две возможности «дать» это самое третье: в виде «0, 1, 2» или в виде «-1, 0, 1». Первая система называется несимметричной, вторая — симметричной. Само по себе введение троичной системы счисления выгодно тем, что экономичность хранения данных для каждого разряда выше, чем для любой другой системы счисления. Связано это с тем, что, как говорится, «God counts by E», и наиболее экономичной является система с основанием, равным числу Эйлера (доказательство ищите на стр. 37), а тройка ближе к Е, чем двойка.
Но это ещё не всё — если несимметричная система является просто «расширением» двоичной, позволяя хранить в одной ячейке больше информации, то у симметричной системы выгод гораздо больше.
Одна из таких выгод — это появление значения «0», то есть «не определено». Как правило, 0 передаёт отсутствие значения, а 1 и -1 (иногда вместо цифр используются «+» и «-») — двоичное «да» и «нет». Чем это может быть выгодно? Вообще, зависит от того, как именно задана работа логики. Например, двоичный компьютер столкнувшись с парадоксальным запросом в духе «Второе утверждение истинно — первое утверждение ложно» впадёт в ступор. Троичный компьютер в ответ может просто выдать 0 — он не ответит, но избежит ответа. Или 1 — если работает на «логике парадокса». Ну, и помимо этого многие вопросы можно подвергнуть улучшению — например, не «наличие/отсутствие», а «недостаток/норма/избыток».

— Какой ужасный сон! Повсюду были нули и единицы. И мне показалось, что я увидел двойку!
— Бендер, это просто сон. Двоек не существует.
Выгода вторая — отрицательные значения. В двоичной системе, чтобы показать, что число имеет отрицательное значение, нужен дополнительный знак. В троичной системе если ведущий разряд числа отрицателен, то и число отрицательно. Смена знака с положительного на отрицательный и обратно достигается инвертированием всех его разрядов (что самое интересное, советский троичный компьютер «Сетунь» воспринимал «инвертирование» буквально — отрицательные числа печатались вверх ногами).
Из предыдущих двух пунктов выходит третий — увеличенная скорость вычислений при пониженном объёме занимаемой памяти. В двоичной системе нужно два разряда, чтобы показать знак числа, а вот в троичной системе нужен только один разряд (собственно, само число). Далее — сложение, самая часто выполняемая операция, которую сильно тормозят переносы из разряда в разряд — в случае двоичной системы они происходят в 50 % случаев, а в троичной (симметричной) системе — в 8 случаях из 27, т. е., примерно в 29,6% случаев. Большая скорость и меньшее количество элементов повышают быстродействие троичной машины примерно в 1,6 раза, и, соответственно, уменьшают энергопотребление.

Ну, или как-то так
Казалось бы, почему такое инженерное «wunderwaffe» не применяется повсеместно? На то есть несколько причин. Самая основная — их особенно-то никто и не разрабатывал. Самым известным примером троичного компьютера является советская «Сетунь» 50-х годов разработки. Уникальна она даже не потому, что является первой троичной ЭВМ (но не первой троичной вычислительной машиной), а потому, что сотрудники лаборатории ЭВМ МГУ собирали её буквально на коленке и из подручных материалов, потому что:
…мы должны были для МГУ получить машину М-2, которую сделали в лаборатории Брука. Но получилась неувязочка. На выборах академиков Сергей Львович Соболев — наш руководитель — проголосовал не за Брука, а за Лебедева. Брук обиделся и машину не дал.
Троичная счётная машина Фаулера — первый троичный калькулятор:

Помимо обычной «Сетуни» была также разработана «Сетунь-70» — принципиально новая машина со стеками команд и операндов (разработана, что характерно, к 100-летию со дня рождения Ленина). Ни оригинальная, ни 70-я «Сетуни» в большую серию не пошли — оригинал по не до конца понятным причинам весьма прозаично «задушили», а 70-я была единичным экземпляром. А помимо «Сетуни»… не было ничего. Американцы одно время экспериментировали с троичной логикой, и даже добились некоторого прогресса, но до строительства полноценных ЭВМ дело не дошло (максимум — эмулятор троичной логики «Ternac» для двоичной машины, который был написан на FORTRAN’е). В Канаде в 80-х был разработан чип ROM на основе несимметричной троичной логики (похожий чип можно и создать самостоятельно). В 90-х был разработан троичный язык программирования TriINTERCAL — опять же, на основе несимметричной троичной логики. Какие-то разработки ведутся до сих пор, хотя и не являются приоритетными. Другими словами, для их повсеместного применения просто нет ни опыта, ни материальной базы.

Собственно, «Сетунь». Достаточно компактна по сравнению с конкурентами
Из этого идёт вторая проблема — мы просто-напросто привыкли к двоичным компьютерам. Изначально они были гораздо более простым решением (сделать детектор «есть ток — нет тока» было гораздо легче, чем «ток ниже — ток номинальный — ток выше» — а ведь силу тока надо было точно контролировать…). Со временем их стало так много, и они стали так хорошо изучены, что нужды в каких-то более продвинутых системах пока (!) не возникает. Тем более, что все существующие на данный момент компьютерные программы заточены именно на бинарную логику. Если вводить троичные компьютеры в использование, то под них либо нужно писать свои собственные программы (что дорого и долго), либо делать их совместимыми с двоичными — а это не всегда возможно, и, возможно, даже сложнее.
Тем не менее, если кто-то всё-таки решится вложить время и деньги в разработку троичных машин и программ, то, потенциально, это приведёт к значительному росту мощностей компьютеров по всему миру, и, теоретически, может даже снизить необходимость в микропроцессорах с нанометровым техпроцессом. Плюс, не стоит забывать про такую весёлую вещь, как квантовые компьютеры. В квантовой физике мало что понимают даже те люди, которые полжизни ей занимаются. Например, квант может быть, как волной, так и частицей. Когда не ясно, в каком состоянии находится квант — это называется «Суперпозицией», отразить которую как раз может помочь дополнительное значение троичной логики. В общем, поле возможностей, открываемое троичными ЭВМ, бесконечно.
Непонятно только, когда и в какую сторону это поле начинать переходить.
Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Страпелька? Слышали такое??

Может ли нейросеть нарисовать то, что мы сами не можем себе представить?
А как у midjourney с абстракциями, которые каждый фантазирует как хочет? Как нейросеть видит, например, «течение времени во вселенной» или «квантовую запутанность», которые все представляют по-своему? А может ли показать то, что даже мы сами не можем вообразить?

Для ЛЛ: Может! но пруфов за правдоподобие не даст)
Просить нейросеть нарисовать Ядерного верблюда перспектива заманчивая, но всего 25 попыток, они как 25 желаний — убеждают быть избирательным в своих изречениях. Стим-панк котята и города будущего уже рисовали — результат бесспорно впечатляет, особенно коты).
@Fosstie подробно описал алгоритм работы с Midjourney:
За что ему сердечная благодарность)
Итак, вот как нейросеть видит течение времени во вселенной по запросу «the passage of time in the universe»:

Мне чисто по восприятию больше понравились варианты 2 и 4, продолжаем смотреть ещё варианты на два уже выбранных (V2 и V4):


Абстракция течения времени весьма притязательна и похожа на то что я себе представлял. Но что если копнуть в обратную сторону — не за пределы вселенной, а в микромир, причем в такой, что невозможно разглядеть ни через один микроскоп, нечто из области микромира, даже наномира, или ещё дальше?
Учёные с мировым именем на самом острие науки пытаются обнажить завесу тайны наномира, понять «как выглядят структуры столь малые, что увидитеть их невозможно чисто физически». Как выглядит например, квантовая запутанность? Это такое определение, которое многим представить то сложно, вроде бы и не абстракция, которая у каждого будет в своей визуализации, а вполне однозначное физическое явление. Мне лично было бы очень интересно увидеть «а как оно там?»)
Создаем запрос сразу с параметрами (помним, что попыток мало):
«quantum entanglement of time particles —ar 16:9 —stylize 625», где
—ar 16:9 — соотношение сторон картинки
—stylize 625 — стилизация, чем меньше значение, тем меньше уклона в стиль (по умолчанию 2500)



На данном этапе я уже выделил себе несколько вариантов, которые точно можно смело на обложку квантового научпопа




Понятно дело, что изображения ни разу не могут претендовать на достоверность и сравнить их ещё долго будет не с чем, а по всем канонам физики так и вообще увидеть квантовую запутанность не реально, т.к. размеры интересующих событие намного меньше длины волны видимого спектра и т.д. и т.п. Но так, как человек среднестатистически воспринимает 60-70% информации именно визуально, то, чтобы понять, лучше 1 раз увидеть, чем 100 раз услышать (понюхать, почуять — нужное подчеркнуть), пусть даже теоретическую интерпретацию интересующего явления).
Ниже добавлю пару работ MidJourney уже не по моим запросам, но также поражающие воображение своей визуальной составляющей.


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

Квантовая запутанность соединила атомы на рекордном расстоянии — 32 км по оптоволокну

Исследователи из Мюнхенского университета Людвига-Максимилиана и Саарского университета продемонстрировали квантовую запутанность двух атомов, разделенных волоконным кабелем длиной более 30 км. Это рекордное расстояние для такого рода связи и знаменует прорыв к быстрому и безопасному квантовому интернету.
Квантовая запутанность — явление, при котором две частицы могут стать неразрывно связанными настолько, что изучение одной может дать данные о состоянии другой. Еще более странно, что изменение параметров в одной частице мгновенно изменит ее партнера, независимо от того, как далеко находятся они друг от друга. Это приводит к шокирующему выводу о том, что информация «телепортируется» быстрее скорости света — идея, которая была слишком велика даже для Эйнштейна.
Несмотря на кажущуюся невозможность, квантовая запутанность постоянно подтверждалась в экспериментах на протяжении десятилетий — ученые использовали ее причудливую природу для быстрой передачи данных на большие расстояния. А в новом эксперименте исследователи побили рекорд расстояния для квантовой запутанности.
Для будущих сценариев квантовой связи жизненно важно, чтобы узлы связи, использующие долгоживущую квантовую память обеспечивали четко определенный сигнал. До сих пор это ограничивалось длиной волокна 1,7 км. Но недавно команда ученых добилась большого прогресса. В экспериментах были взяты радиоактивные изотопы рубидия-87, которые помещались в оптические дипольные ловушки в двух разных узлах зданий, отстоящих друг от друга на 400 м. Расстояние искусственно наращивалось оптоволоконным кабелем до 32,4 км за счет последовательно соединенных 700-метровых бобин.
Эксперимент начинался с запутывания спинового состояния атома с поляризацией фотона в каждом узле. Оба атома синхронно возбуждались (накачивались) лазерным импульсом, после чего они спонтанно возвращаются в свое основное состояние, испуская каждый по фотону. Из-за сохранения углового момента спин атома был связан с поляризацией излучаемого им фотона. Таким образом создавалась запутанность свет-материя или атомно-фотонная запутанность. Далее одиночные фотоны, излучаемые на длине волны 780 нм с помощью объективов собирались и передавались по одномодовым волокнам к квантовым преобразователям частоты. Там в волноводе из ниобата лития они преобразовывались в уже телекоммуникационную длину волны 1517 нм, причем сохранением поляризационно-квантового состояния фотона.
После преобразованные фотоны направлялись на промежуточную станцию по оптоволоконным каналам длиной 16,5 км, где выполнялось измерение состояния Белла с тем, чтобы передать запутанность атомам. Затем атомы анализировались, с учетом задержки, соответствующей времени двусторонней связи со станцией.

Ключевым моментом серии экспериментов являлось то, что промежуточные фотоны были преобразованы — их длина волны была увеличена с тем, чтобы они могли передаваться по оптоволокну с меньшим затуханием. Напомним, что их естественная длина волны составляла 780 нм, а это означает, что они обычно теряются через несколько километров, поскольку 10-кратное затухание происходит уже на расстоянии в 2,5 км. Поэтому прежде, чем путешествие фотонов началось, команда прогнала их через преобразователь и увеличила длину волны до 1517 нм, что близко к 1550 нм — телекоммуникационному S-диапазону, обычно используемому для передачи данных по стандартному оптоволокну, о чем мы говорили чуть выше. В этом диапазоне передача света в оптических волокнах имеет наименьшие потери — преобразование частоты с сохранением поляризации, происходит с теми же десятикратными потерями, что на исходной длине волны, но на дистанции 50 км. Команда справилась с преобразованием с беспрецедентной эффективностью в 57%.

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