Files
ExperionCrawler/Threashold-tunning-logic-revise.md

3.0 KiB

P&ID 위상 모델링 임계값 튜닝 및 로직 개선 계획

1. 현황 분석

No-10_Plant_PID.dxf 파일 테스트 결과, 기능적 파이프라인은 정상 작동하나 위상 연결성이 매우 낮음.

  • 결과: 노드 28,257개 / 엣지 4,045개 (대부분의 노드가 고립됨)
  • 원인:
    • 현재 설정된 dist_threshold (50.0) 및 tag_threshold (100.0)가 도면의 실제 스케일에 비해 너무 작음.
    • 단순 End-point 기반 연결 로직으로 인해 미세한 간격 차이로 연결이 누락됨.
    • 노드 병합(Merging) 로직 부재로 인해 동일 객체가 여러 노드로 분산 추출되었을 가능성이 큼.

2. 개선 목표

  • 도면 스케일에 최적화된 임계값(Threshold) 도출.
  • 연결성 향상을 위한 기하학적 매칭 로직 고도화.
  • 중복/분산 노드 병합을 통한 그래프 단순화 및 정확도 향상.

3. 세부 개선 방안

3.1 임계값 튜닝 (Threshold Tuning)

  • 동적 임계값 분석:
    • 도면 내 엔티티 간의 평균 거리 및 태그-설비 간 거리를 샘플링하여 통계적 임계값 산출.
    • dist_threshold (배관-설비 연결 거리) 및 tag_threshold (태그-설비 연관 거리) 최적화.
  • 설정 파일 분리: 하드코딩된 값을 제거하고 도면별/프로젝트별 설정 파일(config.json)을 통해 관리.

3.2 연결 로직 고도화 (Topology Logic Revise)

  • End-point \rightarrow Proximity 기반 확장:
    • 단순 End-point 거리 측정에서 벗어나, 배관(Line)의 전체 경로와 설비 BBox 간의 최단 거리(distance)를 계산하여 연결 판단.
  • 스냅(Snapping) 메커니즘 도입:
    • 임계값 이내의 점들을 하나의 가상 정점으로 병합하여 연결 누락 방지.
  • 방향성 추론 개선:
    • 현재의 단순 순서 기반 엣지 생성을 넘어, 화살표 심볼(Arrow) 또는 공정 흐름 방향성을 분석하여 DiGraph 엣지 방향 결정.

3.3 노드 병합 및 정제 (Node Merging & Cleaning)

  • 기하학적 중복 제거:
    • BBox가 거의 일치하거나 겹치는 동일 타입 노드들을 하나로 병합.
  • 태그 기반 그룹화:
    • 동일한 태그 값을 가진 분산 텍스트 노드들을 하나의 논리적 태그 노드로 통합.
  • 고립 노드 필터링:
    • 유의미한 연결이 없는 미세 엔티티(Noise)를 제거하여 그래프 복잡도 감소.

4. 실행 단계 (Roadmap)

  1. [분석] shared_geo_data.json을 분석하여 엔티티 간 거리 분포 히스토그램 작성 \rightarrow 최적 임계값 후보 선정.
  2. [구현] pid_topology_builder.py에 Proximity 기반 연결 로직 및 노드 병합 기능 추가.
  3. [검증] test_pipeline_phase2.py를 수정하여 튜닝된 임계값 적용 후 isolated_nodes 비율 감소 확인.
  4. [최적화] 영향도 분석(analyze_impact) 결과가 실제 공정 흐름과 일치하는지 검토 및 미세 조정.