Skip to content

●  조합최적화

어려운 계획 문제,
이제 출발 신호를.

optimaru는 현장의 문제를 위한 최적화 엔진입니다. 배차 경로, 근무표, 시간표, 생산 계획처럼 복잡한 실제 제약이 얽힌 문제에 몇 초 만에 답을 냅니다.

학교 시간표 · 2학년 3반

24학급 · 교사 40명 · 교실 25개

교사 · 학급 · 교실 충돌
0건
충돌 없는 첫 시간표
11 ms

01 — 엔진

하나의 엔진, 데이터로 표현하는 제약.

핵심은 의존성 없는 C++17 메타휴리스틱 엔진과 Python 바인딩입니다. 문제마다 작은 도메인 모델을 얹고, 업무 규칙과 선호 조건은 더하고 빼고 가중치를 조절하는 제약 플러그인으로 다룹니다. 솔버 코드를 고칠 필요가 없습니다.

필요한 곳에서 빠르게
이동이 건드린 부분만 다시 계산하는 증분 채점 덕분에 단일 코어에서도 초당 수백만 개의 후보 변경을 탐색합니다.
주장 대신 측정
Google OR-Tools 같은 검증된 솔버, 그리고 CVRPLIB, Li & Lim, Patterson 같은 공개 인스턴스와 비교합니다. 모든 해는 별도 검증기로 다시 채점합니다.
pip install optimaru
모든 유스케이스가 담긴 Python 패키지 하나. Linux, macOS, Windows용으로 빌드되어 있습니다. 몇 줄로 풀거나, 고객 서비스 안에 넣어 쓰세요.
플러그인 제약
모든 필수 규칙과 선호 조건은 이름, 가중치, 필수/선호 수준을 가진 플러그인입니다. 프로젝트마다 더하고 빼도 솔버 코어는 그대로이고, 같은 규칙은 엔진, 참조 모델, 화면에서 모두 같은 뜻입니다.
$ pip install optimaru

from optimaru import vehicle_routing as vrp
from optimaru.vehicle_routing.constraints import (
    get_constraints, vehicle_capacity, maximize_visits_assigned,
    MinimizeTravelTime, MaxRouteDuration,
)

config = vrp.SolverConfig()
config.spent_limit_seconds = 5
solver = vrp.Solver(config)

# Plug in only the rules you need, weighted your way.
solver.solve_with_constraints(plan, get_constraints([
    vehicle_capacity,
    maximize_visits_assigned,
    MinimizeTravelTime(weight=10),
    MaxRouteDuration(hard=True),
]))
차량 경로: 비용 함수는 플러그인 목록 하나입니다.

02 — 벤치마크

OR-Tools와 비교했습니다.

같은 인스턴스, 같은 시간 예산, 모든 결과는 다시 검증. 비긴 결과도 그대로 보여 드립니다.

학교 시간표 — 총 벌점 · 낮을수록 좋음

두 솔버 모두 필수 규칙은 전부 지켰습니다. 벌점이 낮을수록 어긴 선호 조건이 적습니다.

  • optimaru
  • OR-Tools CP-SAT
S · 6학급
310 30% 낮음
443
M · 12학급
1,176 22% 낮음
1,511
L · 24학급
2,752 34% 낮음
4,164

다른 결과

문제지표optimaruOR-Tools
학교 시간표 · 24학급 충돌 없는 첫 시간표 11 ms 10초 안에 못 찾음
차량 경로 · CVRPLIB A-n32-k5 최적해와의 차이 5.48% 24.36%
픽업 · 배송 · Li & Lim lc101 총 이동 거리 156 동률 156
프로젝트 일정 · Patterson Pat1 전체 소요 시간 67 동률 67

같은 인스턴스, 같은 10초 예산. 모든 해는 별도 검증기로 다시 채점했습니다. 시간표에서 OR-Tools CP-SAT는 8 worker, 나머지는 1 worker. 2026년 8월 측정.

05 — 시작한 이유

조합최적화는 배송, 병원 근무표, 학교 시간표 뒤에서 조용히 돌아갑니다. 그런데 대부분의 팀은 여전히 비싼 블랙박스 솔버와, 첫 번째 실제 제약에서 무너지는 연구용 코드 사이에서 고릅니다. 쓰기 쉽고 현실에서 버티는 오픈소스 엔진을 만들기 위해 optimaru를 시작했습니다.

— 강승현, 창업자 · 회사 소개 →

경로나 일정 문제가 있으신가요?

지금 쓰고 있는 규칙을 보내 주세요. 최적화가 도움이 되는지, 얼마나 되는지 솔직하게 말씀드립니다.

문의하기