728x90
반응형
Google Optimization Tools로 구글에서 만들어 무료(open-source)로 배포하고 있는 최적화 도구입니다. 최적화 도구란 여러가지 선택 가능한 문제를 수학적 모델로 정의하고 가장 나은 선택을 제시해 주는 프로그램이라고 할 수 있다. 예를 자주 드는 N-Queen 문제가 있다.
크기가 N x N 인 체스판 위에 퀸 N 개가 서로를 공격 할 수 없게 놓는 경우의 수를 구하는 문제
체스에서 퀸은 대각선과 가로, 세로로 공격할 수 있다. 그러면 N x N 크기의 체스판에서 공격할 수 없게 놓을 수 있는 퀸 배치 경우의 수는 몇개인가?
N-Queens 문제는 최적화라기보다 가능한 모든 경우의 수를 구하는 문제이지만, 최대값, 최소값을 구하는 문제도 Or-Tools를 통해 구할 수 있다.
OrTools는 C++로 Core가 작성되어 있고 C#, Python, Java 등 다양한 언어로 사용할 수 있게 배포하고 있다. 무료이지만 때로는 상용 솔루션과 비슷한 성능을 보여준다. 위키피디아에 따르면 OR-Tools와 함께 제공되는 CP-SAT 솔버는 국제 제약 조건 프로그래밍 대회인 MiniZinc Challenge에서 2018년과 2020년 사이에 총 11개의 금메달을 획득했다.
다음에는 python으로 n-queens 문제를 해결하는 방법을 소개하겠다.
728x90
반응형
'코딩 강좌 > OrTools' 카테고리의 다른 글
#3-2 OrTools로 bin packing 문제 해결(CP-SAT) (0) | 2022.11.22 |
---|---|
#3-1 OrTools로 bin packing 문제 해결(CP-SAT) (0) | 2022.11.22 |
#2 OrTools로 n-Queens 솔루션 결과 출력 (0) | 2022.11.21 |
#1 OrTools로 n-Queens 해답 찾기 (0) | 2022.11.18 |