Skip to content

feat(f1): 독립 pairing validator + 평가 파이프라인 연결 (V1 완료) - #34

Open
ohchanju3 wants to merge 29 commits into
mainfrom
chore/f1-integration
Open

feat(f1): 독립 pairing validator + 평가 파이프라인 연결 (V1 완료)#34
ohchanju3 wants to merge 29 commits into
mainfrom
chore/f1-integration

Conversation

@ohchanju3

Copy link
Copy Markdown
Collaborator

요약

F1(V1) 파트 전체 완료 - 독립 pairing validator, source_type별 분리 집계, evaluate_ip.py/eval_best.py 연결, LLM, ASCP 결과 재채점 adapter

포함된 것

C1 - 독립 validator (evaluation/validator.py)

  • RL/environment.py::get_mask()를 재사용하지 않고 14개 violation code 전부 새로 구현 (base 출발/복귀, duty 내외 공항 연속성, connection/rest, duty/leg/pairing 기간, duplicate, unknown flight 등)
  • duty_break_indices(실제 선택한 EndDuty 지점) 지원 - 있으면 그걸로, 없으면 gap 기반 휴리스틱으로 duty 분리
  • validator_version/constraint_hash provenance 기록 분리

C2 - source_type별 분리 집계 (evaluation/validation_report.py)

  • aggregate_by_source()/aggregate_by_source_per_chunk() - policy_direct/salvage/
    repair/forced 4종류 분리(pairing 수, coverage, invalid 수, duplicate, deadhead 수, ManDays, FTC - 전부 flights 데이터로 독립 재계산)
  • chunk마다 base_airport가 다른 경우(evaluate_ip.py의 실제 구조) 대응

C3 - 평가 파이프라인 연결 (evaluation/evaluate_ip.py, evaluation/eval_best.py)

  • collect_pool_full()이 pairing마다 실제 생성 base(_gen_base_airport)를 남기도록 수정
  • validate_selected_pairings() — 최종 선택된 pairing을 독립 재검증, --strict-validation플래그로 invalid 발견 시 실패 처리 여부 선택
  • save_result_json()(--save-json PATH) — 선택된 pairing(flight ID 포함) + 검증 결과를 JSON으로 저장하도록 수정
  • eval_mode(strict/legacy)를 wandb run 이름, config, log에 반영
  • eval_best.py는 evaluate_ip.py의 새 출력을 파싱해서 invalid selected pairing 수를 비교에 반영 - correctness가 성능(dead_time/deadhead)보다 항상 우선

C4/C5 - adapter + 테스트

  • evaluation/llm_adapter.py - LLM 원시 출력 파싱 → pairing_record 변환
  • evaluation/ascp_output_adapter.py - save_result_json() 결과를 다시 읽어 재검증

pkhyrn268 and others added 29 commits August 18, 2026 11:13
@ohchanju3
ohchanju3 requested a review from pkhyrn268 August 21, 2026 04:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants