"1Qubit조"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(서론)
(완료작품의 평가)
 
(같은 사용자의 중간 판 6개는 보이지 않습니다)
155번째 줄: 155번째 줄:
 
===설계사양===
 
===설계사양===
 
====제품의 요구사항====
 
====제품의 요구사항====
내용
+
1. 양자 프로그래밍을 적용한다. (D, 중요도: 대)
====설계 사양====
+
 
내용
+
2. 양자 컴퓨팅의 특징에 대해 설명 한다. (D, 중요도: 중)
 +
 
 +
3. 전문 지식이 없어도 게임을 플레이할 수 있다. (D, 중요도: 중)
 +
 
 +
4. 실제 양자 컴퓨터에서 연산을 한다. (W, 중요도: 소)
 +
 
 +
5. 게임이 재미 있다. (W, 중요도: 소)
  
 
===개념설계안===
 
===개념설계안===
내용
+
[[파일:QuantumOmok.png]]
  
 
===이론적 계산 및 시뮬레이션===
 
===이론적 계산 및 시뮬레이션===
내용
+
흑과 백은 양자 레지스터에서 각각 |0>,|1>으로 표현된다. 양자 돌은 |0>에 Hadamard transformation을 적용해서  상태가 되므로, 흑이거나 백일 확률이 동일하다.
 +
 
 +
◇  게이트들은  transformation으로, 두 돌들이 양자 얽힘(quantum entanglement) 상태로 바꾼다. 이 게이트들을 통해 확실된 돌들의 상태를 불확실하게 바꿀 수 있다.
 +
 
 +
◇ 일부 양자 레지스터 사이에 연결이 없어서  게이트로 직접 연결을 하지 못한다. 그럴 경우 모든 레지스터와 연결이 되어있는 2번 레지스터와 SWAP 게이트로 교환을 한 뒤 연산 후 다시 SWAP을 통해서 원하는 결과를 얻을 수 있었다.
  
 
===상세설계 내용===
 
===상세설계 내용===
내용
+
◇ 게임 논리는 classical 프로그래밍으로 구현한다. (Python + Godot)
 +
 
 +
◇ 측정 전에는 모든 불확실한 돌들과 게이트들이 큐에 저장된다. 측정을 하면 불확실한 돌들의 수만큼 양자 레지스터를 등록하고, 순서에 맞춰서 Hadamard 게이트와  게이트를 양자 회로에 추가한다.
 +
 
 +
◇ 양자 회로는 Qiskit을 통해 정리되고, IBM Q 양자 컴퓨터 클라우드로 보내진다. 이후 연산 결과들이 반환되면, 각 레지스터와 연관된 불확실한 돌들의 상태를 확정시키고, 모든 게이트들을 제거한다.
 +
 
 +
◇ 양자 컴퓨터를 사용해야하는 빈도를 줄임으로서, 전체 플레이 시간 중 대기 시간을 감소 시킬 수 있다.
  
 
==결과 및 평가==
 
==결과 및 평가==
 
===완료 작품의 소개===
 
===완료 작품의 소개===
 
====프로토타입 사진 혹은 작동 장면====
 
====프로토타입 사진 혹은 작동 장면====
내용
+
* 게임 실행 화면
====포스터====
+
[[파일:게임 실행 화면.PNG|게임 실행 화면]]
내용
+
* 양자 계산 결과 대기 중 화면
 +
[[파일:양자연산중.png|양자 계산 결과 대기 중 화면]]
 +
* 게임 결론 화면
 +
[[파일:게임 결론 화면.PNG|게임 결론 화면]]
  
 
===관련사업비 내역서===
 
===관련사업비 내역서===
내용
+
0원. (사용 비용 없음.)
  
 
===완료작품의 평가===
 
===완료작품의 평가===
내용
+
{|cellpadding="0" cellspacing="0" border="1" width="100%"
 +
! 평가 항목 || 평가 방법 || 적용 기준 || 개발 목표치 || 비중 || 평가 결과
 +
|-
 +
| 1. 양자 컴퓨팅의 적용 || 전문가들(전공 교슈)에 의한 소스 코드 북석 (매우 나쁨 ~ 매우 좋음) || 게임에 양자 컴퓨팅이 얼마나 활용되었는가? 게임 시스템에 주요 역할을 담당 했는가? || 좋음 이상. || 30% || 좋음.
 +
|-
 +
| 2. 양자 컴퓨팅의 효율 || 소스 코드 분석, 세션 당 양자 컴퓨터 접속 횟수 측정(응답 대기 시간/총 게임 시간) || 양자 컴퓨터를 효율적으로 사용했는가? 양자 컴퓨터를 너무 자주 호출해서 낭비하는 시간이 있었는가? || 0.3 ( 30% ) || 20% || 1분 ~ 5분 / 20 분 (25%).
 +
|-
 +
| 3. 게임의 해설 능력 || 일반인 대상으로 게임 플레이 후 설문 (1~10점) || 게임을 통해 양자 컴퓨팅에 대해 보다 쉽게 이해할 수 있었는가? || 평균 8.5 이상 || 20% || 8.0
 +
|-
 +
| 4. 게임의 접근성 || 일반인 대상으로 게임 플레이 후 설문 (1~10점) || 전문 지식 없이도 게임을 하는데 문제가 없었는가? 게임하는데 불편한 점은 없었는가? || 평균 8.0 이상 || 15% || 9.0.
 +
|-
 +
| 5. 게임의 재미 || 일반인 대상으로 게임 플레이 후 설문 (1~10점) || 게임이 재미 있었는가? || 평균 8.0 이상 || 15% || 8.0
 +
|}
  
 
===향후계획===
 
===향후계획===
내용
+
◇ 모듈들의 결합성을 감소, 양자 컴퓨팅과 관련되 기능들을 하나의 독립적인 모듈로 분리해서 프로그램 구조를 정리.
 +
 
 +
◇ 애니메이션, 사운드를 추가. 그래픽 개선.
 +
 
 +
◇ Multiprocessing/Multithreading을 통해 프로그램 로딩 및 대기 시간 중 화면이 정지하는 현상을 줄이기.
  
 
===특허 출원 내용===
 
===특허 출원 내용===
내용
+
없음.

2019년 6월 19일 (수) 01:31 기준 최신판

프로젝트 개요

기술개발 과제

국문 : 양자 컴퓨터의 이해를 목적으로 양자 프로그래밍 언어로 게임 개발

영문 : Development of a game in quantum programming language for the purpose of understanding quantum computing

과제 팀명

1Qubit

지도교수

김성환 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 2016920063 강한빛(팀장)

서론

개발 과제의 개요

개발 과제 요약

◇ 양자 컴퓨터는 일반적인 컴퓨터 프로그래밍과 조금 다른 접근이 필요하다.

◇ 양자 프로세싱 환경은 재현하는 다양한 오픈소스 개발환경들이 공개되었다.

◇ 컴퓨터 과학에서 어떤 원리을 이해가는데 효과적인 방법은 실제로 그 원리를 적용해 보는 것이다.

◇ 양자 컴퓨팅에 대한 이해를 높이고, 실제 응용 프로그램에 활용하는 방법을 알아보기 위해 게임을 개발한다.

개발 과제의 배경

◇ 정통적인 컴퓨터 디자인만으로는 물리적 한계에 도달하게 될 것이다. 컴퓨터의 성능을 향상시키기 어렵다. 이를 극복하기 위해서는 양자 컴퓨터, 그리고 양자 컴퓨팅에 대한 연구와 개발이 필수이다.

◇ 범용, 상용 양자 컴퓨터는 아직 미래 희망사항이지만, 최근 IBM에서 상용 양자컴퓨터인 IBM Q System One을 개봉한 만큼, 그리 멀지 않는 미래에 양자 컴퓨터가 다양한 분야들에서 활용될 것으로 보인다.

◇ 아직은 대부분의 양자 프로그래밍은 이론적이고, 실제 양자 컴퓨터 환경에서는 ‘결잃음(quantum decoherence)’ 등, 다양한 요인들로 인해 오차들이 생기고, 이를 보완하는 방법들이 계속 개발되어야 한다. 또한 대부분의 접근 방법들은 전문적, 그리고 특화된 목적들로 개발되었기 때문에, 양자 프로그래밍 언어를 통한 일반적인(general) 프로그래밍에 대한 참고 문헌 및 자료는 찾기가 어렵다.

◇ 양자 컴퓨터들이 상용화 되면, 양자 프로그램들을 다룰 수 있는 인재에 대한 요구가 증가할 것이다. 현재 양자 프로그래밍은 초창기이므로, 이를 공부하는 사람들은 찾기가 어렵고, 이를 가르치는 사람들은 더 적다.

◇ IBM의 Qiskit과 같이, 오픈소스 프레임워크를 통해 무료로 양자 프로그래밍을 해볼 수 있고, 이를 실제 양자 컴퓨터들에 큰 비용 없이 작동시켜 볼 수 있다.

개발 과제의 목표 및 내용

◇ 양자 컴퓨팅에 대한 이해를 증가: 양자 컴퓨터의 원리 이해. 양자 프로그램은 어떤 방식으로 작동되는지 이해. 양자 컴퓨터의 이점과 한계 파악.

◇ Qiskit과 같은 양자 프로그래밍 프레임워크 응용 능력 증가: 양자 프로그래밍 프레임워크를 사용하는 방법을 익힘. 프레임워크를 기반으로 응용 어플리케이션을 개발할 수 있는 경험 쌓기.

◇ 특수한 제한 조건에서 문제를 해결할 수 있는 능력 증진: 일반적인 프로그래밍 환경에서는 접하지 못하는 문제들을 접하면서, 사고력, 문제 해결 능력, 창의력을 증진. 이후 다양한 문제들에 대해 창의적인 방법으로 접근할 수 있는 능력을 키움.

◇ 전문 지식 없이도 사용할 수 있는 어플리케이션(게임)을 개발: 게임이라는 접근하기 상대적으로 쉬운 인터페이스를 통해서 일반인들도 양자 컴퓨터를 간접적으로 이용할 수 있게 함. 대중에 양자 컴퓨터에 대한 관심을 증가. 사용하기 쉬운 어플리케이션 개발에 대한 이해를 증가.

◇ 미래에 필요하게 될 인재가 될 수 있도록 경험 쌓기: 현재 비교적 소수의 사람들만 양자 프로그래밍에 대한 이해 및 경험을 갖고 있으므로, 미리 노하우를 쌓아서 필요한 인재상이 될 수 있음. 미래에는 어떤 환경에서 개발을 할지에 대해 고민할 기회가 생김.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ 2019 1월, IBM의 첫 상용 양자 컴퓨팅 시스템 IBM Q System One 출시.

◇ 2019 3월, IBM 오픈 액세스 양자 컴퓨터를 통해 주어진 양자 상태를 되돌리는 알고리즘을 공개, 실험적인 환경에 전자의 시간을 되돌리는 재현.

◇ 2017말 ~ 2018초, IBM, Intel, Google 각각 50 큐빗, 49 큐빗, 72 큐빗을 가진 양자 프로세서를 실험함.

◇ 아직은 양자 결잃음(quantum decoherence)로 인한 오류를 교정하는 것이 제일 큰 난제이다. 양자 오류 수정으로 보다 정확한 결과를 얻을 수 있지만, 이를 위해선 프로세서에 큐빗을 추가해야 한다.

  • 특허조사 및 특허 전략 분석

양자 컴퓨터의 기술적 구조, 설계에 관해선 다양한 특허들이 존재하나, 게임과 연관되어 나온 특허들은 적다.

◇ Raymond G. Beausoleil, Kay-Yut Chen, Tad Hogg, Li Zhang & William J. Munro 2003, Games using pair-wise entanglements, US7310623B2 큐빗을 활용해 각 플레이들에게 공평한 선택을 하도록 하는 게임 환경을 조성하는 방법을 설명하는 특허. 비디오 게임만을 위한 특허가 아니라, 다수의 인원들이 공평하게 행동하도록 하는 범용적 목적을 위한 장치를 제안한다. 현재 양수인은 Hewlett Packard Enterprise Development LP.

◇ John H. Kim 2006, Quantum gaming system, US20080076525A1 양자 처리를 통해 진정한 난수 발생(true random number generation)을 하여 게임에 사용을 제안하는 특허. 현재 특허 포기 상태.

  • 기술 로드맵

◇ Small Quantum Computer Application: 적은 수의 큐빗을 가진 양자 컴퓨터를 이용하여, 시뮬레이션, 최적화, 보안 등에 활용될 수 있다. 양자 화학, 암호학, 머신 러닝 등에 활용될 수 있다. 정통 컴퓨터와 함께 사용하여 보다 큰 규모의 양자 컴퓨터를 시뮬레이션 하는 것도 가능하다.

◇ Fault-tolerant Quantum Computer: 현재 사용 가능한 양자 컴퓨터들의 제일 큰 난제는 상대적으로 오류 빈도이다. 큐빗들의 상태를 유지하는 기술의 개선과, 오류를 교정하는 시스템의 확장을 통해 신뢰도가 높은 양자 컴퓨터를 만들 수 있으면 양자 컴퓨터를 적용할 수 있는 범위가 확장된다.

◇ Quantum Supremacy: 이론적으로 오류 교정된 큐빗이 50개가 있으면 Quantum Supremacy를 도달하게 된다. 이는 양자 컴퓨터의 성능 개선 속도가 정통 컴퓨터의 성능 개선 속도를 추월하는 시점으로, 이후에는 정통 컴퓨터로는 도달하지 못한 속도로 증가하게 된다.

◇ Quantum Internet: 양자 얽힘을 사용하여, 먼 거리에 있는 두 컴퓨터 사이에 거의 즉석에 가까운 속도로 통신이 가능할 수 있다. 아직은 입자들을 안정화하고, 외부에서 의도되지 않은 간섭이나 읽힘을 방지하는 기술이 부족하지만, 이 기술들이 발전하면 양자 인터넷을 이룰 수 있게 된다.

시장상황에 대한 분석

  • 경쟁제품 조사 비교

상용화된 양자 컴퓨터가 사실상 없는 만큼, 상용화된 양자 게임 또한 사실상 없다. 하지만 양자 프로그래밍을 적용하거나, 양자 컴퓨터에서 가동이 가능한 게임들은 충분히 개발되었다. 본 과제는 다음과 같은 게임들과 비슷한, 혹은 더 나은 수준의 게임들을 개발하는 것을 목표로 두고 있다.

◇ Hello Quantum: Dr James Wootton이 IBM과 함께 개발한 양자 컴퓨팅의 기초를 퍼즐 형태로 해설한 게임. 짧고 매우 기본적인 주제들을 소개하는 스마트폰에서 플레이할 수 있는 버전과, 보다 심도 있는 주제들을 접근하는 CLI 버전이 있다. 실제 양자 컴퓨터에서 작동하는 프로그램은 아니지만, 양자 컴퓨터의 기초를 가르치는 목적 매우 효과적으로 달성한다.

◇ Quantum Awesomeness: 양자 기기의 오류가 얼마나 발생하는지 벤치마킹하기 위한 목적으로 개발되었다. 현재 양자 컴퓨터를 개발하는 데 극복해야하는 오류/노이즈가 양자 컴퓨터에 어떤 영향을 주는지 플레이를 하면서 느낄 수 있게 된다. 범용 양자 연산을 할 수 있는 모든 기기에서 가동이 가능하다.

◇ Quantum Battleship: 최초의 양자 게임. 양자 컴퓨터만의 특징 (큐빗)을 보여주기에 적합한 게임이다. 양자 컴퓨터가 연산 결과를 전송하는 걸 기다리는 동안 게임이 어떤 원리로 작동하는지에 대해 설명을 한다. 양자 게임 프로그래밍을 시작할 때 처음 시도해 볼만한 예제이다. 일반 대중들이 접하기에는 인터페이스가 비교적 빈약하다.

  • 마케팅 전략 제시

◇ 실제 양자 컴퓨터를 가동해서 작동하는 게임임을 강조 한다.

◇ 난이도는 너무 어렵지 않게 하고, 양자 기기가 응답할 때까지 대기하는 시간동안 양자 컴퓨팅에 대한 해설을 하면서 플레이어가 바로 포기해 버리지 않게 해야한다.

◇ 신뢰할 만한 설문조사를 하려면 다양한 사람들의 평가가 필요하므로, 게임을 시연할 때 공과대학 외, 서울시립대의 다른 대학 건물들에서도 시연을 해서 다양한 분야 출신의 사람들의 평가를 받아야한다.

개발과제의 기대효과

기술적 기대효과

◇ 양자 프로그래밍과 게임 개발을 접목시킨 양자 게임 프레임워크를 개발할 수 있다. 이를 통해 미래에 양자 컴퓨팅을 적용하려는 게임들은 보다 쉽게 개발을 할 수 있게 된다.

◇ 부족한 국내 비전문적(casual) 양자 프로그래밍 및 Qiskit 자료를 좀 더 늘릴 수 있다. 이에 따라 보다 많은 국내 양자 프로그래밍 프로젝트들의 개발에 기여할 수 있다.

◇ 현재 공개된 IBM 양자 프로세서들의 한계를 시험해볼 수 있으며, 한정된 자원으로 얼마나 많은 양의 작업을 할 수 있는지 알 수 있다. 이후 양자 프로그래밍 프로젝트들은 이를 고려하며 개발을 할 수 있게 된다

경제적, 사회적 기대 및 파급효과

◇ 일반 대중들의 양자 컴퓨터에 대한 이해를 높이고, 보다 관심을 갖게 된다.

◇ 양자 컴퓨터를 응용하려는 학과들이 증가하고, 이에 따라 전문 인력을 위한 요구가 증가한다.

◇ 다양한 분야에서 양자 컴퓨터와 양자 프로그래밍을 요구함에 따라, 교육 기관들에서 양자 컴퓨팅에 관한 교육을 더 증가시키고, 관련 과목들이 신설된다.

◇ 양자 컴퓨터에 관한 인기가 늘어나면서, 이를 이용하려고 양자 컴퓨터를 이용한다고 주장하는 스타트업들이 등장하게 된다. 실제로 양자컴퓨터는 구매 및 유지비용이 너무 높으므로, 대부분 IBM과 같이 소수의 기업들이 제공하는 클라우드 플랫폼을 통해 서비스를 할 것이다. 양자컴퓨팅 SaaS 산업이 발달하게 된다.

◇ 국가 측에서 양자 컴퓨팅에 관한 지원들을 늘리게 되고, 이후에는 정부 주요 산업에 추가된다.

기술개발 일정 및 추진체계

개발 일정

단계별 세부개발 내용 담당자 개발기간 (월단위) 비고
Qiskit을 응용한 예제 프로그램들 재현 강한빛 3 ~ 4
고유한 양자 게임의 디자인 강한빛 4 ~ 5 필요시 게임 개발과 함께 병행한다.
디자인한 양자 게임의 개발 및 수정 강한빛 4 ~ 5 CLI형으로 우선 개발한 후, 기본 게임이 완성되면 GUI를 추가한다.
게임의 그래픽, 오디오 등 인터페이스 개발 강한빛 5 ~ 6 최악의 경우 생략.
프로젝트 관련 보고서들 작성 강한빛 3 ~ 6 필요할 때마다 작성.

구성원 및 추진체계

강한빛: 게임 기획, 프로그래밍, 인터페이스 디자인, 홍보, 관련 문서 작성.

설계

설계사양

제품의 요구사항

1. 양자 프로그래밍을 적용한다. (D, 중요도: 대)

2. 양자 컴퓨팅의 특징에 대해 설명 한다. (D, 중요도: 중)

3. 전문 지식이 없어도 게임을 플레이할 수 있다. (D, 중요도: 중)

4. 실제 양자 컴퓨터에서 연산을 한다. (W, 중요도: 소)

5. 게임이 재미 있다. (W, 중요도: 소)

개념설계안

QuantumOmok.png

이론적 계산 및 시뮬레이션

흑과 백은 양자 레지스터에서 각각 |0>,|1>으로 표현된다. 양자 돌은 |0>에 Hadamard transformation을 적용해서 상태가 되므로, 흑이거나 백일 확률이 동일하다.

◇ 게이트들은 transformation으로, 두 돌들이 양자 얽힘(quantum entanglement) 상태로 바꾼다. 이 게이트들을 통해 확실된 돌들의 상태를 불확실하게 바꿀 수 있다.

◇ 일부 양자 레지스터 사이에 연결이 없어서 게이트로 직접 연결을 하지 못한다. 그럴 경우 모든 레지스터와 연결이 되어있는 2번 레지스터와 SWAP 게이트로 교환을 한 뒤 연산 후 다시 SWAP을 통해서 원하는 결과를 얻을 수 있었다.

상세설계 내용

◇ 게임 논리는 classical 프로그래밍으로 구현한다. (Python + Godot)

◇ 측정 전에는 모든 불확실한 돌들과 게이트들이 큐에 저장된다. 측정을 하면 불확실한 돌들의 수만큼 양자 레지스터를 등록하고, 순서에 맞춰서 Hadamard 게이트와 게이트를 양자 회로에 추가한다.

◇ 양자 회로는 Qiskit을 통해 정리되고, IBM Q 양자 컴퓨터 클라우드로 보내진다. 이후 연산 결과들이 반환되면, 각 레지스터와 연관된 불확실한 돌들의 상태를 확정시키고, 모든 게이트들을 제거한다.

◇ 양자 컴퓨터를 사용해야하는 빈도를 줄임으로서, 전체 플레이 시간 중 대기 시간을 감소 시킬 수 있다.

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

  • 게임 실행 화면

게임 실행 화면

  • 양자 계산 결과 대기 중 화면

양자 계산 결과 대기 중 화면

  • 게임 결론 화면

게임 결론 화면

관련사업비 내역서

0원. (사용 비용 없음.)

완료작품의 평가

평가 항목 평가 방법 적용 기준 개발 목표치 비중 평가 결과
1. 양자 컴퓨팅의 적용 전문가들(전공 교슈)에 의한 소스 코드 북석 (매우 나쁨 ~ 매우 좋음) 게임에 양자 컴퓨팅이 얼마나 활용되었는가? 게임 시스템에 주요 역할을 담당 했는가? 좋음 이상. 30% 좋음.
2. 양자 컴퓨팅의 효율 소스 코드 분석, 세션 당 양자 컴퓨터 접속 횟수 측정(응답 대기 시간/총 게임 시간) 양자 컴퓨터를 효율적으로 사용했는가? 양자 컴퓨터를 너무 자주 호출해서 낭비하는 시간이 있었는가? 0.3 ( 30% ) 20% 1분 ~ 5분 / 20 분 (25%).
3. 게임의 해설 능력 일반인 대상으로 게임 플레이 후 설문 (1~10점) 게임을 통해 양자 컴퓨팅에 대해 보다 쉽게 이해할 수 있었는가? 평균 8.5 이상 20% 8.0
4. 게임의 접근성 일반인 대상으로 게임 플레이 후 설문 (1~10점) 전문 지식 없이도 게임을 하는데 문제가 없었는가? 게임하는데 불편한 점은 없었는가? 평균 8.0 이상 15% 9.0.
5. 게임의 재미 일반인 대상으로 게임 플레이 후 설문 (1~10점) 게임이 재미 있었는가? 평균 8.0 이상 15% 8.0

향후계획

◇ 모듈들의 결합성을 감소, 양자 컴퓨팅과 관련되 기능들을 하나의 독립적인 모듈로 분리해서 프로그램 구조를 정리.

◇ 애니메이션, 사운드를 추가. 그래픽 개선.

◇ Multiprocessing/Multithreading을 통해 프로그램 로딩 및 대기 시간 중 화면이 정지하는 현상을 줄이기.

특허 출원 내용

없음.