정식 명칭은 Predictive Pre-conditioning. §6.4.2 의 세 번째 하위 기능이다.
요구사항에 "학습"이 이미 암시돼 있다
§6.4.2 "시스템은 반복되는 차량 이용 정보를 기반으로 예상 탑승 시점을 판단해야 한다."
즉 패턴 학습이 기능 추가가 아니라 요구사항 자체다. 가장 단순하고 견고한 구현은 요일 × 시간 슬롯 히스토그램이다.
uint8_t count[7][96]; /* 요일별 · 15분 슬롯별 탑승 횟수 */
요일을 분리하는 게 중요하다. 평일 8시와 주말 8시는 완전히 다른 패턴이라, 요일 없이 시간만 보면 주말마다 헛되이 공조를 돌린다.
학습 데이터가 없을 때는 동작하지 않아야 한다
차를 처음 쓰면 히스토그램이 비어 있다. 근거 없는 예측으로 배터리를 쓰면 안 되므로 최소 관측 횟수 기준이 필요하다. 그리고 사용 패턴이 바뀌면(이직·이사) 오래된 데이터가 방해하므로 지수 감쇠로 최근에 가중치를 준다.
사용자가 멈출 수 있어야 한다
§6.4.2 는 사용자의 정지 능력과 시스템의 종료 동작을 각각 별도 요구사항으로 둔다. Pre-conditioning 은 사용자가 차 밖에 있을 때 배터리를 쓰고 소음을 내므로, "오늘은 안 탄다"고 판단하면 멈출 수 있어야 한다. 시스템이 스스로 시작한 동작은 사용자가 멈출 수 있어야 한다는 자율 기능의 기본 원칙이다.