Skip to main content
QUICK REVIEW

[논문 리뷰] PyQUBO: Python Library for Mapping Combinatorial Optimization Problems to QUBO Form

Mashiyat Zaman, Kôtarô Tanahashi|arXiv (Cornell University)|2021. 03. 02.
Quantum Computing Algorithms and Architecture참고 문헌 27인용 수 7
한 줄 요약

PyQUBO는 복잡한 조합 최적화 문제를 이징 기계, 특히 양자 앤날링 기반의 이징 기계에서 실행할 수 있는 이차 무제약 이진 최적화(QUBO) 및 이징 모델 형식으로 효율적으로 매핑할 수 있도록 해주는 오픈소스 파이썬 라이브러리입니다. 라이브러리의 C++ 최적화 백엔드는 표현식 구축에 O(n) 시간 복잡도를 달성하여 순수 파이썬 및 SymPy 구현보다 뛰어나며, 이는 대규모 문제에 있어서 실용성을 확보합니다.

ABSTRACT

We present PyQUBO, an open-source, Python library for constructing quadratic unconstrained binary optimizations (QUBOs) from the objective functions and the constraints of optimization problems. PyQUBO enables users to prepare QUBOs or Ising models for various combinatorial optimization problems with ease thanks to the abstraction of expressions and the extensibility of the program. QUBOs and Ising models formulated using PyQUBO are solvable by Ising machines, including quantum annealing machines. We introduce the features of PyQUBO with applications in the number partitioning problem, knapsack problem, graph coloring problem, and integer factorization using a binary multiplier. Moreover, we demonstrate how PyQUBO can be applied to production-scale problems through integration with quantum annealing machines. Through its flexibility and ease of use, PyQUBO has the potential to make quantum annealing a more practical tool among researchers.

연구 동기 및 목표

  • 복잡한 조합 최적화 문제에 대해 수작업으로 QUBO 및 이징 하미르토니안을 정의하는 데 도전하는 것.
  • QUBO 및 이징 모델을 구성하기 위한 고수준, 가독성 있고 확장 가능한 파이썬 인터페이스를 제공하는 것.
  • C++ 기반 구현을 통해 대규모 최적화 문제의 성능과 확장성 향상.
  • D-Wave 양자 앤날링 시스템을 포함한 실제 이징 기계와의 통합 지원.
  • 연구자가 자동 제약 조건 검증 및 파rameter 튜닝을 통해 복잡한 최적화 문제를 프로토타입 설계하고 디버깅할 수 있도록 하는 것.

제안 방법

  • PyQUBO는 고수준 파이썬 클래스를 사용하여 수학적 표현식과 제약 조건을 추상화함으로써 QUBO 및 이징 하미르토니안의 직관적인 정의를 가능하게 합니다.
  • 정수 및 이산 변수에 대한 이진 변수 인코딩을 지원하여 비이진 문제를 QUBO 형식으로 변환할 수 있습니다.
  • 백엔드에서 표현식의 내부 표현을 이진 트리 기반으로 사용함으로써 O(n) 시간 복잡도로 복사 없이 효율적인 표현식 구축을 실현합니다.
  • 벌점 항을 사용한 제약 조건 강제화를 위한 내장 메서드를 제공하여 해의 타당성을 보장합니다.
  • PyQUBO는 D-Wave Ocean SDK와 통합되어 있으며, D-Wave Advantage 양자 앤날링 하드웨어에서 사용 가능한 QUBO 행렬로 직접 내보내기 기능을 제공합니다.
  • 복잡한 문제 인스턴스를 위한 모델 검증 및 파rameter 튜닝과 같은 고급 디버깅 기능을 포함합니다.
Figure 2: A summary of logical gate circuit elements and their truth tables.
Figure 2: A summary of logical gate circuit elements and their truth tables.

실험 결과

연구 질문

  • RQ1어떻게 고수준 프로그래밍 인터페이스를 통해 조합 최적화 문제를 체계적이고 효율적으로 QUBO 및 이징 모델 형식으로 매핑할 수 있는가?
  • RQ2순수 파이썬 또는 SymPy와 같은 기호 계산 라이브러리에 비해 C++ 최적화 백엔드는 대규모 QUBO 표현식을 구축할 때 어떤 성능적 이점을 제공하는가?
  • RQ3양자 앤날링 하드웨어와 통합되었을 때 PyQUBO는 실제 생산 규모의 최적화 문제에 얼마나 잘 스케일링되는가?
  • RQ4PyQUBO의 내부 데이터 구조(예: 이진 트리 vs. 정렬된 배열)는 대규모 하미르토니안의 메모리 사용량과 구축 시간에 어떤 영향을 미치는가?
  • RQ5PyQUBO는 다양한 애플리케이션 도메인에서 이징 기계를 활용하는 연구자들이 개발 및 디버깅 오버헤드를 줄일 수 있도록 도울 수 있는가?

주요 결과

  • PyQUBO의 C++ 기반 구현(Array(C++))은 표현식 구축에 O(n) 시간 복잡도를 달성하여, 순수 파이썬 및 SymPy와 달리 항목 추가 시 리스트 복사로 인해 O(n²) 복잡도를 보이는 것보다 뛰어나게 성능을 확보합니다.
  • 특히 그래프 분할 및 고밀도 QUBO 행렬을 가진 TSP와 같은 대규모 문제에서, PyQUBO(C++)의 메모리 사용량과 실행 시간은 SymPy 및 파이썬 기반 PyQUBO보다 뚜렷이 낮습니다.
  • PyQUBO의 Array(C++) 구현은 Set(C++) 버전보다 더 낮은 메모리 사용량과 더 빠른 컴파일 시간을 보이며, 효율적인 데이터 구조 관리 덕분입니다.
  • PyQUBO는 이진 승수기법을 사용하여 실제 문제인 숫자 분할, 0-1 배낭 문제, 그래프 색칠하기, 정수 인수 분해 문제의 정의 및 해를 성공적으로 수행했습니다.
  • D-Wave Ocean SDK 및 D-Wave Advantage 양자 앤날링 시스템과의 통합을 통해 PyQUBO는 생산 규모 최적화 워크플로우에서 실용적인 유용성을 입증했습니다.
  • 벤치마킹 결과, PyQUBO의 성능은 문제 크기에 따라 효과적으로 스케일링되며, 복잡한 대규모 조합 최적화 작업에 적합함을 확인했습니다.
Figure 3: Diagram for a 3-bit binary multiplier. The arrows labeled $C$ and $S$ refer to the sum and carry of the individual half- and full-adders (labeled HA and FA). The $b_{m}a_{n}$ labels represent the $m$ -th and $n$ -th digit binaries joined by an AND gate.
Figure 3: Diagram for a 3-bit binary multiplier. The arrows labeled $C$ and $S$ refer to the sum and carry of the individual half- and full-adders (labeled HA and FA). The $b_{m}a_{n}$ labels represent the $m$ -th and $n$ -th digit binaries joined by an AND gate.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.