
The scoring system uses the same loading mechanism as the published 2_run.py:
Copy my_solver/ and rename it to your team name, then run with --solver <team_name>. Other folders in the repository (e.g. my_solver) will not affect scoring.
The Guide page has also been updated to reflect this workflow.
The scoring environment runs Python 3.12. Packages like numpy and pandas are installed via pip install -r requirements.txt with no specific version constraints.
The scoring server is CPU-only; GPU is not available.
In real AOI equipment, GPU and other resources are dedicated to Inspection and Reconstruction tasks. Planning runs on CPU. The contest environment reflects this real-world setup.
All teams run on the same server, ensuring no hardware-based advantage. Datasets are executed sequentially in a single process. Teams are free to use multiprocessing within their solver.
Only the solve() call is timed (package import time is excluded):
The time limit is a safety measure to prevent excessive iterative computation and random search from overloading the scoring system. The exact limit is determined by the scoring environment.
Additionally, since Computation Time is directly included in the score, longer computation naturally results in a worse score.
The utils/checker.py and 2_run.py used for scoring are identical to the versions published in the repository. Any changes will be announced in advance.
The hidden test set is generated from 1_generate_data.py within the parameter ranges described in the Data Description. No inputs outside those ranges (e.g., extreme component counts, side values other than 0/1) will be included.
checker.py automatically handles Fiducial FOVs:
Separated components are treated as uncovered, and penalty_solver is automatically applied.
(Updated 2026-09-19, contest repository & team private repositories)
Benchmark comparison purposes (score comparison, output statistics analysis) are within the allowed scope.
The Guide states: "Use for purposes other than directly generating solutions is permitted." As long as ky_solver output is not used as input or solution generation for your own solver, it is fine.
The latest commit on the main branch at the deadline is the scoring target. No separate tags or releases are required.
Modifications after the deadline will not be reflected in scoring.

채점기는 공개된 2_run.py와 동일한 방식으로 동작합니다.
my_solver/를 복사하여 팀명으로 rename한 뒤 --solver <팀명>으로 실행하시면 됩니다. 저장소에 다른 폴더(my_solver 등)가 함께 있어도 채점에는 영향 없습니다.
실무가이드 페이지도 동일하게 업데이트되었습니다.
Python 3.12 환경에서 실행됩니다. numpy·pandas 등은 버전 제약 없이 pip install -r requirements.txt로 설치되는 버전을 사용합니다.
채점 서버는 CPU 전용 환경이며, GPU는 사용할 수 없습니다.
실제 AOI 장비에서는 GPU 등의 리소스가 검사(Inspection)·복원(Reconstruction) 등 다른 작업에 사용되며, Planning은 CPU에서 수행됩니다. 대회 환경도 이에 맞춰 CPU 전용으로 구성됩니다.
모든 팀이 동일한 서버에서 실행되므로 하드웨어 성능에 따른 유불리가 없습니다. 데이터셋은 단일 프로세스에서 순차 실행되며, solver 내부에서 multiprocessing 등 CPU 병렬 처리를 사용하는 것은 자유입니다.
solve() 호출 구간만 측정합니다 (패키지 import 시간 미포함).
시간 제한은 과도한 반복 연산 및 무작위 탐색으로 채점에 무리가 가는 것을 방지하기 위한 안전장치입니다. 구체적인 제한 값은 채점 환경에 따라 결정됩니다.
또한 Computation Time이 점수에 직접 포함되므로, 계산 시간이 길어질수록 점수가 자연스럽게 불리해집니다.
채점에 사용되는 utils/checker.py와 2_run.py는 현재 공개된 저장소 버전과 동일합니다. 변경 사항이 있을 경우 사전에 공지하겠습니다.
숨김 테스트셋은 공개된 1_generate_data.py와 Data Description의 파라미터 범위에서 생성됩니다. 범위 밖의 입력(예: 극단적인 부품 수, side 값 0/1 이외 등)은 포함되지 않습니다.
피듀셜 부품이 포함된 FOV는 checker.py가 자동으로 다음을 처리합니다:
분리된 부품은 커버리지 검사에서 미커버로 처리되며, penalty_solver가 자동 적용됩니다.
(2026-09-19 업데이트, contest repository 및 팀별 private repository)
벤치마크 비교(점수 비교, 출력 통계 분석) 용도는 허용 범위에 해당합니다.
GUIDE에도 "솔루션 출력에 직접 사용하지 않는 목적으로의 활용은 허용"이라고 명시되어 있습니다. ky_solver의 출력을 자체 solver의 입력이나 해 생성에 사용하지 않는다면 문제 없습니다.
마감 시각 기준 main 브랜치의 최종 커밋을 채점 대상으로 합니다. 별도 태그나 릴리스 표시는 필요 없습니다.
마감 이후 수정은 채점에 반영되지 않습니다.