Feynman은 양자 역학의 경로 적분 모델에서 양자 회로 분석을 위한 툴킷입니다. 툴킷은 경로에 대한 합으로 회로 동작을 표현하는 것을 기반으로 하는 합성, 최적화 및 검증 방법으로 구성됩니다.
Feynman 프로젝트와 인터페이스하는 방법에는 두 가지가 있습니다. 도구에 포함된 Feynman 기반의 독립형 도구는 양자 회로 최적화 및/또는 검증을 위한 명령줄 인터페이스를 제공합니다. 또는 Feynman 라이브러리를 가져와 다른 Haskell 프로젝트에서 직접 사용할 수 있습니다.
Feynman 프로젝트에는 GHC >=8.0.2 및 Cabal >=1.24.0이 필요합니다. 이전 버전의 GHC는 작동할 수 있지만 테스트되지 않았습니다.
최적화( feynopt
) 및 검증( feynver
)을 위한 Feynman 라이브러리 및 바이너리 실행 파일은 다음을 사용하여 전역적으로 설치할 수 있습니다.
cabal install
또는 좀 더 세분화된 일련의 명령을 통해
cabal configure
cabal build
cabal install
종속성 지옥은 Haskell에서 흔히 발생하는 문제이므로 Cabal의 이전 버전에는 다른 패키지에 문제를 일으키지 않고 패키지 종속성이 설치되는 로컬 샌드박스를 명시적으로 생성하는 옵션이 있었습니다. Feynman을 빌드하거나 설치하기 전에 샌드박스에 Feynman의 종속성을 설치하려면 먼저 실행하십시오.
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
기본적으로 Cabal은 Unix 빌드의 경우 ~/cabal/bin/
에 바이너리를 설치합니다. 다른 폴더를 지정하려면 다음을 사용하여 설치하십시오.
cabal install --installdir=DIR
Feynman은 현재 openQASM 및 .qc에 대한 프런트엔드를 보유하고 있습니다. 두 가지의 예는 벤치마크 폴더에서 찾을 수 있습니다.
.qc 또는 openQASM 파일에서 Feynman 최적화 프로그램 feynopt
실행하려면 다음 명령을 실행하십시오.
feynopt <filename>.(qc | qasm)
feynopt
.qc 및 .qasm 확장자를 각각 .qc 및 openQASM 파일로 자동 인식합니다.
사용 가능한 모든 최적화 및 변환 목록을 보려면 다음 명령을 사용하십시오.
feynopt -h
feynver
바이너리 도구를 사용하면 별도의 회로 파일의 동등성을 확인할 수 있습니다. 표준 사용량은
feynver <filename1>.qc <filename2>.qc
입력 회로는 기본 입력(즉, 초기화되지 않은 큐비트)의 이름에 동의해야 하지만 다른 앤실라를 사용할 수 있습니다.
참고: feynver
현재 .qc 프런트엔드만 지원합니다.
Feynman 저장소에는 benchmarks
폴더에 있는 양자 회로 벤치마크 모음이 함께 제공됩니다. 벤치마크에 대한 자세한 내용을 보려면 사용자는 양자 회로 설계의 형식적 방법을 참조하세요.
벤치마크 제품군에는 openQASM github 저장소에서 가져온 openQASM 회로 예시도 포함되어 있습니다.
Feynman은 여러 논문에 걸친 알고리즘과 기술의 모음입니다. 학술논문에 인용하고자 하는 경우 해당 논문은 아래와 같습니다.
매튜 에이미