프로젝트 소개

jcsp는 최신 Java(21+) 원칙을 사용하여 제약 만족 문제(CSP)를 해결하기 위해 설계된 라이브러리입니다. 이 라이브러리는 전역 가변 상태와 명령형 트레일링 스택에 의존하는 기존 솔버의 한계를 극복하기 위해 순수 함수형 및 불변 접근 방식을 채택합니다. 주요 기능으로는 스레드 안전성을 위한 깊이 불변 코어 객체, 여러 CPU 코어를 활용하는 병렬 로컬 검색, 그리고 표준 Java Stream 파이프라인을 사용하여 솔루션을 점진적으로 처리할 수 있는 지연 스트리밍 API가 있습니다. 이 라이브러리는 백트래킹 검색, 트리 분해, 분기-제한 최적화와 같은 다양한 해결 전략을 지원합니다. 또한, AllDiff, Cumulative, GlobalCardinality와 같은 다양한 전역 제약 조건을 사용하여 광범위한 일관성 사전 처리를 제공하여 효율적인 도메인 축소를 보장합니다. 또한, jcsp는 구간 산술을 사용하는 실수 변수, 조합 문제를 위한 집합 변수, 그리고 XCSP3 인스턴스 파일 파싱을 지원합니다. 솔버 구성은 검색 제한, 취소, 그리고 nogood 학습을 허용하여 유연하며, 클라우드 마이크로서비스 및 복잡한 최적화 작업에 적합합니다.