Qiskit을 사용한 양자 컴퓨팅, 1부 - Colab Notebooks 및 Qiskit 소개, 2022년 1월 22일, Quantum Computing with Qiskit, Part 1 - Introduction to Colab Notebooks and Qiskit, Jan 22, 2022
작성자 정보
- 작성자 bryanai
- 작성일
컨텐츠 정보
- 조회 82
본문
https://www.youtube.com/watch?v=cb8KbGeSjso 내용을 요약하면 다음과 같습니다.
Qiskit과 Colab 소개
- 이 영상에서는 IBM의 양자 프로그래밍 플랫폼인 Qiskit과 함께 Google Colab을 사용하는 방법에 대한 개요를 제공합니다.
- Qiskit을 사용하면 IBM 양자 컴퓨터에서 시뮬레이션이나 실행이 가능합니다.
Google Colab Notebooks 설정
- 사용자는 Colab에서 Jupyter 스타일의 노트북을 만들거나 로드하여 Python 프로그래밍을 할 수 있습니다.
- 새로운 노트북을 설정하고, 예제 파일에 액세스하고, GitHub 저장소나 Google Drive에 연결하는 방법을 보여줍니다.
Google Colab Shell 기본 사항
- Colab의 셸 명령(예
ls
:pwd
,cd
)을 소개하고 이를 사용하는 방법을 설명합니다. !
Colab에서 셸 명령을 실행하기 위해 느낌표( )를 사용하는 방법을 설명합니다 .
- Colab의 셸 명령(예
Qiskit 및 종속성 설치
- Qiskit을 설치하고 Colab에서
ipywidgets
사용하는 방법을 보여줍니다pip
. - 성공적인 실행을 위해 모든 종속성이 설치되는 것이 중요함을 강조합니다.
- Qiskit을 설치하고 Colab에서
Colab에서의 Python 코드 기본
- Colab에서 Python 코드 셀을 만들고 실행하는 방법을 설명합니다.
- 라이브러리(예: Qiskit)를 가져오는 방법과 . 과 같은
numpy
약어를 사용하는 것과 같은 코딩 단축키를 설정하는 방법에 대해 설명합니다 .numpy
np
양자 회로 구축
- 이 클래스를 사용하여 Qiskit으로 양자 회로를 만드는 방법을 소개합니다
QuantumCircuit
. - . 를 사용하여 큐비트 초기화, 게이트 추가, 회로 시각화에 대해 설명합니다
circuit.draw()
.
- 이 클래스를 사용하여 Qiskit으로 양자 회로를 만드는 방법을 소개합니다
Qiskit에서의 행렬 연산과 수학
- 아다마르 게이트와 큐비트에 미치는 영향을 설명합니다.
- 텐서곱을 포함한 양자 상태와 변환을 표현하기 위해 행렬 연산을 사용합니다.
Colab의 LaTeX 통합
- LaTeX를 사용하여 방정식을 서식화하고 양자 상태에 대한 사용자 정의 명령을 정의하는 방법을 보여줍니다.
- 방정식을 작성할 때 인라인(
$
) 및 표시($$
) 수학 옵션을 강조 표시합니다.
2큐비트 상태 및 게이트
- 2큐비트 시스템과 그 계산 기반 상태를 탐구합니다.
- 아다마르와 CNOT와 같은 게이트를 적용하는 방법을 보여주고 그 효과를 수학적이고 시각적으로 설명합니다.
최종 노트
- Qiskit 문서를 탐색하고 양자 회로를 실험해 보는 것을 권장합니다.
- 보다 복잡한 양자 계산에 개념을 적용하는 방법에 대한 초대로 끝납니다.
알겠습니다 안녕하세요 여러분 uh 양자 계산에 오신 것을 환영합니다 uh 이 비디오에서는 google Collaboratory를 사용하여 uh qis 키트 프로그램을 실행하는 방법보여 드리겠습니다. 이제 qy 촌극은 uh 여러분 모두 익숙하실 것입니다 uh 프로그램 작성을 위한 ibm 플랫폼 uh ibm의 양자 컴퓨터에서 실행될 수 있는 컴퓨팅 분기 프로그램 또는 qis 키트와 함께 제공되는 소프트웨어 시뮬레이터를 사용하여 ibm 양자 컴퓨터에서 실제로 실행하기 전에 시스템을 모델링할 수 있습니다. 그래서 제가 이 목적으로 사용하려는 것은 colab 또는 Collaboratory라고 알려진 플랫폼입니다.
그리고 그냥 콜라보라고 하면 google collab이라말됩니다. 맞죠. 여긴 실험실입니다. 어, 그렇군요. 협업과 연구실에 관해서는 두 단어를 연결한 것이므로 거기에 가면 이미 가지고 있는 노트북을 사용할지 아니면 예제 노트북을 열 수 있는지 묻는 메시지가 표시됩니다. 기본적으로 Python 프로그램인 잘 사용하는 방법을 보여주는 예제 노트북이 많이 있으며 Google 드라이브에서 파일에 액세스 하거나 github 저장소를 가져올 수 있고 자신의 파일을 업로드할 수도 있습니다. 내가 여기서 할 것은 새 노트북이라고 말할 것입니다. 이제 완전히 새로 시작하고 싶기 때문입니다.
우리가 하고 싶은 것은 gyskit 프로그램을 실행싶기 때문에 약간의 인터넷 검색 후qisc 프로그램을 공동으로 실행하기 위한 것입니다. 당신이 찾은 건 그거예요 google collab에서 이 명령을 실행해야 하는데 이런 내가 방금 뭘 한 거지 난 그렇게 하고 싶지 않았어 알았어 [음악] 여기가 google collab 창이야 어 노트북에 이름을 붙이고 qi 스케이트 튜토리얼을 호출하자 1부 그리고 날짜를 1월 22일 2 0에서 2로 입력하겠습니다. 자, 이제 이것은 기본적으로 어 그것은 주피터 노트북으로 알려진 것의 버전이고 [음악] 제가 계획하고 있는 또 다른 비디오에서는 인터넷에 연결되어 있지 않거나 로컬에서 프로그래밍하는 것을 선호경우를 대비해 로컬 컴퓨터에서 qr 프로그래밍 qisc실행방법보여 드리겠습니다.
그래서 우리는 이 명령을 올바르게 실행하고 싶기 때문에 어 빨리 어 이 다양한 어 표현무엇을 의미하는지 말해 보겠습니다. Google 공동 작업이나 다른 프로그램은 온라인에서 실행되든 오프라인에서 실행되든 쉘이라는 것에서 실행됩니다. 껍질은 이렇게 생겼다 기본적으로 명령줄 터미널 이므로 이것이 모든 운영 체제가 시작되는 방식입니다. 터미널 형식으로 시작합니다. 따라서 Google에서 워크시트가 실제로 실행되는 곳입니다. 물론 터미널은 Google 서버에서 호스팅되므로 이러한 터미널은 모두 Linux 기반 이므로 예를 들어 특정 폴더의 파일을 보려면 사용할 수 있는 Linux 명령이 있습니다.
작업 디렉터리를 보려면 ls라고 말하고 cwd라고 말하고 싶으면 pwd합니다. cw 시작해주세요. 명령 이런, 어 그럼 CD 도트 도트, CD라고 말할 수 있어요. 맞아요 이것들은 모두 기본적인 쉼표입니다. Windows 셸에서 사용되는 것과 비슷해요 어 알겠습니다. 그런데 지금은 제가 실행 중일 때요. 이 노트북으로 작업 중인데 셸에서 명령을 실행하고 싶어요 어떻게 해야 하나요 느낌표로 시작하므로 지금 쾅 ls라고 말하면 이것을 실행하려면 Shift Enter를 누르세요. 우선 조금 느려지거든요. 그것 Google 서버로 이동해야 하고 쉘과 연결해야 하며 쉘은 알겠습니다.
나열할 항목이 있다고 말해야 하며 샘플 데이터라고 표시되어 있으므로 이것이 폴더에 있는 유일한 것입니다. 예를 들어 pwd라고 말하면 내 로컬 디렉토리의 이름을 알려줄 수 있습니다. 슬래시 내용과 같은 것뿐입니다. 물론 가끔 그런 명령과 함께 사용할 수 있는 다른 옵션도 있습니다. 예를 들어 ls라고 하면 대시 알을 사용하면 나에게 희망을 줄 것입니다. 몇 가지 더 자세한 정보를 제공합니다. 모든 파일이 나열됩니다그리고 어 그래서 이 옵션 alex는 모든 파일을 나열하고 여기에 config라는 이 있다는 것알 수 있습니다. 제가 그 작업을 하는 동안 그냥 보여드리는 것이 좋을 것 같습니다.
이 구성 파일에 무엇이 있는지 그래서 이를 수행하는 방법은 more라고 알려진 쉘 명령을 사용하는 것입니다. 더 많은 일은 기본적으로 도움이 되고 구성은 a가 아닌 디렉토리이므로 더 이상 할 수 없으므로 먼저 CD 구성으로 이동하겠습니다. CD는 디렉토리 변경을 의미합니다. 알겠습니다. 제가 할게요. 물론이죠. 원할 때마다 Shift Enter를 눌러야 합니다. 알겠습니다. 어떤 이유에서든 어 액세스할 수 없는 것 같습니다. 죄송 합니다. 잊어버렸는데 여기서 명령 앞에 느낌표를 붙이는 것을 잊어버렸다는 알 수 있을 입니다. 하지만 여전히 작동하는 것 같아요 Google 연구소는 쉘 명령 과 코드의 차이를 알 만큼 똑똑합니다.
어쨌든 구성 디렉토리에 이 모든 다양한 정보가 포함되어 있다는 것을 알 수 있습니다. 로그 디렉토리에 어쨌든 실행 디렉터리에 정보가 있는 위치를 볼 수 있으므로 uh qisc를 실행하고 싶으므로 이 목적을 위해 실행 중인 환경의 uh 에 qisc를 설치해야 합니다. uh 그것은 Google 서버 에서 실행되는 가상 머신이라고 합니다. qysk는 우리가 사용하고 싶은 Python 모듈이기 때문에 어 그래서 우리는 Python 패키지 관리자라는 것을 사용하고 싶고 pip 또는 pip라는 명령을 사용하여 호출되므로 원하는 경우 pip install을 입력합니다. 무언가를 설치하려면 패키지 이름해야 .
따라서 두 개의 패키지를 설치하려고 합니다. 이는 qis 키트와 ipi 위젯입니다. 위젯은 ipython 위젯을 의미하며 이는 어쨌든 필요한 몇 가지 유용도구이므로 확인할 수 있습니다. 쉘이 작동 중입니다. ipy 위젯이 이미 여기에 설치되어 있고 UI 키트를 다운로드하고 있으며 수십 가지 요구 사항이 있으므로 qris가 의존하는 다른 패키지를 모두 설치해야 하며 꽤 빠른 것 같아요. 알겠습니다. 어 Qi 스케이트 등이 성공적으로 설치되었다고 표시됩니다. 알겠습니다. 이제 게임을 시작하겠습니다. 한 가지 주목할 점은 마우스를 이 선 위로 이동하면 이 영역 이 셀이라고 불린다는 것입니다.
단일 셀이고 이 버튼은 셀 실행 버튼입니다. 더하기 코드를 말할 수 있는 옵션이 있으므로 이렇게 하면 코드 셀이 추가되고 Google에서는 추가할 바로가기 키 Ctrl m b도 유용하게 표시하는 것을 볼 수 있습니다. 코드 셀 이고 이것은 이제 텍스트 셀입니다. 텍스트 셀에 대한 바로가기는 아닌 것 같지만 뭔가 시도해 보겠습니다. 또 다른 점은 이 노트북에서 작업할 때 명령 모드와 편집 모드가 있다는 것입니다. 예를 들어 명령 모드는 무엇입니까? 이 셀을 클릭하면 깜박이는 커서가 보이기 시작할 수 있습니다. 이것이 제 명령 모드입니다. 죄송합니다. 편집 모드입니다여기서는 제 라인을 바로 쓸 수 있습니다.
예를 들어 제가 실행하고 싶다면 어, 제가 원한다면 어 QIS 키트부터 시작해 보세요. 제가 뭘 하려는지 아시겠죠? 내가 열어 놓은 다른 노트북의 일부 코드를 복사하려면 여기에 게시할 테니 각 줄이 어떤 역할을 하는지 알려 드리겠습니다. 죄송합니다. 잘못된 노트북입니다. 각각의 내용을 알려 드리겠습니다. 이 줄 중 하나는 1초 만에 수행되지만 지금은 편집 모드에 있으므로 셀에 코드를 추가했습니다. 어떻게 실행해야 할까요? Ctrl Enter 또는 Shift Enter 두 가지 모두 제대로 작동하므로 이것이 수행하는 작업은 무엇입니까? 첫 번째 줄이므로 은 모두 Python입니다.
이제 경로에 코딩을 하고 있으니 첫 번째 줄은 물론 numpy라는 패키지를 가져오는 작업을 하고 싶지 않았는데 정확하게 말하는 것이 매우 중요합니다. 어 위험을 무릅쓰고 숫자 감옥으로 보내면 numpy가 아니고 이고 numpy를 np로 가져오기 때문에 그렇게 하는 이유는 지금 점 기호로 numpy를 입력대신 num pi 에서 무언가를 얻고 싶을 때마다입니다. np 점 기호라고 말하면 분명히 이상한 자동 완성 기능이 작동하는 것을 볼 수 있습니다. 따라서 np 점과 같은 것을 입력하면 가능한 모든 기능과 속성, 개체 및 클래스의 전체 목록이 표시됩니다.
numpy 내에 있으므로 나는 s를 원합니다. 오른쪽 사인이라고 말하고 numpy 도트 파이의 사인이 무엇인지 말해 보겠습니다. 물론 그것은 0이어야 합니다. 어 그것은 나에게 0에 매우 가까운 숫자를 제공합니다. 여기 두 번째 줄은 from qris kit import star이므로 qi 스케이트의 모든 코드를 모두 가져오며 이 가져오기 방법이 첫 번째 줄과 다르다는 것을 알려줍니다. 첫 번째 줄에서 import numpy as np라고 하면 저는 모듈을 가져온 다음 모듈 내의 코드를 사용하고 싶을 때마다 np 도트 기호 등을 말해야 하지만 qiskit import star에서 글을 쓸 때 qiskit에 내가 사용하는 코드있으면 그게 무슨 일을 합니까? 내가 사용하고 싶어 UIS 키트 도트를 작성할 필요는 없습니다.
예를 들어 코드 이름을 사용하면 됩니다. 들어 우리는 양자 회로라는 것을 사용할 이므로 Google 자동 완성이 이를 표시하는지 확인하고 팝업이 표시되는지 확인할 수 있습니다. 양자 회로와 레지스터 이것은 두 개의 어 함수 이고 여기서 세 번째 명령을 사용했습니다. 이것은 다른 종류의 명령입니다. 앞에는 퍼센트 기호가 퍼센트로 표시되고 인라인으로 퍼센트 matplotlib가 표시되므로 matplotlib는 매우 정확한 Python 의 핵심 구성 요소 중 하나인 라이브러리를 플로팅하고 퍼센트라고 하면 먼저 이것은 정확히 Python이 아닙니다. 음, Python 코드라고 부르는 것이 무엇인지 아시나요? Person을 작성할 때 노트북 내부의 내부자에서만 이 작업을 수행할 수 있습니다 .
그것은 a라고 불린다 어 뭐불리는지 그것은 마법 명령이라고 불린다 은 마법 명령이라고 불린다. 그래서 matlab에 퍼센트를 인라인으로 쓰면 이것이 말하는 것은 우리가 회로 플롯 등과 같은 수치를 생성할 것이라는 이고 그것이 표시될 것이라는 이다. 즉, uh 노트북 내에서 별도의 창에서가 아니라 나중에 정확히 무엇을 의미하는지 확인할 수 있을 것입니다. 알았어 알았어 그럼 우리를 살펴보자 uh 양자 계산의 첫 번째 단계를 수행해봐 알았어 이런 약간의 일이 있었던 것 같아 여기서 멈춰서 새로 고쳐야 할 수도 있습니다. 이제 우리가 하고 싶은 것은 바로 뛰어들어 보겠습니다.
즉, 양자 회로를 올바르게 만들어 보자는 것입니다. 어떻게 하면 이를 잘 수행할 수 있는지 살펴보겠습니다. 우리가 할 일은 무엇입니까? 여기서 해야 gh z 상태 라고 알려진 것을 생성하는 회로를 만드는 입니다. 하지만 그 전에는 더 간단한 작업을 수행할 것입니다. 즉 큐비트가 하나만 있는 회로를 만들 것이므로 뭔가부터 시작하겠습니다. 이 양자 회로 n1과 같이 이 명령이 우리에게 알려주는 것은 왼쪽은 우리가 초기화하는 변수의 이름 이고 이 변수는 회로의 세부 사항을 저장할 것이고 오른쪽은 우리가 이것을 호출하는 것입니다. ob는 클래스 양자 회로이므로 우리가 언제 는 일반 괄호 위에 중괄호를 사용하여 이 함수작성하고 하나는 인수라고 말합니다.
그래서 이것이 하는 일은 단일 큐비트가 있는 단일 게이트가 있는 회로인 객체를 생성하고 다음 을 반환한다는 것입니다. 지금 이 노트북 인터페이스에 있을 때 변수 이름을 입력하면 일반적으로 어떤 일이 발생합니다. 이 경우에는 일반적으로 이것이 스타 클래스인 양자 소켓 의 요소인 개체라는 것을 알려줍니다. 회로하위 와 다른 의 scale의 하위 클래스인 와 이 숫자는 Python에서 우리의 목적과 관련이 없는 해당 객체의 메모리 주소를 다시 알려줍니다. 우리는 또 다른 도구를 가지고 있는데, 이는 여러분이 아마도 매우 자주 사용할 유용한 언어입니다. 다음은 다음과 같습니다.
객체가 무엇인지 알고 싶다면 기능은 무엇이며 속성입니까? 객체 이름을 입력 하고 물음표를 넣은 다음 Enter 키를 누르면 이제 오른쪽에 표시됩니다. 여기쪽에 도움말 페이지가 표시되어 있는데 어 그렇군요 이것은 이 양자 회로 유형의 객체임을 알려줍니다. 문자열 형식을 가지고 있습니다. q 길이는 0입니다. 왜냐하면 우리는 아무것도 추가하지 않았기 때문. 우리는 어떤 게이트도 아닙니다. 이것은 이 회로의 코드를 알려주는 파일입니다. 이 특정 파일 [Music]에 있고 docstring에서 이것은 객체에 대한 정보가 있는 곳입니다. 그래서 이것이 우리에게 새로운 회로를 생성한다는 것을 알려줍니다.
회로는 명령 목록입니다. 일부 레지스터 는 우리에게 알려줍니다. arcs r은 인수 right를 나타냅니다. 그럼 당신이 줄 수 있는 가능한 주장은 무엇인가요? 어 이것은 생성자로 알려진 이 명령 양자 회로입니다. 생성자에 전달할 수 있는 인수는 무엇입니까? 예를 들어 우리는 방금 1인 단일 숫자를 전달했지만 다음과 같은 인수로 무언가를 일시 중지할 수도 있습니다. 이것은 양자 레지스터 4입니다. 이것이 무엇을 하는지 상상할 수 있듯이 4개의 큐비트를 보유할 수 있는 양자 레지스터생성하고 이를 반환한 다음 해당 개체가 볼륨 회로에 인수로 전송되므로 예를 들어 볼 수 있습니다.
만약 잉크 목록이 uh 큐비트 및/또는 클래식 비트이므로 양자 회로는 양자 비트와 c 비트에 대한 클래식 비트로 구성될 수 있다는 점을 기억하세요. 따라서 양자 회로 4와 같은 말을 하면 큐 비트가 4개 있는 양자 회로 이고 그렇게 분리된 두 번째 인수를 지정하면 처음부터 쉼표로 표시된 것은 4개의 양자 비트와 3클래식 비트로 회로를 만드는 것입니다. 그런 다음 문제를 해결 해야 할 경우 항상 참조수 있는 다른 옵션이 더 있습니다. 이제 이건 uh help uh 메뉴도 예제를 제공합니다. 그 전에 제가 언급해야 할 것은 어 그래서 이것이 인수이고 다음은 또 다른 섹션입니다.
이제 제기하는 것은 무엇을 의미합니까? 프로그래밍에서 잘 발생한다는 것은 어, 예외 처리 라고 알려진 기능이 있습니다. 모든 프로그램은 오류를 범하기 마련 이므로 프로그램에 오류가 있을 때마다 어 예외로 알려져 있으므로 예외 처리를 구현하면 좋은 코딩 관행을 따르는 것이므로 이 어 하위 양자 회로 클래스가 발생합니다. 다음 예외는 다음과 같습니다. 회로 이름 오류 그리고 이것은 또 다른 유형의 클래스입니다 다른 유형의 객체입니다. 음 이것은 큰 프로그램을 작성할 때 명심해야 중요한 사항이므로 이제 어 해보자 어 이 명령을 따르자 그리고 그들무엇을 하고 있는지 봅시다.
양자 회로 uh two i 또는 2 2라고 합시다. 그러면 이것이 하는 일은 두 개의 클래식 비트와 두 개의 양자 비트로 구성된 회로를 생성한다는 것입니다. 이제 이 파일의 시작 부분에 있는 것을 기억하세요 우리는 가지고 있었다 여기에 이 명령을 삽입했습니다. matplotlib 이 마법의 쉘 명령은 matplotlib 인라인 비율입니다. 이제 이것이 어떻게 작동하는지 살펴보겠습니다. 어떤 게이트나 다른 것을 추가하기 전에 그것이 우리에게 무엇을 제공하는지 살펴보겠습니다. 그래서 회로 점이 잘 그려집니다. 지금 우리 회로는 비어 있고 아무 것도 없습니다. 그래서 우리가 보여주는 것은 2개의 3의 빈 슬롯입니다.
2개는 큐비트용이고 음 이것은 클래식 매트릭스용 이므로 이제 게이트를 추가해 보겠습니다. 이것이 게이트입니다. 이 첫 번째 큐비트에 작용하므로 이제 볼 수 있듯이 큐비트는 0부터 시작하여 번호가 매겨지고 두 개의 양자 비트가 있으므로 첫 번째 큐비 트는 0이고 두 번째 큐비트는 1 이고 클래식 비트에 대해서도 마찬가지입니다. 다음을 수행해 보겠습니다. 이 명령을 입력해 보겠습니다. 그러면 어떻게 되는지 살펴보겠습니다. 실제로 이 위로 마우스를 가져가면 뭔가 좋은 일이 발생합니다. 바로 그게 무엇입니까? 그래, 자그럼 이 팝업에 표시되는 내용은 무엇입니까? 그것은 당신에게 주는 것입니다 uh 당신에게 도움을 주는 것입니다 이 h 객체에 대한 텍스트 맞습니다.
그래서 가장자리는 무엇입니까? 하드 양 게이트라는 것을 적용합니다. h는 하드 모드 k의 약식 이고 우리가 0이라고 말하면 이것을 바로 이 세트의 첫 번째 큐비트 좋아요 이제 다시 그려서 변경된 것이 있는지 살펴보겠습니다. 이제 회로가 어떤 형태를 취하고 있는 것을 볼 수 있습니다. 첫 번째 큐비트는 하드 게이트에 삽입한 와이어입니다. 두 번째 큐비트는 그대로 유지되었으며 두 가지 클래식 비트는 다음과 같습니다. 또한 첨부되었으므로 지금 당장 하드 게이트가 하는 일이 정확히 무엇인지 음, 이 목성 세포의 속성에 대한 또 다른 특징을 보여 드리겠습니다. 즉, 코드를 작성하는 대신 삽입 텍스트를 삽입할 수도 있으므로 살펴보겠습니다.
닫겠습니다. 이 도움말 메뉴는 아주 빠르게 그리고 알겠습니다 아니요 그건 제가 하고 싶은 것이 아닙니다 알겠습니다 아니요 댓글을 추가하고 싶지 않습니다 [음악] 알겠습니다 이 버튼 p를 눌러 문자 메시지보내도록 하겠습니다. 그러면 이것이 열립니다. 지금 바로 텍스트 셀을 코딩하여 입력할 수 있습니다. 텍스트로 보면 이것이 전부입니다. Jupiter Notebook의 가장 큰 장점 중 하나. uh Google Collab도 기반으로 하고 있습니다. 단, 중요한 점은 이것이 jupyter에서 찾을 수 있는 것보다 좀 더 멋진 텍스트 편집기라는 입니다.
노트북 과 이 셀 의 한 가지 좋은 점은 이 형식의 수학적 표현식을 입력할 수 있다는 것입니다. 음, 두 가지 좋은 점은 첫 번째는 표현식을 입력할 수 있다는 것입니다. 두 번째로 좋은 점은 셀의 오른쪽에 있다는 것입니다. 에 실시간 미리보기라는 것이 있습니다. 그래서 제가 표현식을 입력할 때 노트북은 실제로 화면에 표시될 수학 기호로 렌더링 하고 출력을 올바르게 보여주므로 실수하지 않을 테니 바라건대 알겠습니다. 이제 제가 원하는 것은 무엇입니까? 예를 들어 하드 마크 게이트가 무엇인지 보여주고 싶습니다. 그렇죠. 하드 모드 게이트는 행렬입니다. 그럼 입력해 보겠습니다.
어 그리고 다시 한 번 말씀드리지만, Google Collab이 우리가 여기에 있을 때 보여주고 있는 정말 멋진 정보입니다. 라텍스 모드가 우리에게 보여주고 있는 것은 가능한 모든 논리 명령 목록이 포함된 팝업 이것은 실제로 매우 훌륭하므로 b 행렬을 보고 Enter라고 말합니다. 잠시만요. 실수를 한 것 같습니다. 슬래시 시작을 바로잡겠습니다. 이것이 슬래시 시작 및 시작 명령입니다. Google에서 나한테 뭔가를 줘 어 시작 b 행렬 그리고 이건 아무것도 하지 않아 알았어 이건 아무 것도 하지 않는 것 같아 어 난 내가 무엇을 입력할지 알아 배열 시작 배열을 시작한 다음 배열 종료 그런 다음 어떻게 되는지 보자 뭐든지 그냥 주자 이제 이 배열의 요소를 입력하겠습니다.
그러면 이것은 행렬입니다. 어 알겠습니다. 정보를 입력하기 시작하면 렌더링이 작동하는 것을 볼 수 있습니다. 알겠습니다. 기다리겠습니다. Shift를 누르겠습니다. 입력하고 확인하면 괜찮습니다. 그렇지 않은 경우에는 다른 것을 시도해 보겠습니다. 방정식 과 방정식을 굽고 무슨 일이 일어나고 있는지 인식합니까? 어떤 이유에서든 어 이제 코드가 작동하는 것 같습니다. 보시다시피 어 다음과 같은 내용이 있어요 이것은 매우 간단한 논리식의 형태입니다. 어 격자 명령은 모두 백슬래시로 시작 하고 백슬래시를 상기시키기 위한 것 입니다. 어는 다음과 같습니다. 이런 일이 일어났습니다. 백슬래시와 슬래시 사이에 차이가 있습니다.
백슬래시를 입력하고 싶다면 이것이다. 슬래시를 입력하려면 이것이다. 어 하나가 뒤로 기울어진 것을 볼 수 있도록 하기 위한 이다. 그것은 반대 방향의 역방향 수단과 같다. 우리는 올바르게 작성하고 있으므로 모든 라떼 명령은 백슬래시로 시작하므로 여기에는 슬래시 시작이라는 명령이 있고 그 다음에는 kali uh 중괄호가 있으므로 중괄호 안에는 align이 있으므로 이것이 호출을 시작하는 방법입니다. 격자와 환경에서 저는 정렬을 사용하고 있습니다. 그래서 선은 제가 수학적 방정식을 작성할 수 있는 일종의 환경이고 이름에서 알 수 있듯이 그것들을 정렬할 있습니다. 그런 다음 줄에서 h가 같다고 말하고 제가 원합니다 이제 행렬을 삽입하려면 환경을 사용하여 행렬도 삽입됩니다.
이 경우 환경은 b 행렬 이라고 합니다. 따라서 다시 한 번 슬래시 시작 b 행렬을 사용 하고 모든 환경은 슬래시 end 명령 백슬래시 right 와 끝으로 끝나야 합니다. 시작 부분은 적절하게 중첩되어야 하므로 예를 들어 nb 행렬 명령은 밑줄 명령 뒤에 올 수 없습니다. 하나의 환경은 다른 환경 내에 중첩되어야 하므로 이것이 시작 b 행렬이고 그런 다음 요소를 입력하므로 표시되지 않습니다. 행 수를 지정하려면 그리고 열은 내가 삽입하고 싶은 요소 수에 따라 전적으로 나에게 달려 있습니다. 예를 들어 여기에 다른 요소를 넣었 더니 바로 세 번째 열이 삽입되었고 아무 말도 할 필요가 없었습니다.
어 이해하기 시작했습니다. 좋습니다. 이것은 3개의 열이고 이는 최대 열 수이기 때문에 모든 것이 이제 3x2 행렬이어야 함을 의미 하고 앰퍼샌드는 구분 기호이므로 서로 다른 셀 내용을 구분하고 여기에 다음 이 있습니다. 이중 백슬래시 이므로 논리 이중 백슬래시는 줄의 끝을 의미하므로 요소의 첫 번째 행 입력을 완료했고 두 번째 행 입력을 시작한다는 사실의미하므로 이중 검정색 슬래시 와 앰퍼샌드 빼기 하나를 입력하려고 합니다. 는 이것을 얻습니다. 은 하드 모드 매트릭스라고 합니다. 살펴보겠습니다. 그리고 자동 모드입니다. 여기에서는 공동 작업으로 글쓰기의 또 다른 측면을 사용하고 있습니다.
이것은 요즘 jupiter 및 대부분의 다른 종류노트북에서 많은 도구와 공유됩니다. 등등 등등 즉, 저는 markdown m-a-r-k라는 이름의 형식 지정 명령 세트를 사용하고 있으므로 여러분을 위해 적어 두겠습니다. markdown에는 github 과 같은 다양한 버전 의 markdown이 있습니다. 음, 다른 것도 너무 많고 두 개는 너무 많습니다. 따라서 이 표현식에 여기나열하려면 uh 별표 2개를 uh 개로 입력하고 별표 2개로 끝나는 경우 해당 안의 텍스트를 굵은 형식으로 변환 하고 한 세트만 입력하면 별표를 표시하면 텍스트가 어 이탤릭체 형식으로 변환됩니다. 그렇군요.
이것은 어려운 시장이고 이제 우리가 원하는 것은 주어진 상태에서 hardamart 게이트의 동작이 무엇인지 묻는 것입니다. 그러면 어떻게 해야 합니까? 이제 우리는 어 하드 금액 게이트에 대한 표현식을 입력했습니다. 그것이 양자 상태에서 어떻게 작동하는지 봅시다. 그 전에 어 일반적인 양자 상태에 대한 수학적 표현이 다음과 같이 보이는지 적어 보겠습니다. 그리고 수학을 입력하려면 어 우리는 할 수 있습니다 둘 중 하나를 사용 시작 어 및 정렬 환경에서 달러 기호도 사용할 수 있으므로 단일 달러 기호 사이에 인라인 수학으로 알려진 표현식을 넣으면 표시 경로로 알려진 이중 달러 크기를 사용하면 무엇을 볼 수 있는지 알 있습니다.
차이점은 몇 가지 예를 보는 것입니다. 따라서 일반적인 양자 상태는 어떻게 생겼으며 우리는 terak ket adjoint get 표기법을 사용할 것입니다. 따라서 라텍스로 ket을 작성하려면 어떻게 해야 할까요? 제가 뭔말할 것이라고 생각입니다. 이렇게 하면 좋겠어 세로 막대 와 x 그리고 오른쪽 꺾쇠 괄호를 사용했는데 별로 예쁘지 않은 것 같군요. 행운을 빌어서 뭔가 시도해 보겠습니다어 세로 막대 대신에 명령 어 격자 명령은 수직에 대한 단어 슬래시 단어 이고 x는 우리의 인수이고 닫는 괄호에 대해서는 각도를 사용하겠습니다. 이제 오른쪽에 있는 두 표현식을 비교할 수 있습니다.
하나는 확실히 아래쪽에 있는 것이 더 예쁘네요. 더 까다롭지만 이제 문제가 있습니다 당신은 적고 싶을 때마다 입력하고 싶지 않습니다. 알았어 당신은 슬래시 단어 인수 등을 입력하고 싶지 않습니다. 등등 각도를 슬래시하고 그건 그렇고 이것은 또한 adjoint all one을 입력하는 방법입니다. 해야 할 일은 l 각도 이고 괜찮습니다. 멋진 추가 조인트 가져오기 표현식을 얻을 수 있으므로 물론 항상 이 작업을 수행하고 싶지는 않으므로 라텍스의 아주 좋은 속성이 있습니다. 정의할 수 . 사용자 정의 명령 명령 기본적으로 함수나 서브루틴으로 생각할 수 있습니다. 예를 들어 고양이삽입하는 사용자 정의 명령을 정의할 수 있고 이것이 어떻게 작동하는지 보여 드리겠습니다.
이 슬래시 get x가 마음에 들면 삽입된 것을 볼 수 있습니다. 이제 이 x를 생성했습니다. 이 슬래시가 x를 어디서 얻었습니까? 이것은 표준 격자 분포의 일부가 아니며 Colab과 함께 제공되는 표준 로직의 일부가 아니므 로 특정 명령 세트의 일부입니다. 내가 누군가를 정의했다고 이렇게 할 수 있습니다. 사전 채우기가 전혀 없으므로 이것은 단지 또 다른 텍스트 셀입니다. 어 코드 셀이 아닌 또 다른 코드입니다. 텍스트 셀 이고 여기에는 수학 명령을 잔뜩 넣어서 이러한 정의 각각이 달러 기호 안에 들어가서 보이는 것처럼 보입니다. 보시 다시피 정의를 설명하겠습니다.
이렇게 새 명령을 시작한다고 하면 백슬래시 새 명령이라고 말한 다음 명령 이름을 입력하므로 명령 이름은 괜찮습니다. 명령이 제대로 나올 테니 난 백슬래시를 입력하고 get을 하고 어 이 명령에 전달하려는 인수 수를 입력할 수 있습니다. 예, 내부 곱 과 같이 두 개의 인수를 취하는 표현식을 갖고 싶은 경우가 있습니다. inner p라는 명령 어 그런데 cat 명령은 하나만 취합니다. 여기 다음 중괄호 세트에는 슬래시 작업으로 시작하는 코드가 있고 첫 번째 인수에 대한 자리 표시자에 이 표현식을 넣습니다. 이것은 해시 기호 해시입니다 r 각도를 깎은 다음 이것이 하는 일은 텍스트 텍스트 셀 중 하나에 이것을 넣고 Shift Enter를 누르면 모두 렌더링되는 것을 볼 수 있으며 명령 정의 묶음이므로 제대로 표시할 것이 없으므로 그냥 빈 공간으로 표시되지만 여기 세포에 와서 양자 상태를 적고 싶을 때 해야 할 일은 슬래시를 적고 x얻는 것뿐입니다. 그러면 빠져나올 수 있습니다.
알겠습니다. 내가 원하는 건 슬래시야 psi를 얻으세요. 양자 상태에 대해 psi가 될 것이기 때문입니다. 어 그리고 어 음, 우리는 큐비트로 작업하고 있으므로 양자 상태에는 두 가지 구성 요소가 있고 이 두 구성 요소를 열 벡터 형식으로 작성할 것이므로 이제 멋진 것이 필요합니다. 먼 길을 빠르게 수행하는 명령은 다음과 같습니다. 시작 b 행렬이라고 말한 다음 오른쪽을 입력하면 이것이 긴 길될 것입니다. 어 우리 시스템의 상태를 1초 안에 적겠습니다. 어느 것이 제가 원하는지 예 예 p 행렬 이것은 또한 p여야 합니다. 행렬 p는 괄호를 의미한다고 가정 하고 이것이 나에게 멋진 두 개의 구성 요소 객체를 제공한다는 것을 알 수 있습니다.
하지만 물론 저는 이 작업을 계속해서 수행하고 싶지 않으므로 어떻게 해야 할까요? 사용자 정의 명령을 작성하여 셀로 이동합니다. 내 노트북의 맨 시작 부분에 있고 새 명령이 있습니다. 그러면 사용자 지정 명령을 원합니다. 이 명령을 무엇이라고 불러야 할까요? 열 벡터를 생성하고 싶은데 두 개의 요소가 있을 것이므로 그냥 보겠습니다. 슬래시 q라고 부르세요. 고양이 q는 with를 나타냅니다. qubit 좋습니다. 두 개의 인수를 사용하고 여기에 p 행렬 오른쪽으로 시작하는 코드가 있고 첫 번째 요소 앰퍼샌드 두 번째 요소 oops 첫 번째 요소 새 줄 두 번째 요소가 끝나고 p 행렬이 끝나며 코드를 닫고 다음과 같이 입력합니다.
달러 기호를 오른쪽으로 누르고 Shift Enter누르면 이 모든 것처리되어 메모리에 저장됩니다. 이제 제대로 작동하는지 확인하고 싶습니다. 슬래시 psi 프라임이 슬래시 qk와 같다고 가정해 보겠습니다. 이제 제가 해야 할 일은 모두 끝났습니다. ~이다 인수를 알파 베타로 넣자 어디 보자 그래 그래서 내가 어 약간 흥을 돋구고 있었어 어 두 개의 인수를 취하는 매크로호출하기 위해 작성하는 올바른 방법 내가 하고 있던 일은 내가 일반적인 프로그래밍 언어를 작성하고 있었어 스타일 중괄호 다음 인수 목록이지만 젖산은 재미있기 때문에 인수를 중괄호로 묶인 표현식의 시퀀스로 취하므로 q get 중괄호 슬래시 알파 중괄호 슬래시 베타를 작성해야 합니다. 이제 내 표현식이 아주 멋지게 렌더링되는 것을 볼 수 있습니다.
내가 하드 금액 게이트를 사용하여 양자 상태에 대해 조치를 취할 때 무슨 일이 일어나는지 확인하기 위해 알겠습니다. 그래서 내가 하고 싶은 일은 h라고 쓰고 내 상태는 psi를 얻습니다. 이것은 음과 같습니다. psi 열 벡터에 어 이 행렬을 곱할 수 있습니다. 대답은 실제로 적어두기가 매우 쉽습니다. 즉, 조금 더 주의해서 설명하겠습니다. 그리고 한 가지 더 중요것은 하드에 대한 정의에서 1의 분수 x 2제곱근을 잊어버렸다는 것입니다. 게이트를 표시해 일단 그걸 갖고 나면 1부터 by root 2는 내 모든 표현식에서 너무 자주 발생합니다. 해당 명령에 대해 매크로를 넣은 다음 root 2를 입력하는 것이 무엇인지 알겠지만 2의 제곱근을 쓰는 것보다 더 효율적인지는 잘 모르겠지만 그냥 사용하겠습니다.
당분간 [음악] 그래서 우리는 2 q k를 쓰고 여기서 인수는 어떻게 될까요? 알파가 됩니다. [음악] 더하기 베타 쉼표 이런 공통 기호는 다시 중괄호 슬래시 알파 빼기 슬래시 베타 끝 방정식 그리고 여기까지입니다. 그게 우리 방정식이 맞는 것 같군요. 만약 이 두 가지 구성 요소인 알파 베타를 갖는 양자 상태 와 더 단단한 마크 행렬을 곱하면 어 음, 이것이 바로 여러분얻는 것입니다. 구성 요소가 알파와 베타의 선형 조합인 또 다른 상태를 얻게 됩니다. 그렇군요, 첫 번째 요소는 알파 더하기 비트가 되고 두 번째 요소는 알파 마이너스 베타가 될 것입니다 좋습니다 좋습니다 어 하지만 지금 은 대부분 우리가 계산을 다루는 임의의 양자 상태를 다루지 않는 경우많습니다.
소위 계산의 케이스 상태라고 합니다. 기초가 너무 계산적이야 기본 이므로 해당 상태가 무엇인지 적어 보겠습니다. 첫 번째 상태는 0이 되고 [음악] 첫 번째 행에 하나만 있는 상태 이고 두 번째 행에 하나가 있는 상태있습니다. 그렇군요, 이것이 단일 큐비트에 대한 두 가지 계산 기반 상태입니다. 이제 우리는 하드웨어 게이트를 사용하여 이러한 상태에 대해 조치취할 때 어떤 일이 일어나는지 보고 싶습니다. 그래서 제가 더 세게 모드 슬래시 0을 말하면 무슨 일이 일어날지 잘 알겠습니다. 나는 다음을 얻을거야 슬래시 루트 2 슬래시 q 고양이 그리고 1 알겠습니다. 하드 금액을 보면 작업이 알파 더하기 베타 마이너스 베타이기 때문에 이것은 말이 됩니다.
이제 0 상태를 보면 베타는 0 알파는 1이므로 다음과 같이 됩니다. 알파 맞습니다. 하지만 이것을 작성하는 좀 더 좋은 방법이 있습니다. 이는 하나의 0 상태 및 /또는 업 상태와 다운 의 합입니다. 이것이 바로 에 의해 작동될 때 0 상태에 일어나는 일입니다. 어려운 마크 게이트를 사용하면 0과 1의 선형 중첩을 얻게 되며 원 상태 또는 다운 상태에서 작동할 때 상상수 있는 것과 유사하게 또 다른 선형 중첩을 얻게 되지만 빼기 기호가 있으므로 이들 사이에 180도의 상대적 위상차가 있습니다. 두 개의 구성 요소가 맞습니다. 이것은 하드 모드 게이트가 양자 상태에 수행하는 작업입니다.
좋습니다. 지금까지 우리가 한 일은 두 개의 양자 큐비트와 클래식 가 있는 회로를 만든 다음 하드 양을 삽입한 것입니다. 첫 번째 큐비트의 게이트 좋아요 그럼 당신이 입력하면 하드 시장의 효과는 어떻게 될까요 어 첫 번째 큐비트의 입력이 0이고 하드 모드 게이트가 0과 1의 조합에서 버려질 것이고 그것이 어떤 것이라면 임의의 상태 알파 베타를 사용하면 이 결과제대로 얻을 수 있으므로 다음 단계는 무엇입니까? 여기서 하려는 작업의 ? 음, 끝내고 싶습니다. 이 도움말 텍스트를 따를 것이므로 정말 빨리 살펴보겠습니다. 코드는 괜찮아요? 이것은 이 도움말 텍스트입니다.
우리가 하나의 하드 도메인 게이트를 넣었다는 것을 보여줍니다. 좋습니다. 이제 이것은 두 번째 명령이 무엇입니까? 두 번째 명령은 circ dot cx ok이고 cxex는 제어가 옳지 않음을 의미합니다. 왜냐하면 그렇지 않기 때문입니다. 연산은 폴리 x 게이트에 의해 제공되므로 c naught 대신 cx일 뿐이고 c y 및 a c z도 가질 수 있기 때문에 c naught를 사용하는 대신 c x가 이 정의에 사용되며 c는 제어는 하나의 큐비트를 제어로 사용하지 않으므로 여기에서 첫 번째 큐비트를 제어 로 만들고 이 도움말 메뉴가 튀어나온 것을 볼 수 있습니다. 이것이 제어 큐비트이고 그런 다음 대상 큐비트가 하나이므로 이것이 회로입니다.
좋아, 이제 회로를 다시 그려서 무엇이 뛰어난지 살펴보자. 그러면 회로가 하는 일이 다음과 같은 것을 볼 수 있다. 첫 번째 큐비트의 하드웨어 게이트와 함께 작동하는 2개가 필요하고 두 큐비트 모두에 아무 작업도 적용하지 않는다. 이것들 큐비트는 괜찮습니다. 이제 우리는 이 모든 것어떻게 수학적으로 괜찮아 보이는지 잘 물어볼 수 있습니다. 따라서 입력 큐비트 모두 가 업 상태 또는 0 상태에 있다고 가정 하고 끝이 무엇인지 물어볼 것입니다. 이 연산의 결과는 좋습니다. 그럼 수학을 좀 해보자 좋습니다. 우선 0 상태에 작용하는 하다마르 게이트의 결과는 무엇입니까? 0 상태에 작용하는 하드 마진 과 첫 번째 큐비트가 이 결과를 줄 것입니다.
알았어 그럼 그건 그냥 하나는 열 벡터이므로 내 첫 번째 큐비트는 다음과 같이 작성할 것입니다. get q1이 q와 같다고 가정합시다. 알겠습니다. 다시 중괄호를 사용하여 알겠습니다. 그런 다음 식을 적어 보겠습니다. 두 번째 큐비트 괜찮아 친구, 그냥 q2를 구하자 그리고 이 쿼드 표현식하는 일은 두 표현식 사이에 약간의 간격을 두는 것입니다. 그래서 저는 여기에 약간의 간격을 두것입니다. 이것이 바로 쿼드 공간 q 키트 이고 음 제 두 번째입니다. 큐비트 기억은 작동 상태에 있으므로 10에 불과합니다. 알겠습니다. 이것들은 내 두 개의 큐비트입니다. 그래서 시스템의 결합 상태는 무엇입니까? 기억해야 하는 시스템의 결합 상태는 다음과 같이 쓸 수 있습니다.
텐서 곱은 텐서 곱이 o 곱인 기호입니다. 왜냐하면 이것은 o로 둘러싸인 시간 기호이기 때문입니다. 알겠습니다. 이것은 라텍스에서 q1 텐서 q2를 쓰는 방법 이고 이제 이것은 4행렬입니다. 알겠습니다. 어떻게 해야 할까요? 무엇 이제 잘 할 수 있나요? 4x4 행렬을 적습니다. 좋아요 큰 p 행렬이고 오른쪽에는 4개의 숫자가 있을 것입니다. 이 두 상태의 음의 텐서 곱을 취하면 어떻게 될까요? 실제로는 아주 많습니다. uh with the ket을 사용하면 uh 행렬 표현식 보다 이 고양이 표현식을 사용하는 것더 쉽습니다. 알겠습니다. 그러기 전에 우선 내 표현식이 무엇인지 적어 보겠습니다.
그래서 루트 2를 얻고 0 더하기를 얻습니다. 하나 맞다 그게 내 첫 번째야 상태 o 곱하기 어 슬래시가 0이 됩니다. 이것이 하드웨어 작업이 첫 번째 비트에 적용된 후의 회로 입력 상태입니다. 이 형식으로 보면 실제로 처리하기가 훨씬 더 쉽습니다. 텐서 곱의 분배 속성 텐서 곱의 속성은 다음과 같습니다. 텐서 곱을 취하면 두 개체의 합취하고 해당 합계의 텐서 곱을 다른 두 개체합과 잘 합하면 텐서 곱이 배포됩니다. 그럼 당신이 얻는 것은 a o 곱하기 c a o 곱하기 d b c 는 4 곱하기 d 여야 합니다. 알겠습니다. 텐서 곱은 정말 좋은 분배 속성을 갖고 있고 이 분배 속성 때문에 저는 이 형식의 표현식을 사용할 수 있으므로 복사하여 붙여넣고 이제 정렬 환경을 사용하여 방정식을 꽤 괜찮아 보이게 만드는 방법보여 드리겠습니다.
먼저 표현식을 적어두고 무슨 일이 일어나고 있는지 말씀드리겠습니다. 음 알겠습니다. 그러면 제가 상태를 취했다는 것을 알 수 있습니다. q1 텐서 q2 그리고 나는 그것을 0 더하기 1과 0의 텐서 곱으로 작성합니다. 분산 속성으로 인해 이것이 0되는 것을 볼 수 있습니다. 텐서 0은 단지 0 상태 이고 1은 0인 1 경향이 있습니다. 상태 1 0 상태입니다. 이제 우리는 어 행렬이나 열 행렬 측면에서 이것이 어떻게 보이는지 물어볼 수 있습니다. 2큐비트 상태는 4차원이라는 점을 상기시켜 보겠습니다. 기본 벡터는 다음과 같이 두 큐비트 필터 공간의 계산 기반 벡터이며 이제 la 기술에서는 중괄호 이후 텍스트에 중괄호 자체를 삽입하려는 경우 특별한 역할이 있다는 점에 유의할 것입니다.
백슬래시로 이스케이프 처리하면 이것이 4개의 기본 벡터구성 요소이므로 k 0 1 1이 되며 두 큐비트 테이블 공간의 임상태를 다음과 같이 작성할 수 있습니다. 아무것도 정의할 필요가 없었기 때문에 그냥 b 행렬을 사용하겠습니다. 다른 작업을 수행하는 것은 너무 어려울 것 같아서 구성 요소 측면에서 작성할 수 있으며 알파 데이터 쉼표 델타만 사용하겠습니다. 알았으니 이렇습니다. 2큐비트 힐베르트 공간의 벡터에 대한 표현식 알파 베타 감마와 덴탈은 이러한 기본 벡터 알파 0 0 베타 0 1 쉼표 1 0 및 델타 1 1의 구성 요소 벡터계수입니다. 표현식은 슬래시 알파로 쓸 수도 있습니다.
알파 0 제로 및 슬래시 데이터 하나를 보겠습니다. 이 두 표현식은 완전히 동일하므로 이제 이전에 했던 표현식을 볼 수 있습니다. 이 텐서 곱 상태 q1 밀도 q2 는 두 개의 업 상태를 취하고 첫 번째 큐비트를 하드 게이트에 통과시켰을 때 얻은 것입니다. 그렇게 하면 출력은 이 선형 조합 0 0과 1 됩니다. 이제 두 큐비트 에 대한 이 표현식을 보면 상태 이것은 어 알파 와 감마가 루트 2에 의해 1이 되고 베타 와 델타가 0이 되는 것과 일치한다는 을 알 수 있습니다. 그래서 이것은 여러분이 표현식을 취할 수 있다는 것말해줍니다. 나는 또한 그것을 행렬로 쓸 수 있습니다.
외부에 루트 2 r로 1을 넣고 1 0 1 [음악] 0 과 행렬을 넣습니다. 아 그거 흥미롭군요. 심지어 달러 기호도 넣지 않았는데 여전히 나에게 음 로직이 잘 표시되는군요. 그렇군. 내 생각엔 그게 어, 내가 원하는 게 뭔지 알겠지, 가를 해보자, 이 상태는 1001로 쓰여질 수 있어, 대부분 우리는 이것에 대해 명시적인 행렬 표현으로 작업하지 않을 것이다. 그럼 이제 이 두 큐비트 앞에 cnaught 게이트를 놓으면 어떤 일이 일어나는지 보도록 하겠습니다. 지금 cnaught 게이트의 효과는 무엇인지 살펴보겠습니다. 그러면 cnaught 게이트는 첫 번째 큐비트가 제어 가 0이면 다음과 같은 작업을 수행합니다.
두 번째 큐비트는 그대로 유지되고 첫 번째 큐비트가 1이면 두 번째 키보드는 완전히 뒤집혀 있습니다. 어 뭐죠 어 우리는 마크다운에서 이렇게 쓸 수 있습니다. 우리는 입력과 출력을 넣습니다. 마크다운에서 테이블을 만들려면 어떻게 해야 합니까 ? 이 수직 막대를 사용한다고 믿으세요. 그래서 이것이 c naught 게이트가 하는 일입니다. 0 상태를 취하고 0 1 문은 아무 것도 하지 않습니다. 1 0 대 1 1과 0이 필요합니다. 좋습니다. 알았어 이제 우리가 해야 할 일은 C가 이 표현식에 작용할 때 무슨 일일어나는지 알아내세요 좋아요 그럼 그렇게 합시다. 우리 표현식은 무엇 이었나요? 이 표현식이었죠.
그래서 C Naught 게이트가 이 상태에 어떤 역할을 하는지 알 수 있습니다. 상태는 변경되지 않고 10 상태는 11이 됩니다. 어, 아무 것도 가져가지 않고 이 모든 것에 대해 조치를 취하면 무슨 일일어날까요? 여기서 일어나는 모든 일은 두 번째 구성 요소가 1로 바뀌는 것이므로 여기에 괄호를 넣으세요. 우리 상태는 괜찮은데 우리는 무엇을 성취했는가 지금까지 우리는 입력을 잘 받아들이는 회로를 만들었습니다. 어떤 입력이라도 넣을 수 있지만 두 개의 업 상태를 보내면 의미합니다. 어 여기서는 둘 다 0 이고 첫 번째 상태에 하드 양을 적용합니다. 그런 다음 c를 첫 번째 상태에 적용하지 않으면 벨 상태 또는 얽힌 상태로 알려진 것을 제공하므로 이를 세타 0 0으로 쓸 수 있습니다.
왜냐하면 이것이 의미에서 사용되는 표기법이기 때문입니다. 각자 알았어 오늘은 여기서 그만할게 그리고 이것이 여러분에게 la tech와 python의 google collab을 시작하는 계기가 되기를 바랍니다. 다 다루는 것이 정말 재미있기 때문입니다. 다음 영상에서 뵙겠습니다. 댓글을 남기고 좋아요 버튼을 누르는 것잊지 마세요. 그리고 구독 좋아요 해피코딩
Here’s a summary of the content:
-
Introduction to Qiskit and Colab
- The video provides an overview of using Google Colab with Qiskit, IBM's platform for quantum programming.
- Qiskit allows for simulation or execution on IBM's quantum computers.
-
Setup of Google Colab Notebooks
- Users can create or load Jupyter-style notebooks in Colab for Python programming.
- Demonstrates how to set up a new notebook, access example files, and link to GitHub repositories or Google Drive.
-
Google Colab Shell Basics
- Introduces shell commands in Colab, such as
ls
,pwd
, andcd
, and explains how to use them. - Explains the use of exclamation marks (
!
) for running shell commands in Colab.
- Introduces shell commands in Colab, such as
-
Installing Qiskit and Dependencies
- Demonstrates installing Qiskit and
ipywidgets
usingpip
in Colab. - Highlights the importance of ensuring all dependencies are installed for successful execution.
- Demonstrates installing Qiskit and
-
Python Code Basics in Colab
- Explains creating and running Python code cells in Colab.
- Discusses importing libraries (e.g.,
numpy
and Qiskit) and setting up coding shortcuts, such as abbreviatingnumpy
asnp
.
-
Building Quantum Circuits
- Introduces quantum circuit creation with Qiskit, using the
QuantumCircuit
class. - Discusses initializing qubits, adding gates, and visualizing circuits using
circuit.draw()
.
- Introduces quantum circuit creation with Qiskit, using the
-
Matrix Operations and Math in Qiskit
- Explains the Hadamard gate and its effects on qubits.
- Uses matrix operations to represent quantum states and transformations, including tensor products.
-
LaTeX Integration in Colab
- Demonstrates using LaTeX for formatting equations and defining custom commands for quantum states.
- Highlights inline (
$
) and display ($$
) math options for writing equations.
-
Two-Qubit States and Gates
- Explores two-qubit systems and their computational basis states.
- Demonstrates applying gates like the Hadamard and CNOT, explaining their effects mathematically and visually.
-
Final Notes
- Encourages exploring Qiskit’s documentation and experimenting with quantum circuits.
- Ends with an invitation to apply concepts to more complex quantum computations.
all right hello everybody welcome to uh quantum computation uh in this video i am going to show you how to use google collaboratory uh to run uh qis kit programs now qy skit as uh you all may be familiar with is ibm's platform uh for writing programs quantum compute quarter programs and which can be run on ibm's quantum machines or you can use the software simulator provided with the with qis kit to model uh your system before actually executing it on the ibm quantum computer all right so what i'm going to use for this purpose
is a platform which is known as colab or collaboratory and you just go to say google collab if you just say collab right this is the laboratory uh all right so it's a it's a take on collaboration and laboratory right so it's a concatenation of those two words so when you go there you will get a prompt which will ask you uh if you would like to use some notebooks which you might already have or you can open example notebooks and so that there are a lot of example notebooks which will show you how to use well which are basically just python
programs then you can access files from google drive or you can import a github repository and you can also upload your own file and so what i'm going to do here is going to say new notebook because i just want to start completely fresh now what we want to do is run gyskit programs so in order to run qisc programs collab after a little bit of googling what you find is that one has to execute this command in google collab so oops what did i just do i didn't want to do that okay [Music] okay so this is the google collab window
let's uh call our give our notebook a name qi skate tutorial and let's see part one and put the date which the date is january 22 2 0 to 2. all right now what this is basically uh it's a version of what is known as a jupiter notebook and [Music] in another video that i'm planning i will show you how to um run qr programming qisc uh on your own local computer in case you don't have an internet connection or if you prefer you know to just program locally all right so we want to run this command right so let me just uh quickly
uh tell you what uh these various uh expressions mean okay so a google collab or any other program it it whether it runs online or offline it runs in something called a shell right so a looks like this it's basically a command line terminal right so this is how all operating systems get started they start in the form of a terminal and so this is where google the worksheet is actually running of course the terminal is hosted on google's servers and so these terminals are all linux based and so there are certain linux commands
that you can use for instance if i want to view the files in a particular folder i say ls if i want to view the working directory i say pwd if i want to say cwd well cw please start a command oops uh then i can say cd d
관련자료
-
링크
-
다음
댓글 0개
등록된 댓글이 없습니다.