KR102437138B1 - 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치 - Google Patents

이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치 Download PDF

Info

Publication number
KR102437138B1
KR102437138B1 KR1020160098169A KR20160098169A KR102437138B1 KR 102437138 B1 KR102437138 B1 KR 102437138B1 KR 1020160098169 A KR1020160098169 A KR 1020160098169A KR 20160098169 A KR20160098169 A KR 20160098169A KR 102437138 B1 KR102437138 B1 KR 102437138B1
Authority
KR
South Korea
Prior art keywords
event
node
resident
occupants
type
Prior art date
Application number
KR1020160098169A
Other languages
English (en)
Other versions
KR20180014602A (ko
Inventor
김성일
서범준
김형찬
김사라
Original Assignee
주식회사 직방
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 직방 filed Critical 주식회사 직방
Priority to KR1020160098169A priority Critical patent/KR102437138B1/ko
Publication of KR20180014602A publication Critical patent/KR20180014602A/ko
Application granted granted Critical
Publication of KR102437138B1 publication Critical patent/KR102437138B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/30Individual registration on entry or exit not involving the use of a pass
    • G07C9/38Individual registration on entry or exit not involving the use of a pass with central registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00571Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by interacting with a central unit

Landscapes

  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

본 발명의 일 태양에 따른 거주자 프로파일링 방법은, 거주자 프로파일링 장치가, 임의의 수를 대상 공간의 거주자 수로 가정하고, 상기 임의의 수를 트리 구조의 루트 노드로 구성하되, 상기 트리 구조는 상기 대상 공간의 재실자 수의 경우의 수를 가리키는 각각의 노드로 구성되는 것인, 단계와 상기 거주자 프로파일링 장치가, 출입 이벤트 정보를 이용하여, 발생한 출입 이벤트에 따라 가감된 상기 재실자 수를 상기 루트 노드의 자식 노드로 구성하는 단계와 상기 거주자 프로파일링 장치가, 상기 트리 구조의 각 노드에 상기 재실자 수에 대한 제약 조건을 적용하여, 상기 루트 노드부터 상기 트리 구조의 리프 노드까지 상기 제약 조건을 만족하는 노드들로 구성된 경로를 탐색하는 단계 및 상기 거주자 프로파일링 장치가, 상기 경로가 존재하는 경우, 상기 임의의 수를 거주자 수로 추정하는 단계를 포함할 수 있다.

Description

이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치 {Method and apparatus for profiling a pattern of resident by analyzing event log}
본 발명은 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 도어락의 이벤트 로그를 분석하여 거주자의 인원수를 추정하고, 거주자들의 재실 패턴을 추정하여 맞춤 서비스를 제공하는 방법 및 그 장치에 관한 것이다.
기존에 거주자의 프로파일링(profiling) 기능이나 생활 패턴을 학습하고 추정하는 방법들은 많은 경우 거주자의 프로파일이 주어져 있다는 가정하에 이를 사용하여 예측 모델을 학습한다.
따라서 종래의 예측 방법은 거주자의 프로파일이 주어져 있지 않은 경우, 예측 모델을 구현할 수 없는 한계를 가진다. 그러나 거주자의 프로파일은 프라이버시(privacy) 이슈로 인하여 제공받거나 수집하기 어려운 경우가 많으며, 수집을 한다 하더라도 법률적인 이슈로 인하여 임의로 사용이 불가능한 경우가 많다.
이에 거주자의 개인 정보를 포함한 거주자의 프로파일 정보와 같은 추가적인 정보 수집을 요구하지 않고 예측 모델을 구현할 수 있는 방법 및 장치의 제공이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 도어락의 이벤트 로그를 분석하여 거주자의 인원수 및 생활 패턴을 추정하는 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 거주자의 생활 패턴을 기반으로 거주자에게 편의 서비스를 제공하는 방법 및 그 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른 거주자 프로파일링 방법은, 거주자 프로파일링 장치가, 임의의 수를 대상 공간의 거주자 수로 가정하고, 상기 임의의 수를 트리 구조의 루트 노드로 구성하되, 상기 트리 구조는 상기 대상 공간의 재실자 수의 경우의 수를 가리키는 각각의 노드로 구성되는 것인, 단계와 상기 거주자 프로파일링 장치가, 출입 이벤트 정보를 이용하여, 발생한 출입 이벤트에 따라 가감된 상기 재실자 수를 상기 루트 노드의 자식 노드로 구성하는 단계와 상기 거주자 프로파일링 장치가, 상기 트리 구조의 각 노드에 상기 재실자 수에 대한 제약 조건을 적용하여, 상기 루트 노드부터 상기 트리 구조의 리프 노드까지 상기 제약 조건을 만족하는 노드들로 구성된 경로를 탐색하는 단계 및 상기 거주자 프로파일링 장치가, 상기 경로가 존재하는 경우, 상기 임의의 수를 거주자 수로 추정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 루트 노드의 자식 노드로 구성하는 단계는, 하루를 주기로 하여, 상기 주기 동안 발생한 출입 이벤트에 따라 가감된 상기 재실자 수를 상기 루트 노드의 하위 노드로 구성하는 단계를 포함할 수 있다.
다른 실시예에서, 상기 출입 이벤트 정보를 도어락으로부터 제공 받는 단계 및 상기 출입 이벤트와 관련된 보조 센싱 정보를 보조 센서로부터 제공 받는 단계를 더 포함하고, 상기 루트 노드의 자식 노드로 구성하는 단계는, 상기 보조 센싱 정보를 더 이용하여, 상기 발생한 출입 이벤트에 따라 가감된 재실자 수를 상기 루트 노드의 하위 노드로 구성하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 루트 노드의 자식 노드로 구성하는 단계는, 상기 출입 이벤트 정보를 이용하여, 상기 출입 이벤트에 속성과 도메인을 할당하는 단계를 포함하되, 상기 속성은 사람이 나가는 이벤트인지 들어오는 이벤트인지를 의미하는 것이고, 상기 도메인은 상기 속성에 따른 재실자 수의 가능한 변화량을 집합의 형태로 표시한 것이다.
또 다른 실시예에서, 상기 속성은, 이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 알 수 없는 상태(unknown)를 의미하는 OU 타입을 포함하고, 상기 OU 타입의 도메인은, 사람이 나가는 이벤트이므로 {-0, -1, -2}의 값을 가지는 것이다.
또 다른 실시예에서, 상기 속성은, 이벤트의 발생 전에는 알 수 없는 상태(unknown)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 UO 타입을 포함하고, 상기 UO 타입의 도메인은, 사람이 들어오는 이벤트이므로 {+1, +2}의 값을 가지는 것이다.
또 다른 실시예에서, 상기 속성은, 이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 OO 타입을 포함하고, 상기 OO 타입의 도메인은, 사람이 들어오는 이벤트이므로 {+0, +1, +2}의 값을 가지는 것이다.
또 다른 실시예에서, 상기 속성은, 이벤트의 발생 후에는 사람이 없는 상태(vacant)를 의미하는 OV 타입을 포함하고, 상기 OV 타입의 도메인은, 이벤트의 발생 후에는 사람이 없는 상태의 이벤트이므로 {=0}의 값을 가지는 것이다.
또 다른 실시예에서, 상기 출입 이벤트에 속성과 도메인을 할당하는 단계는, 상기 루트 노드에 상기 도메인의 크기만큼 하위 노드를 추가하는 단계 및 상기 추가된 하위 노드의 값은 상기 추가된 하위 노드의 부모 노드의 값에 상기 도메인에 속한 각각의 변화량을 더한 값이다.
또 다른 실시예에서, 상기 제약 조건을 만족하는 노드들로 구성된 경로를 탐색하는 단계는, 상기 트리 구조의 각 노드 중에서 상기 제약 조건에 위배되는 노드는 제외하는 단계 및 상기 트리 구조의 루트 노드와 리프 노드 사이의 경로 중에서 제외된 노드가 없는 경로를 상기 제약 조건을 만족하는 경로로 판단하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 루트 노드의 값과 리프 노드의 값은 같다"이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 노드의 값이 0인 노드가 하나 이상 존재한다"이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 모든 노드의 값은 0 이상이고, 루트 노드의 값 이하이다"이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 특정 노드에 대응되는 이벤트의 속성이 OV 타입이면, 해당 특정 노드의 값은 0이다"이고, 상기 OV 타입은 이벤트의 발생 후에는 사람이 없는 상태(vacant)를 의미하는 것이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 특정 노드에 대응되는 이벤트의 속성이 OU 타입 또는 OO 타입이면, 해당 특정 노드의 부모 노드의 값은 1 이상이다"이고, 상기 OU 타입은 이벤트의 발생 전에는 알 수 없는 상태(unknown)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 것이고, 상기 OO 타입은 이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 것이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 하위 노드에서 가감된 재실자 수의 최소값을 더한 값은 0 이하이다"이다.
또 다른 실시예에서, 상기 제약 조건은, "트리 구조에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 하위 노드에서 가감된 재실자 수의 최대값을 더한 값은 0 이상이다"이다.
또 다른 실시예에서, 기 설정된 기간 동안, 상기 루트 노드로 구성하는 단계, 상기 자식 노드로 구성하는 단계, 상기 탐색하는 단계 및 상기 추정하는 단계를 반복 수행하고, 상기 기 설정된 기간 동안 가장 많이 거주자 수로 추정된 임의의 수를 거주자 수로 결정하는 단계를 더 포함할 수 있다.
또 다른 실시예에서, 상기 추정한 거주자 수를 이용하여, 일자별, 시간별에 따른 재실자 수를 예측하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 효과는 다음과 같다.
개인 정보를 비롯한 추가적인 정보의 수집 없이 도어락의 출입 정보만을 이용하여 거주자의 인원수와 재실 패턴을 추정할 수 있다. 예를 들면, 현재 몇 명의 인원이 살고 있으며, 일자 및 시간에 따라 현재 몇 명의 인원이 남아 있는지를 예측할 수 있다.
또한, 추정된 인원수 및 재실 패턴 정보를 이용하여 거주자들에게 맞춤 서비스를 제공하여 거주자들의 편의를 도모할 수 있다. 예를 들면, 거주자가 외출하는 경우 바깥의 날씨를 알려주거나, 비정상적인 침입을 탐지하고 경보(alarm)를 발생시킬 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 장치를 설명하기 위한 예시도이다.
도 2는 본 발명의 몇몇 실시예에서 활용될 수 있는 출입 이벤트에 관한 로그 정보를 설명하기 위한 예시도이다.
도 3a 내지 도 3b는 본 발명의 몇몇 실시예에서 사용될 수 있는 이벤트의 속성과 도메인을 설명하기 위한 예시도이다.
도 4a 내지 도 4c는 도 2에 예시된 출입 이벤트 로그를 분석하여 재실자의 수를 추정한 결과를 설명하기 위한 예시도이다.
도 5a 내지 도 11c는 본 발명의 몇몇 실시예에서 활용될 수 있는 7가지의 제약 조건을 설명하기 위한 예시도이다.
도 12는 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 방법을 설명하기 위한 예시도이다.
도 13은 본 발명의 일 실시예에 따라 거주자의 수를 프로파일링 하기 위해 제약 조건 충족 문제를 반복해서 수행하는 과정을 설명하기 위한 예시도이다.
도 14a 내지 도 14b는 본 발명의 일 실시예에 따른 보조 센서를 추가로 더 이용하여 거주자의 프로파일링을 수행하는 과정을 설명하기 위한 예시도이다.
도 15는 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 방법의 순서도이다.
도 16a 내지 도 16b는 본 발명의 일 실시예에 따른 재실 패턴을 이용한 맞춤형 서비스를 설명하기 위한 예시도이다.
도 17은 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 발명에서 사용하는 용어에 대한 정의는 다음과 같다.
도어락이란 흔히 스마트 도어락(Smart Door-Lock) 또는 디지털 도어락(Digital Door-Lock)으로 불리며, 사용자가 비밀번호, 지문 등을 입력하거나 보조 키를 이용하여 도어(Door)를 폐쇄하거나 도어를 개방하도록 도어에 설치되는 장치를 의미한다.
특히 그 중에서 홈 네트워크(Home Network)에 연결되어 도어락이 열고 닫히는 이벤트 로그를 전송할 수 있는 기기를 말한다. 그리고 본 명세서에서는 주거지에 설치되는 디지털 도어락을 예로 들어 설명한다. 그러나 이에 한정되지 않고, 사무실, 연구실, 공장 등 기타 장소에서 사용되는 도어락이 이용될 수 있다.
거주자란 도어락에 출입 권한을 가지고 있는 사람을 말한다. 주거지를 기준으로 설명하면, 거주자는 해당 주거지에 살고 있는 가족들이 될 것이다. 그러므로 단순 방문객은 제외가 된다. 또한 출입을 전제로 하므로 스스로 출입할 수 없는 거주자, 예를 들면 아기나 거동이 불가능한 환자는 제외가 된다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 장치를 설명하기 위한 예시도이다.
도 1을 참고하면, 재실 패턴 예측 장치(200)는 이벤트 정보 수신부(210)와 이벤트 정보 분석부(220)와 거주자 프로파일 추정부(230) 및 재실 패턴 예측부(240)를 포함할 수 있다.
이벤트 정보 수신부(210)는 도어락(100)에 연결되어 도어락에서 발생하는 출입 이벤트에 관한 로그를 수신할 수 있다. 예를 들면, 거주자가 안에서 밖으로 나가기 위하여 문을 열었다 닫은 경우(indoor event), 거주자가 집 안으로 들어오기 위하여 밖에서 비밀번호를 입력하거나 보조 키를 이용하여 문을 열었다 닫은 경우(outdoor event), 방문자가 있어 내부에서 문을 열어주고 다시 닫은 경우 등이 출입 이벤트가 발생한 경우가 될 수 있다.
또한 이벤트 정보 수신부(210)는 도어락(100) 외에도 도어락(100)과 관련된 보조 센서(110)로부터 로그 정보를 수신할 수 있다. 예를 들면 도어벨(111)로부터 벨이 눌린 시점 및 횟수와 같은 정보를 수신할 수 있다. 또는 출입문을 촬영하고 있는 감시 카메라(113)로부터 출입문을 촬영한 영상 데이터를 수신할 수 있다. 이렇게 보조 센서(110)로부터 수신한 로그 정보는 재실 패턴을 예측하는데 활용될 수 있다. 이에 대해서는 추후 도 14a 내지 도 14b에서 보다 자세하게 설명하기로 한다.
이벤트 정보 분석부(220)는 도어락(100)으로부터 수신한 이벤트 로그를 분석하여 각 이벤트의 속성과 도메인을 할당한다. 이를 이용하여 시간의 흐름에 따라 시퀀스(sequence)를 생성할 수 있다. 예를 들면, 하루를 단위로 하여 시퀀스를 생성할 수 있다.
거주자 프로파일 추정부(23)는 이벤트 정보 분석부(220)에서 생성한 시퀀스를 이용하여 출입 이벤트에 관한 트리 구조의 노드를 구성할 수 있다. 여기서 출입 이벤트에 관한 트리 구조의 노드를 이용하면, 출입 이벤트의 속성에 따라 추정되는 인원수의 변화를 추적하고 거주자의 인원수인 해를 구할 수 있다.
거주자의 인원수인 해를 구하는 과정에서, 제약 조건(constraint)을 적용하여 경우의 수를 줄일 수 있다. 이처럼 본 발명의 일 실시예에 따른 인원수 추정 방법은 제약 조건 충족 문제 해결 알고리즘(CSP; Constraint Satisfaction Problem)을 기반으로 한다.
제약 조건 충족 문제란 복수의 제약 조건을 충족하는 상태를 찾아내는 수학 문제를 가리킨다. 제약 조건 충족 문제는 특히 인공지능이나 운용 과학 분야에서 심도 있게 연구되고 있다. 제약 조건 충족 문제의 구체적인 예로 스도쿠(Sudoku)가 있다.
제약 조건을 만족시키지 않으면 탐색 범위에서 제외되기 때문에 탐색 공간을 줄일 수 있고, 모든 상태가 제약 조건을 만족시키지 않을 경우, 해가 없음을 미리 알 수 있는 예측적 성격을 갖는다. 또한 해를 찾는 과정에 대한 추적이 가능하다.
이를 위해 본 발명에서는 7가지의 제약 조건을 제안한다. 다만, 이는 발명을 한정하기 위한 것은 아니므로, 제약 조건을 추가하거나 제외하는 것도 가능하다. 본 발명에서 사용하는 7가지의 제약 조건에 대해서는 도 5a 내지 11c에서 보다 자세히 설명하기로 한다.
재실 패턴 예측부(240)는 거주자 프로파일 추정부(230)에서 과거 출입 이벤트 로그를 분석하여 예측한 재실 인원의 수와 패턴을 이용하여, 현재 시점의 일자별로 시간별로 재실 인원의 수를 예측하고 맞춤 서비스를 제공한다. 이에 대해서는 도 16a 내지 도 16b에서 보다 자세히 설명하기로 한다.
도 2는 본 발명의 몇몇 실시예에서 활용될 수 있는 출입 이벤트에 관한 로그 정보를 설명하기 위한 예시도이다.
도 2를 참고하면, 출입 이벤트에 관한 로그 정보가 좌측에 테이블의 형태(211)로 표시된 것을 볼 수 있다. 이를 시간축 상에 표시하면 우측의 그래프 형태(213)로 도시할 수 있다.
출입 이벤트에 관한 로그 정보는 문이 열리고 닫힌 시점, 안에서 열렸는지 밖에서 열렸는지에 대한 정보, 밖에서 열린 경우 번호를 입력하여 열렸는지 또는 카드키를 이용하여 열렸는지 또는 지문을 입력하여 열렸는지에 대한 정보를 포함할 수 있다. 다만, 이는 이해의 편의를 돕기 위한 것일 뿐 발명을 제한하고자 하는 것은 아니므로, 그 외에도 도어락과 관련된 다양한 이벤트의 정보가 포함될 수 있다.
도 2를 참고하면, 06시 05분 10초에 안에서 문이 열린 이벤트인 INDOOR 이벤트가 발생한 것을 볼 수 있다. 그리고 08시 47분 17초에는 안에서 문이 열린 이벤트인 INDOOR 이벤트가 발생하고, 08시 47분 36초에는 밖에서 설정하는 보안 잠금 기능인 SECURE 이벤트가 발생한 것을 볼 수 있다.
보안 잠금 기능이란 일부 스마트 도어락에서 제공하는 기능으로, 집안에 사람이 없이 경우 마지막으로 나가는 사람이 문을 닫으면서 도어락을 터치하여 해당 기능을 설정하면, 기 설정된 모드로 홈 네트워크에 연결된 기기를 제어하는 기능을 말한다.
예를 들면 마지막 퇴실자가 나가면서 보안 잠금 기능을 설정하면, 자동으로 TV가 꺼지고, 전등이 꺼지고, 가스 레인지 밸브가 잠기며, 창문이 닫히도록 설정할 수 있다. 이와 같은 보안 잠금 기능은 일부 스마트 도어락에서만 제공할 수 있으며, 또한 다른 이름으로 해당 서비스를 제공할 수 있다.
다만, 이러한 기능이 있는 도어락의 경우, 도 2에서 볼 수 있듯이 문을 안에서 열고 나가는 이벤트인 08시 47분 17초의 INDOOR 이벤트와 별개로, 08시 47분 36초에 보안 잠금 기능을 설정하는 SECURE 이벤트와 같은 로그가 추가적으로 더 남을 수 있다.
추후에 보다 자세히 설명하겠지만, SECURE 이벤트의 경우 그 이전에 발생한 INDOOR 이벤트가 마지막 퇴실자(退室者)의 이벤트라는 점, 즉 SECURE 이벤트가 발생하는 경우 현재 내부에는 재실자(再室者)가 없다는 점을 알 수 있다. 즉 SECURE 이벤트는 출입 이벤트 로그를 분석하여 거주자의 프로파일을 추정하는데 제약 조건의 하나로 이용될 수 있다.
도 2를 참고하면, 17시 45분 36초에는 밖에서 안으로 문을 열고 들어오는 이벤트인 TAG 이벤트가 발생한 것을 볼 수 있다. 밖에서 안으로 문을 열고 들어오는 이벤트는 카드키를 이용한 방식의 TAG 이벤트(card key event) 외에도, 비밀번호를 입력하는 방식의 NUM 이벤트(number event), 지문을 이용한 FIN 이벤트(fingerprint event) 등이 있을 수 있다.
도 2에 예시된 이벤트의 명칭이나 기능들은 스마트 도어락에서 발생할 수 있는 이벤트를 설명하기 위한 일 예시일 뿐 발명을 제한하기 위한 것은 아니며, 그 외에도 각각의 도어락의 기능에 따라 다른 명칭의 출입 이벤트 로그들이 발생할 수 있다.
도 2를 참고하면, 22시 16분 33초에 마지막 거주자가 들어오는 이벤트인 TAG 이벤트가 발생한 것을 볼 수 있다. 본 발명에서는 거주자의 수를 추정하기 위하여 일정한 주기마다 출입 이벤트의 로그를 나누고 이를 분석한다. 일반적으로 주기는 하루 단위가 된다.
이하 이해의 편의를 돕기 위해 하루 단위의 시작 시점과 종료 시점은 00시부터 24시까지인 것을 전제로 설명을 계속해 나가기로 한다. 다만, 이는 이해의 편의를 돕기 위한 것일 뿐, 하루 단위의 시작 시점과 종료 시점은 다른 시점을 기준으로 설정할 수도 있다. 예를 들면 새벽 03시를 기준으로 하루 단위를 나누어, 03시 00분 00초부터 다음 날의 02시 59분 59초까지를 하루로 놓고 출입 이벤트 로그를 분석할 수 있다.
도 2에서도 볼 수 있듯이, 일반적으로 출입 이벤트의 로그는 잠을 자고 난 후 아침에는 주로 사람이 나가는 이벤트인 INDOOR 이벤트 위주로, 저녁에는 사람이 들어오는 이벤트인 TAG, NUM, FIN 이벤트 위주로 발생하며, 한낮이나 한밤중에는 출입 이벤트의 로그가 발생하지 않는 시점이 존재한다. 즉 하루동안 두 번의 휴지기가 발생한다.
재실자의 수를 하루 단위로 그래프를 그려보면, 재실자의 수가 점점 낮아지다가 다시 증가하는 V 형태의 그래프가 나타날 것이다. 그러므로 출입 이벤트 로그를 분석할 때, 하루 단위의 주기를 설정하는 시점은 하루동안 사람이 들어오는 이벤트인 TAG, NUM, FIN 이벤트가 주로 발생하는 시점과 사람이 나가는 이벤트인 INDOOR 이벤트가 주로 발생하는 시점 사이의 휴지기를 기준으로 하면 된다.
다시 말해 사람들이 들어와서 잠을 자느라 출입 이벤트의 로그가 발생하지 않는 시점을 이벤트 로그를 분석하는 주기의 시작 시점으로 잡으면 된다. 일반적으로 00시로 설정하면 무난하며, 안전하게는 03시를 기준으로 하루 단위의 출입 이벤트 로그를 분석하면 거주자의 인원수를 정확하게 추정할 수 있다.
재실 패턴 예측 장치(200)의 이벤트 정보 수신부(210)가 도 2에 예시된 것과 같은 출입 이벤트 로그를 수신하며, 이벤트 정보 분석부(220)가 각 이벤트의 속성과 도메인을 할당하여야 한다. 이에 대해서는 도 3a 내지 도 3b에서 살펴보도록 한다.
도 3a 내지 도 3b는 본 발명의 몇몇 실시예에서 사용될 수 있는 이벤트의 속성과 도메인을 설명하기 위한 예시도이다.
도 2에서 예시된 출입 이벤트는 각각의 특징에 따라 속성을 분류할 수 있다. 본 발명에서는 이벤트의 속성을 4가지로 제안한다. 다만, 이는 이해의 편의를 돕기 위한 것일 뿐, 도어락의 기기에 따라서 또는 경우에 따라서 출입 이벤트의 속성은 제안한 4가지 외에도 다른 속성을 가질 수 있다. 이하 본 발명에서 제안하는 이벤트의 4가지 속성은 OU 타입, UO 타입, OO 타입, OV 타입이다.
OU 타입은 출입 이벤트 발생 전에 내부에 사람이 존재하다가(Occupied), 출입 이벤트 발생 후에는 내부의 사람이 외부로 나가 인원 수가 감소했을 수도 있고 그대로 일 수도 있는, 일종의 보류 상태(Unknown)가 되는 경우를 가리킨다. 예를 들어, 내부의 사람이 내부에서 문을 여는 출입 이벤트(INDOOR)가 발생한 경우 OU 타입을 할당할 수 있다.
UO 타입은 출입 이벤트 발생 전에는 내부에 사람이 있는지 여부를 알 수 없지만(Unknown), 출입 이벤트 발생 후에는 내부에 사람이 들어가 내부에 인원이 존재하게 되는 경우(Occupied)를 가리킨다. 예를 들어, 외부에서 사람이 도어락에 비밀번호를 입력하거나 보조 키를 이용하거나 지문을 입력하여 문을 열고 들어오는 출입 이벤트의 경우(NUM, TAG, FIN)에 UO 타입을 할당할 수 있다.
OO 타입은 출입 이벤트 발생 전과 후에 모두 내부에 사람이 존재하는 경우(Occupied)를 가리킨다. 예를 들어, 내부의 사람이 인터폰 등의 도어락 개폐 기능을 이용하여 내부에서 문을 열어주고 외부의 사람이 들어오는 출입 이벤트의 경우 OO 타입을 할당할 수 있다.
OV 타입은 출입 이벤트 발생 전에는 내부에 사람이 존재했으나(Occupied), 출입 이벤트 발생 후에는 내부에 사람이 존재하지 않게 되는 경우(Vacant)를 가리킨다. 예를 들어 내부의 사람들이 장시간 외출하는 경우 보안 잠금 기능을 설정하고 외출할 수 있다. 이 경우 보안 잠금 기능을 설정한 후에는 실내에 사람이 없을 것으로 예상할 수 있으므로 SECURE 이벤트에는 OV 타입을 할당할 수 있다.
도 3b를 참고하면 각 속성에 따른 이벤트의 종류와 도메인(domain)이 예시된 것을 볼 수 있다. 여기서 도메인이란 각각의 이벤트로 인해 발생할 수 있는 재실자 인원의 수의 증감을 말한다. 다만, 도어락의 출입 이벤트는 문이 열렸다 닫혔다는 정보만 알 수 있을 뿐 몇 명이 들어오고 나갔는지는 알 수 없으므로, 도메인은 복수의 값을 가지게 된다.
우선, 안에서 문이 열리고 사람이 나가는 이벤트인 OU 타입의 경우 사람이 감소하는 이벤트이나, 문만 열리고 닫히는 경우일 수도 있고 사람이 1명 또는 2명 또는 그 이상이 나갔을 수도 있다. 이를 도메인으로 표현하면 {-0, -1, -2}로 표현할 수 있다.
물론 2명 이상의 사람이 나갔을 수도 있으므로 -3, -4, -5 와 같은 값이 OU 타입 이벤트의 도메인으로 포함되어야 하나, 대부분 1명 또는 2명 정도가 나가는 점, 도메인의 개수가 많아질수록 재실자의 수를 추정하는데 발생할 수 있는 경우의 수가 많아져서 시간과 비용이 증가하는 점을 고려하여 -2까지만 OU 타입 이벤트의 도메인에 포함하기로 한다.
다음으로, 밖에서 문이 열리고 사람이 들어오는 이벤트인 UO 타입의 경우 사람이 증가하는 이벤트이므로 {+1, +2}의 도메인을 가질 수 있다. 물론 경우에 따라서는 밖에서 문을 열고 사람이 들어오지 않은 채 다시 닫을 수도 있으나, 그러한 경우는 극히 드물 것이므로 +0은 UO 타입 이벤트의 도메인에서 제외하기로 한다.
또한 마찬가지로 UO 타입의 이벤트도 문이 한번 열릴 때 2명 이상의 사람이 들어올 수 있으므로 +3, +4, +5와 같은 값을 도메인으로 가질 수 있으나, OU 타입과 동일한 이유로 연산의 편의를 위해 +2까지만 UO 타입 이벤트의 도메인에 포함하기로 한다.
다음으로, 안에서 문이 열리되 도어락을 직접 조작하여 여는 경우가 아닌, 인터폰 등을 이용하여 도어락을 여는 경우인 OO 타입의 경우 안에서의 조작으로 문이 열리지만 사람이 증가하는 이벤트이므로 {+0, +1, +2}의 도메인을 가질 수 있다.
물론 경우에 따라서 거주자가 도어락을 직접 조작하여 안에서 문을 여는 것이 아니라 인터폰으로 안에서 문을 열고 밖으로 나가는 경우가 있을 수도 있지만, 그런 경우는 극히 드물 것이므로 OO 타입은 +값만 도메인으로 갖는 것으로 한다.
또한 마찬가지로 OO 타입의 이벤트도 문이 한번 열릴 때 2명 이상의 사람이 들어올 수 있으므로 +3, +4, +5와 같은 값을 도메인으로 가질 수 있으나, OU 타입과 동일한 이유로 연산의 편의를 위해 +2까지만 OO 타입 이벤트의 도메인에 포함하기로 한다.
마지막으로 밖에서 외출을 하면서 설정하는 이벤트인 OV 타입의 경우, 도메인으로 {=0}의 값을 가질 수 있다. 앞서 살펴본 OU 타입, UO 타입, OO 타입의 경우 재실자의 수의 증감을 가져오므로 +나 -의 값을 가진 반면, OV 타입의 경우 마지막 퇴실자가 INDOOR 이벤트로 문을 열고 나간 후, 밖에서 도어락을 터치하여 설정하는 기능이므로, 재실자의 수의 증감은 없이 재실자의 수를 0으로 설정하는 =0 만을 도메인으로 가지게 된다.
정리하면 OU 타입 이벤트의 경우 {-0, -1, -2}의 도메인을 가지며, 그 종류는 안에서 사람이 직접 문을 여는 INDOOR 이벤트가 있다. UO 타입 이벤트의 경우 {+1, +2}의 도메인을 가지며, 그 종류는 보조키를 이용한 TAG, 비밀 번호를 입력하는 NUM, 지문을 이용하는 FIN 이벤트가 있다.
OO 타입 이벤트의 경우 {+0, +1, +2}의 도메인을 가지며, 그 종류는 인터폰의 도어락 개폐 기능을 이용하여 안에서 사람이 간접적으로 문을 여는 BUTTUON 이벤트가 있다. 마지막으로 OV 타입 이벤트의 경우 {=0}의 도메인을 가지며, 그 종류는 마지막 퇴실자가 밖에서 설정하는 보안 잠금 기능의 SECURITY 이벤트가 있다.
본 발명에서 제안하는 4개의 속성 중에서 OU 타입은 재실자의 인원의 수가 감소하는 - 이벤트(- event)이며, UO 타입과 OO 타입은 재실자의 인원의 수가 증가하는 + 이벤트(+ event), OV 타입은 재실자의 인원의 수가 0이 되는 제로 이벤트(zero event)이다.
이렇게 각 이벤트의 속성과 도메인을 이용하여, 하루 동안의 출입 이벤트로 인한 재실자의 수를 추정하고 이를 통해서 거주자의 인원 수를 파악할 수 있다. 다만, 도 3b에서 보다시피 도메인의 크기에 따라 경우의 수가 다양해진다. 그러므로 제약 조건을 이용하여 해를 구하더라도 해는 여러 개가 나올 수 있다.
예를 들어, 하루에 10개의 이벤트가 발생하고 도메인의 크기가 평균 3개라 가정해보자. 그러면, 발생할 수 있는 경우의 수는 3의 10승인 59,049가 된다. 59,049나 되는 경우의 수 중에서 제약 조건에 어긋나는 경우를 제외하고, 남은 경우가 제약 조건 충족 문제의 해가 된다.
경우의 수가 많기 때문에 해가 여러 개 나올 수 있으므로, 정확도를 높이기 위하여 거주자의 프로파일을 추정하는 단계를 장기간에 걸쳐서 반복한다. 그러면 해당 도어락에서 발생한 이벤트 로그를 가장 잘 설명할 수 있는 거주자의 수를 알아낼 수 있다.
도 4a 내지 도 4c는 도 2에 예시된 출입 이벤트 로그를 분석하여 재실자의 수를 추정한 결과를 설명하기 위한 예시도이다.
도 4a를 참고하면, 도 2의 출입 이벤트 로그에 대해 00시부터 24시까지의 주기를 기준으로, 속성과 도메인을 할당한 것을 볼 수 있다. INDOOR 이벤트는 OU 타입으로, SECURE 이벤트는 OV 타입으로, TAG 이벤트는 UO 타입으로 속성을 할당하고, 각 속성에 따른 도메인을 할당한다.
실제 각 이벤트로 인해 재실자의 수가 증가되거나 감소되는 경우는 도메인의 값 중에서 하나의 값으로 변화가 발생하게 된다. 이를 트리 구조의 노드를 이용하여 탐색하게 된다. 탐색 과정에서 제약 조건을 적용하여 해가 될 수 없는 노드는 제외한다. 이렇게 해서 각 이벤트로 인한 재실자 수의 증감을 결정하고 이를 변화량이라는 수치로 표시하였다.
예를 들어, 06시 05분 10초에 발생한 INDOOR 이벤트의 경우 사람이 안 나갈 수도 있고, 1명이 나갈 수도 있고, 2명이 나갈 수도 있다. 즉 INDOOR 이벤트의 도메인은 {-0, -1, -2}의 값을 가질 수 있으며, 그 중에서 06시 05분 10초의 이벤트는 -1의 변화량을 가진다. 06시 05분 10초를 기점으로 그 이전에는 5명의 재실자가 있었으나, 그 이후에는 4명의 재실자가 있게 된다.
마찬가지의 과정을 통해서 07시 34분 41초, 07시 46분 19초, 07시 47분 10초, 08시 47분 17초에 1명씩 빠져 나가게 되고, 최종적으로 08시 47분 17초에 나간 마지막 퇴실자가 보안 잠금 기능을 08시 47분 36초에 설정하고 집을 비우게 된다. 도 4a를 참고하면 총 5명의 인원이 살고 있는 집인 것을 알 수 있다.
다시 저녁 시간이 되면, 17시 45분 36초에 들어온 사람부터 시작해서 22시 16분 33초에 마지막 5명째의 사람까지 들어오고 한동안 출입 이벤트 로그가 없는 휴지기가 된다. 즉 가족이 모두 집에 들어와서 수면을 취하는 시간이 된다. 대부분의 일반적인 가정이라면 도 4a에 예시된 패턴과 유사하게 V 자형의 재실 패턴을 보이게 된다.
도 4a를 참고하면, 집안의 사람이 모두 나가게 되면 누적 변화량은 -5가 되며, 그 때의 재실자의 인원 수는 0이 된다. 즉 08시 47분 17초부터 17시 45분 36초까지는 집안에 사람이 아무도 없게 된다. 본 발명에서는 재실자의 인원의 수가 가장 낮은 경우를 0으로 가정하는 제약 조건을 포함하고 있다. 즉 한 주기 동안 한 번은 집 안이 모두 비는 순간이 있음을 가정한다. 이에 대해서는 도 6a 내지 도 6c에서 보다 자세히 설명하기로 한다.
도 4a를 참고하면, 거주자의 수가 5명인 경우 도 2에 발생했던 출입 이벤트 로그로 인한 재실자의 수의 변화를 확인할 수 있다. 이를 계단식 그래프로 표현하면 도 4b와 도 4c와 같다. 도 4b는 재실자의 수의 변화를 표현한 것이고, 도 4c는 그 때의 누적 변화량을 표현한 것이다.
도 4b와 도 4c에서 볼 수 있듯이 재실자의 수와 누적 변화량은 거주자의 수인 5만큼 평행 이동 관계이다. 즉 재실자의 수는 누적 변화량 + 거주자의 수이다. 이는 당연한 것으로, 살고 있는 사람의 수(거주자의 수)에 현재 들어오거나 나간 사람의 수(누적 변화량)를 더하면 현재 집에 있는 사람의 수(재실자의 수)가 된다.
도 4b를 참고하면, 00시부터 06시까지는 5명이 있다가 (정확히는 처음으로 사람이 나가는 06시 05분 10초까지), 09시 조금 전에 사람이 모두 나가고 집이 비는 것을 확인할 수 있다. 그리고 대략 09시부터 18시까지는 집에 사람이 없는 상태로 있다가 18시부터 사람이 다시 들어와서 22시가 되면 모두 들어오고 더 이상의 출입 이벤트가 없는 것을 볼 수 있다.
마찬가지로 도 4c를 참고하면, 대략 09시부터 18시까지는 사람이 모두 나가고 집이 비므로 누적 변화량이 -5의 값을 가지다가 저녁이 되어서 사람들이 다시 돌아오면 누적 변화량이 0이 되고, 거주자가 모두 돌아와서 귀가한 것을 알 수 있다.
도 4b나 4c에서 볼 수 있는 것처럼 일반 가정의 경우 V자 형태로 재실자의 수가 변화하는 패턴을 가지게 된다. 도 4a에서는 각 이벤트에 대해서 도메인 중에 하나의 값으로 변화량을 결정하고 그 때의 재실자의 수를 표로 나타내서 확인해 보았다.
그러나 실제로는 각 이벤트에 대해서 도메인의 크기만큼 경우의 수가 갈라져서 노드가 분화하게 된다. 이때 제약 조건을 적용하여 해가 될 수 없는 노드는 제외하는 방식으로 해를 탐색하게 된다. 이처럼 본 발명에서 제약 조건 충족 문제를 해결하기 위해 제안하는 제약 조건에 대해서 살펴보도록 하자.
도 5a 내지 도 11c는 본 발명의 몇몇 실시예에서 활용될 수 있는 7가지의 제약 조건을 설명하기 위한 예시도이다.
도 5a를 참고하면 첫 번째 제약 조건인 C1을 확인할 수 있다. 도 5a의 식에서 한 주기 동안 발생한 이벤트의 수가 n이며, ai는 각 이벤트로 인한 재실자의 수의 증감을 말한다. 즉 제약 조건 C1은 한 주기 동안 각 이벤트로 인한 재실자의 수의 변화량인 ai를 모두 더하면 그 합은 0이 되는 것을 말한다. 이를 재실자의 수를 기준으로 설명하면 한 주기 동안 재실 상태인 사람의 수의 시작값은 종료값과 같다는 것을 의미한다.
도 5a의 하단을 보면, 도 4a에서 보았던 표에 동그라미가 그려진 것을 볼 수 있다. 우선 재실자의 수를 기준으로 살펴보면 주기인 하루의 시작 시점인 00시 00분 00초에 5명이고, 종료 시점인 24시 00분 00초에 5명으로 그 값이 같은 것을 볼 수 있다. 이를 누적 변화량을 기준으로 살펴보면 하루 동안의 변화량을 누적하여 모두 더하면 24시 00분 00초를 기준으로 0인 것을 확인할 수 있다.
즉 가족 구성원이 하루 동안 들어오고 나갈 수는 있어도, 결국에는 모두 집에 귀가할 것으로 가정한 것이 제약 조건 C1이다. 물론 경우에 따라서는 일부 구성원이 외박 등으로 귀가하지 않는 경우가 있을 수도 있다. 하지만 그런 경우가 일반적이지는 않을 것이므로 이를 제약 조건으로 두고 해를 탐색하도록 한다.
만약 일부 구성원이 외박 등의 사유로 주기인 하루 동안 복귀 하지 않더라도 이는 노이즈(noise)로 보도록 한다. 대신 이러한 경우에는 거주자의 수를 잘못 추정하게 될 것이나, 긴 시간 동안 누적해서 거주자의 수를 추정하면 결국은 노이즈를 상쇄시키고 해를 찾을 수 있다.
도 5b를 참고하면, 제약 조건 C1을 재실자 수의 그래프에서 확인할 수 있다. 재실자의 수인 시작값 5가 종료값인 5와 동일한 것을 볼 수 있다. 집을 나간 구성원이 나중에는 모두 돌아오는 것이 제약 조건 C1이다. 도 5c를 참고하면 한 주기의 마지막에는 누적 변화량의 값이 0인 것을 볼 수 있다.
도 6a를 참고하면 두 번째 제약 조건인 C2를 확인할 수 있다. 도 6a의 식에서 csum(k)는 한 주기 동안 k 번째 출입 이벤트까지의 변화량을 더한 값을 말한다. 그리고 N은 거주자의 수를 말한다. 제약 조건 C2는 csum(k)의 값이 -N인 k가 하나 이상은 존재하는 것을 말한다.
이를 재실자의 수를 기준으로 설명하면, 한 주기 동안 재실자의 수가 0인 순간이 하나 이상 존재하는 것을 말한다. 이를 변화량의 측면에서 살펴보면, 한 주기 동안 각 이벤트로 인한 재실자의 수의 증감을 누적해서 더해 나가면 그 값이 -N인 k가 하나 이상 존재하는 것을 말한다. 쉽게 설명하면 "하루에 한번 이상은 집이 빈다"를 제약 조건 C2로 하였다.
도 6a에서 표를 살펴보면, 08시 47분 17초, 18시 29분 53초에 발생한 이벤트로 인해 재실자의 수가 0이 되는 것을 확인할 수 있다. 또는 누적 변화량이 -5인 것을 확인할 수 있다.
도 6b를 참고하면, 제약 조건 C2를 재실자 수의 그래프에서 확인할 수 있다. 재실자의 수가 0인 구간이 존재하는 것을 확인할 수 있다. 도 5c를 참고하면 한 주기 동안 누적 변화량의 값이 거주자의 수인 -N인 구간이 존재하는 것을 볼 수 있다. 즉 대략 09시부터 18시까지 집이 비는 것을 확인할 수 있다.
물론 제약 조건 C2도 경우에 따라서는 제약 조건 C1처럼 예외에 해당하는 경우가 있을 수도 있다. 예를 들면 구성원 중에 일부가 하루 종일 나가지 않고 집에 있는 경우나, 나간 구성원이 들어온 후에 다른 구성원이 나가거나 하면 집이 비지 않는 경우가 있을 수도 있다.
그러나 이러한 경우도 제약 조건 C1과 마찬가지로 노이즈로 보고 해를 탐색해 나가도록 한다. 일반적으로 하루 동안 집이 한번도 안 비는 경우보다는 집이 한번 이상은 비는 경우가 더 많을 것이므로 하루 동안 집이 한번 이상은 비는 것을 제약 조건 C2로 정하고 해를 탐색하는 것이다.
도 7a를 참고하면 세 번째 제약 조건인 C3를 확인할 수 있다. 도 7a의 식에서 csum(k)는 한 주기 동안 k 번째 출입 이벤트까지의 변화량을 더한 값을 말한다. 그리고 N은 거주자의 수를 말한다. 제약 조건 C3는 모든 k에 대해서 csum(k)의 값이 -N인 이상이고 0 이하인 것을 말한다.
이를 재실자의 수를 기준으로 설명하면, 한 주기 동안 재실자의 수는 0과 거주자의 수인 N 사이이며, 이를 변화량의 측면에서 살펴보면, 한 주기 동안 각 이벤트로 인한 재실자의 수의 증감을 누적해서 더해 나가면 그 값이 -N과 0 사이인 말한다.
도 7a에서 표를 살펴보면, 00시 00분 00초부터 24시 00분 00초까지 재실자의 수는 모두 0부터 5사이의 값을 가지며, 누적 변화량은 -5부터 0 사이의 값을 가지는 것을 확인할 수 있다.
도 7b를 참고하면, 제약 조건 C3를 재실자 수의 그래프에서 확인할 수 있다. 도 7b에서 y축인 재실자의 수를 살펴보면 0과 5 사이의 값을 가지는 것을 확인할 수 있다. 마찬가지로 도 7c를 참고하면 y축인 누적 변화량의 값이 -5부터 0 사이의 값을 가지는 것을 확인할 수 있다.
물론 제약 조건 C1이나 제약 조건 C2와 마찬가지로 제약 조건 C3도 예외인 경우가 있을 수 있다. 예를 들면, 5명이 살고 있는 집에 아침부터 방문객이 찾아온다거나, 또는 가족 구성원인 5명보다 더 많은 7~8명의 방문객이 온 다거나 하면 재실자의 수는 일시적으로 5보다 커질 수 있다. 그러나 이러한 경우가 일반적인 경우는 아닐 것이므로, 재실자의 수는 거주자의 수보다 작은 것으로 가정한다.
이처럼 제약 조건 C1 내지 제약 조건 C3는 예외인 경우가 있을 수도 있으나, 보다 일반적인 경우를 가정하고 제약 조건을 설정한 것이다. 이 경우 예외에 해당하는 날들은 노이즈로 볼 수 있다. 대신 여러 날에 거쳐서 거주자의 수를 추정하면, 노이즈를 무시할 수 있을 정도로 일반적인 경우의 해를 얻을 수 있다. 즉 데이터의 불확실성으로 인해 낮아진 정확도를 데이터의 크기로 보완하는 것이다.
도 8a를 참고하면 네 번째 제약 조건인 C4를 확인할 수 있다. 도 8a의 식에서 vk는 k번째 이벤트를 말하며, A(vk)는 k번째 이벤트의 속성을 의미한다. 즉 k번째 이벤트의 속성이 OV, 다시 말해 k번째 이벤트가 SECURE이면, csum(k)이 -N인 것을 말한다.
이를 재실자의 수를 기준으로 설명하면, OV 이벤트가 발생하면 그 시점의 재실자의 수는 0이다. 이를 변화량의 측면에서 살펴보면, OV 이벤트가 발생하면 그 때까지의 재실자의 수의 증감을 누적해서 더해 나가면 그 값이 -N인 말한다. 쉽게 말하면, "보안 잠금 기능이 활성화 되면 집이 빈 것을 알 수 있다"를 제약 조건으로 표현한 것이 제약 조건 C4이다.
도 8a에서 표를 살펴보면, 08시 47분 36초에 OV 타입의 이벤트인 SECURE 이벤트가 발생한 것을 볼 수 있다. OV 타입의 경우 도메인이 {=0}이므로, 그 시점의 재실자의 수가 0인 것을 확인할 수 있다. 또한 그 시점의 누적 변화량이 -5인 것을 확인할 수 있다.
도 8b를 참고하면, OV 이벤트가 발생한 08시 47분 즈음에 재실자의 수가 0인 것을 볼 수 있다. 마찬가지로 도 8c를 참고하면 OV 이벤트가 발생한 08시 47분 즈음에 누적 변화량의 값이 거주자의 수와 크기가 같은 -5인 것을 볼 수 있다.
도 9a를 참고하면 다섯 번째 제약 조건인 C5를 확인할 수 있다. 도 9a의 식에서 vk는 k번째 이벤트를 말하며, A(vk)는 k번째 이벤트의 속성을 의미한다. 즉 k번째 이벤트의 속성이 OU, OO이면, csum(k-1)이 -N보다 큰 것을 말한다. 즉 안에 사람이 있어야 직접 문을 열거나 인터폰을 작동하여 문을 열 수 있다.
이를 재실자의 수를 기준으로 설명하면, OU 타입, OV 타입의 이벤트가 발생하면 그 이벤트가 발생하기 전에는 사람수가 1 이상이다. 이를 변화량의 측면에서 살펴보면, OU 타입, OV 타입의 이벤트가 발생하면 그 전까지의 재실자의 수의 증감을 누적해서 더해 나가면 그 값이 -N 보다 크다. 쉽게 말하면, "사람이 있어야 문을 안에서 열 수 있다"를 제약 조건으로 표현한 것이 제약 조건 C5이다.
도 9a에서 표를 살펴보면, 06시 05분 10초부터 08시 47분 17초 사이의 INDOOR 이벤트, 그 이후 오후에 간간히 있는 INDOOR 이벤트에서 이벤트 전의 재실자의 수가 1보다 큰 것을 볼 수 있다. 마찬가지로 해당 이벤트가 발생하기 전의 누적 변화량을 살펴보면 -5보다 큰 것을 확인할 수 있다.
도 9b를 참고하면, OU 이벤트가 주로 발생한 오전에는 재실자의 수가 감소해 나가는 것을 볼 수 있다. 최대로 감소해도 재실자의 수가 음수가 될 수는 없으므로, OU 이벤트 발생 전에는 1 이상의 값을 가진다. 마찬가지로 도 9c를 참고하면 OU 이벤트가 주로 발생한 오전에는 누적 변화량의 값이 -5 이상인 것을 볼 수 있다.
도 5a 내지 도 5c에서 살펴본 제약 조건 C1, 도 6a 내지 도 6c에서 살펴본 제약 조건 C2, 도 7a 내지 도 7c에서 살펴본 제약 조건 C3는 예외인 경우가 있을 수도 있으나, 일반적인 경우의 재실 패턴을 기준으로 제약 조건을 설정한 것이다.
그리고 도 8a 내지 도 8c에서 살펴본 제약 조건 C4 및 도 9a 내지 도 9c에서 살펴본 제약 조건 C5는 이벤트의 특성으로 인한 재실 패턴을 기준으로 제약 조건을 설정한 것이다. 제약 조건 C1 내지 제약 조건 C5만으로도 해를 탐색해 나갈 수 있으나, 그 효율을 더 높이기 위해 추가적으로 제약 조건 2개를 더 제안한다. 추가로 제안하는 제약 조건 C6과 제약 조건 C7은 제약 조건 C1에서 파생된 제약 조건이라고 보아도 무방하다.
도 10a를 참고하면 여섯 번째 제약 조건인 제약 조건 C6를 유도하는 과정을 볼 수 있다. 식 1을 살펴보면, 하루 동안 발생한 총 n개의 이벤트 중에서 k+1번째 이벤트부터 n번째 이벤트까지 재실자 수의 증감을 모두 더한 값은 발생할 수 있는 증감의 최소값인 min(Δevent)와 발생할 수 있는 증감의 최대값인 max(Δevent)의 사이를 의미하는 수식이다. 사실 식 1은 당연한 말을 선언적으로 표현한 것에 지나지 않다.
식 1에서 표현한 발생할 수 있는 증감의 최소값인 min(Δevent)과 발생할 수 있는 증감의 최대값인 max(Δevent)을 구체적으로 구하면 식 2와 같다.
식 2를 참고하면 발생할 수 있는 이벤트의 최소값은 재실자의 수가 증가하는 이벤트인 +event로 인한 변동은 최소가 되면서, 재실자의 수가 감소하는 이벤트인 -event로 인한 변동은 최대가 되는 경우이다. 즉 사람은 조금 들어오고 대신 많이 나가는 경우에 해당한다.
또한 식 2를 참고하면 발생할 수 있는 이벤트의 최대값은 재실자의 수가 증가하는 이벤트인 +event로 인한 변동은 최대가 되면서, 재실자의 수가 감소하는 이벤트인 -event로 인한 변동은 최소가 되는 경우이다. 즉 사람은 많이 들어오고 대신 조금 나가는 경우에 해당한다.
이 중에서 식 2의 좌측 부분을 다시 풀어서 쓰면 식 3과 같다. 사람이 들어오는 이벤트인 +이벤트는 도 3b에서 살펴본 것처럼 UO 타입과 OO 타입이 있다. UO 타입의 도메인은 {+1, +2}이고, OO 타입의 도메인은 {+0, +1, +2}이다. 한편 사람이 나가는 이벤트인 -이벤트는 도 3b에서 살펴본 것처럼 OU 타입의 이벤트가 있다. OU 타입의 도메인은 {-0, -1, -2}이다.
사람이 들어오는 이벤트로 인한 재실자의 수의 증가의 최소값인 min(Δ+event)는 UO 타입의 이벤트의 수인 I(A(vi)∈UO)에 UO 타입의 도메인의 최소값인 min(|dUO|)를 곱한 값과 OO 타입의 이벤트의 수인 I(A(vi)∈OO)에 OO 타입의 도메인의 최소값인 min(|dOO|)를 곱한 값을 더하면 된다.
그리고 사람이 나가는 이벤트로 인한 재실자 수의 감소의 최대값인 max(Δ-event)는 OU 타입의 이벤트의 수인 I(A(vi)∈OU)에 OU 타입의 도메인의 최대값인 max(|dOU|)를 곱한 값이다. 여기서 OU 타입의 도메인은 음수만 존재하므로 재실자 수의 감소의 최대값을 구하기 위해 dOU에 절대값을 취하였다.
여기서 식 4를 참고하면, OO 타입의 도메인은 {+0, +1, +2}이므로, OO 타입의 도메인의 최소값인 min(|dOO|)은 0이 된다. 그러면, OO 타입의 이벤트의 수인 I(A(vi)∈OO)에 OO 타입의 도메인의 최소값인 min(|dOO|)를 곱한 값도 역시 0이 되므로 식 3은 식 5와 같은 형태로 다시 쓸 수 있다.
즉, k+1번째 이벤트부터 n번째 이벤트까지 재실자 수의 증감을 모두 더한 값은 UO 타입 이벤트로 인해 사람이 들어오는 수의 최소값과 OU 타입 이벤트로 인해 사람이 나가는 수의 최대값을 더한 값보다 크거나 같다. (다만, OU 타입은 도메인이 음수여서 식 5에서 -로 표현하였다.)
식 5의 부등호 양변에 1번째 이벤트부터 k번째 이벤트까지 재실자의 수의 증감을 나타내는 시그마(Σ)를 모두 더해도 부등호는 그대로 유지된다. 여기서 1번째 이벤트부터 k번째 이벤트까지 재실자의 수의 증감을 나타내는 시그마(Σ)는 csum(k)로 다시 표현할 수 있다.
그리고, 식 7에 볼 수 있는 것처럼 1번째 이벤트부터 n번째 이벤트까지 재실자의 수의 증감을 모두 더한 값은 제약 조건 C1에 의해 0이 되므로 식 6은 최종적으로 식 8과 같은 형태로 다시 쓸 수 있다. 여기서 UO 타입의 도메인은 {+1, +2}로 양수이고, OU 타입의 도메인은 {-0, -1, -2}로 음수이므로 절대값을 없애되 부호를 고려하면 최종적으로 식 9와 같은 형태로 다시 쓸 수 있다.
복잡한 과정을 통해서 식 1을 변형하여 식 9를 얻었지만, 식 9가 의미하는 바는 매우 단순하다. 예를 들어서 거주자의 수를 5명이라 가정하고, 현재 k번째 이벤트까지 종합한 결과 재실자의 수가 3이라 가정해 보자.
현재 이후로 사람이 나가는 INDOOR 이벤트는 없는데, 사람이 들어오는 이벤트인 TAG 이벤트가 5번이 남아 있다고 하면, 남아 있는 이벤트를 고려하면 사람은 5*(+1)+0*(-2)=+5, 즉 최소 5명이 더 증가해야 한다. 하지만 현재 누적 변화량이 -2이므로, 5명이 더 증가하면 누적 변화량의 최종 값은 +3이 되어 0보다 큰 값을 갖게 된다. 이는 현재 재실자의 수인 3이라는 가정이 틀렸거나, 주거자의 수인 5라는 가정이 틀렸다는 것을 의미한다. 이 경우 재실자=3 이나 거주자=5는 해가 될 수 없는 것으로 판단하고 노드를 바로 제외할 수 있다.
식 9가 가지는 장점은 남아 있는 이벤트의 속성이 UO 타입인지, OU 타입인지를 가지고 제약 조건을 적용할 수 있다는 점이다. 즉 트리 구조의 노드를 모두 전개하지 않더라도 해가 될 수 있는지 없는지를 판단할 수 있으므로 제약 조건 충족 문제를 푸는데 소모되는 비용과 시간을 줄일 수 있다.
도 10b를 참고하면, 도 10a를 통해서 정리한 수식을 확인할 수 있다. 이를 재실자의 수를 기준으로 설명하면 특정 시점의 재실자의 수는 그 후 +이벤트로 인해 최소로 사람이 들어온 수에서 그 후 -이벤트로 인해 최대로 사람이 나간 수를 뺀 값은 0보다 작거나 같아야 한다. 이를 변화량의 측면에서 설명하면, k번째 이벤트까지의 누적 변화량에 k번째 이벤트 이후의 누적 변화량의 최소값을 더하면 그 값은 0이하여야 한다.
도 10c를 참고하면 제약 조건 C6을 적용하여 해를 탐색하는 과정을 살펴볼 수 있다. 예를 들어 거주자의 수인 N은 5이고, k번째 이벤트까지의 누적 변화량은 -2 즉, k번째 이벤트 후 재실자의 수는 3이라 가정해 보자. 이 때 남은 이벤트가 2번의 OU 이벤트, 즉 2번의 TAG 이벤트만 남은 경우 트리 구조로 노드를 구성하면서 해를 탐색하면 도 10c와 같다.
우선 각 노드를 동그라미로 표시하되, 앞의 숫자는 현재 재실자의 수, 그 뒤의 괄호로 표시한 수는 그 때의 누적 변화량으로 한다. 이 때 k번째 이벤트의 노드는 3(-2)로 표시할 수 있다. 즉 현재 3명이 남아 있으며, 2명이 나가 있는 상황이다.
이 때 k+1번째의 UO 타입의 노드를 트리 구조로 추가해 보자. UO 타입 이벤트의 경우 도메인이 {+1, +2}이므로 발생할 수 있는 경우의 수는 2가지이다. 즉 사람이 1명 들어오는 경우인 4(-1) 또는 사람이 2명 들어오는 5(0)인 경우이다. 이 때, 아직 한 번의 UO 타입 이벤트가 더 남아 있으므로 k+1번째 이벤트에 그린 2개의 노드 중에서 아래 노드인 5(0) 노드는 트리 노드를 그리지 않더라도 해가 될 수 없는 노드인 것을 알 수 있다.
k+1번째 이벤트까지의 누적 변화량이 0이라고 하면, 그 이후에 한번 더 남아 있는 k+2번째 이벤트로 인한 변화량은 최소값이 +1이므로 0+1을 하면 1로 0보다 큰 값이 되어, 제약 조건 C6에 위배된다. 즉 k번째 이벤트까지의 누적 변화량에 k번째 이벤트 이후의 누적 변화량의 최소값을 더한 값은 0이하여야 하는데 0+1=+1이 나왔으므로 k+1번째 이벤트를 그린 노드 중에서 5(0)은 해가 될 수 없다.
이를 확인해보기 위해 k+1번째 이벤트를 그린 노드 중에서 5(0)에 대해 k+2번째 이벤트인 UO 타입의 이벤트를 노드로 그려보면 6(1)과 7(2)가 되어 거주자 수인 5를 초과하므로 해가 될 수 없는 것을 알 수 있다. 마찬가지로 k+1번째 이벤트를 그린 노드 중에서 4(-1)에 대해서는 k+2번째 이벤트는 5(0)만 가능한 것을 볼 수 있다.
도 10c를 다시 살펴보면 전체 거주자의 수가 5명이고, 현재 남아 있는 사람이 3명이고, 앞으로 사람이 들어오는 이벤트가 2번 남았다고 하면, 각각의 이벤트로 1명씩의 사람이 들어오는 3(-2) > 4(-1) > 5(0)이 해당 출입 이벤트를 가장 잘 설명할 수 있는 해인 것을 알 수 있다.
도 11a는 도 10a의 유도 과정과 유사하게, 제약 조건 C7을 유도하는 과정을 설명하기 위한 도면이다. 우선 도 11a에서 식 1과 식 2는 도 10a와 동일하다.
도 11a에서는 식 2의 우측 부분을 정리한 것이다. 식 2의 우측 부분을 다시 풀어서 쓰면 식 3과 같다. 사람이 들어오는 이벤트인 +이벤트는 도 3b에서 살펴본 것처럼 UO 타입과 OO 타입이 있다. UO 타입의 도메인은 {+1, +2}이고, OO 타입의 도메인은 {+0, +1, +2}이다. 한편 사람이 나가는 이벤트인 -이벤트는 도 3b에서 살펴본 것처럼 OU 타입의 이벤트가 있다. OU 타입의 도메인은 {-0, -1, -2}이다.
사람이 들어오는 이벤트로 인한 재실자의 수의 증가의 최대값인 max(Δ+event)는 UO 타입의 이벤트의 수인 I(A(vi)∈UO)에 UO 타입의 도메인의 최대값인 max(|dUO|)를 곱한 값과 OO 타입의 이벤트의 수인 I(A(vi)∈OO)에 OO 타입의 도메인의 최대값인 max(|dOO|)를 곱한 값을 더하면 된다.
그리고 사람이 나가는 이벤트로 인한 재실자 수의 감소의 최대값인 max(Δ-event)는 OU 타입의 이벤트의 수인 I(A(vi)∈OU)에 OU 타입의 도메인의 최소값인 min(|dOU|)를 곱한 값이다. 여기서 OU 타입의 도메인은 음수만 존재하므로 재실자 수의 감소의 최소값을 구하기 위해 dOU에 절대값을 취하였다.
여기서 식 4를 참고하면, OU 타입의 도메인은 {-0, -1, -2}이므로, OU 타입의 도메인의 최소값인 min(|dOU|)은 0이 된다. 그러면, OU 타입의 이벤트의 수인 I(A(vi)∈OU)에 OU 타입의 도메인의 최소값인 min(|dOU|)를 곱한 값도 역시 0이 되므로 식 3은 식 5와 같은 형태로 다시 쓸 수 있다.
즉, k+1번째 이벤트부터 n번째 이벤트까지 재실자 수의 증감을 모두 더한 값은 UO 타입 이벤트로 인해 사람이 들어오는 수의 최대값과 OO 타입 이벤트로 인해 사람이 들어오는 수의 최대값을 더한 값과 같다.
식 5의 부등호 양변에 1번째 이벤트부터 k번째 이벤트까지 재실자의 수의 증감을 나타내는 시그마(Σ)를 모두 더해도 부등호는 그대로 유지된다. 여기서 1번째 이벤트부터 k번째 이벤트까지 재실자의 수의 증감을 나타내는 시그마(Σ)는 csum(k)로 다시 표현할 수 있다.
그리고, 식 7에 볼 수 있는 것처럼 1번째 이벤트부터 n번째 이벤트까지 재실자의 수의 증감을 모두 더한 값은 제약 조건 C1에 의해 0이 되므로 식 6은 최종적으로 식 8과 같은 형태로 다시 쓸 수 있다. 여기서 UO 타입의 도메인은 {+1, +2}로 양수이고, OO 타입의 도메인도 {0, 1, 2}로 양수이므로 절대값을 없애면 최종적으로 식 9와 같은 형태로 다시 쓸 수 있다.
복잡한 과정을 통해서 식 1을 변형하여 식 9를 얻었지만, 식 9가 의미하는 바는 매우 단순하다. 예를 들어서 거주자의 수를 5명이라 가정하고, 현재 k번째 이벤트까지 종합한 결과 재실자의 수가 3이라 가정해 보자.
현재 이후로 사람이 들어오는 TAG 또는 NUM 이벤트는 없는데, 사람이 나가는 이벤트인 INDOOR 이벤트가 5번이 남아 있다고 하면, 남아 있는 이벤트를 고려하면 사람은 0*(+2)=+0, 즉 최대 0명이 더 증가할 수 있다. 하지만 현재 누적 변화량이 -2이므로, 0명이 더 증가하면 누적 변화량의 최종 값은 -2이 되어 0보다 작은 값을 갖게 된다. 이는 현재 재실자의 수인 3이라는 가정이 틀렸거나, 주거자의 수인 5라는 가정이 틀렸다는 것을 의미한다. 이 경우 재실자=3 이나 거주자=5는 해가 될 수 없는 것으로 판단하고 노드를 바로 제외할 수 있다.
식 9가 가지는 장점은 남아 있는 이벤트의 속성이 UO 타입인지, OO 타입인지를 가지고 제약 조건을 적용할 수 있다는 점이다. 즉 트리 구조의 노드를 모두 전개하지 않더라도 해가 될 수 있는지 없는지를 판단할 수 있으므로 제약 조건 충족 문제를 푸는데 소모되는 비용과 시간을 줄일 수 있다.
도 11b를 참고하면, 도 11a를 통해서 정리한 수식을 확인할 수 있다. 이를 재실자의 수를 기준으로 설명하면 특정 시점의 재실자의 수는 그 후 +이벤트로 인해 최대로 사람이 들어온 수에서 그 후 -이벤트로 인해 최소로 사람이 나간 수를 뺀 값은 0보다 크거나 같아야 한다. 이를 변화량의 측면에서 설명하면, k번째 이벤트까지의 누적 변화량에 k번째 이벤트 이후의 누적 변화량의 최대값을 더하면 그 값은 0이상이어야 한다.
도 11c를 참고하면 제약 조건 C7을 적용하여 해를 탐색하는 과정을 살펴볼 수 있다. 예를 들어 거주자의 수인 N은 5이고, k번째 이벤트까지의 누적 변화량은 -2 즉, k번째 이벤트 후 재실자의 수는 3이라 가정해 보자. 이 때 남은 이벤트가 1번의 OU 이벤트와 1번의 UO 이벤트가 남은 경우 트리 구조로 노드를 구성하면서 해를 탐색하면 도 11c와 같다.
도 11c를 참고하면 k번째 이벤트의 노드는 3(-2)로 표시할 수 있다. 즉 현재 3명이 남아 있으며, 2명이 나가 있는 상황이다. 이 때 k+1번째의 OU 타입의 노드를 트리 구조로 추가해 보자. OU 타입 이벤트의 경우 도메인이 {-0, -1, -2}이므로 발생할 수 있는 경우의 수는 3가지이다. 즉 사람이 아무도 안 나가는 경우인 3(-2), 1명 나가는 경우인 2(-3) 또는 사람이 2명 나가는 경우인 1(-4)이다. 이 때, 아직 한 번의 UO 타입 이벤트가 더 남아 있으므로 k+1번째 이벤트에 그린 3개의 노드 중에서 아래 두 개의 노드인 2(-3), 1(-4) 노드는 트리 노드를 그리지 않더라도 해가 될 수 없는 노드인 것을 알 수 있다.
k+1번째 이벤트까지의 누적 변화량이 -3 이나 -4라고 하면, 그 이후에 한번 더 남아 있는 k+2번째 이벤트로 인한 변화량은 최대값이 +2이므로 -3+2=-1 또는 -4+2=-2로 0보다 작은 값이 되어, 제약 조건 C7에 위배된다. 즉 k번째 이벤트까지의 누적 변화량에 k번째 이벤트 이후의 누적 변화량의 최대값을 더한 값은 0이상여야 하는데 -3+2=-1 또는 -4+2=-2이 나왔으므로 k+1번째 이벤트를 그린 노드 중에서 2(-3), 1(-4)는 해가 될 수 없다.
이를 확인해보기 위해 k+1번째 이벤트를 그린 노드 중에서 2(-3)과 1(-4)에 대해 k+2번째 이벤트인 UO 타입의 이벤트를 노드로 그려보면 각각 3(-2)과 4(-1) 및 3(-2)와 4(-1)이 되어 거주자 수인 5보다 작으므로 해가 될 수 없는 것을 알 수 있다. 마찬가지로 k+1번째 이벤트를 그린 노드 중에서 3(-2)에 대해서는 k+2번째 이벤트는 5(0)만 가능한 것을 볼 수 있다.
도 11c를 다시 살펴보면 전체 거주자의 수가 5명이고, 현재 남아 있는 사람이 3명이고, 앞으로 사람이 나가는 INDOOR 이벤트가 1번, 사람이 들어오는 TAG 이벤트가 1번 남았다고 하면, INDOOR 이벤트로는 안에서 문만 열리고 사람이 나가지는 않고, TAG 이벤트로 2명의 사람이 들어오는 3(-2) > 3(-2) > 5(0)이 해당 출입 이벤트를 가장 잘 설명할 수 있는 해인 것을 알 수 있다.
지금까지 도 5a 내지 도 11c를 통해서 본 발명에서 제안하는 7가지의 제약 조건을 예시와 함께 살펴 보았다. 본 발명에서는 출입 이벤트의 속성과 도메인을 정하고, 도메인에 따라 발생하는 경우의 수를 제약 조건을 이용하여 해결한다. 이 과정을 통해서 거주자의 프로파일을 추정할 수 있다.
도 12는 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 방법을 설명하기 위한 예시도이다.
도 12를 참고하면 도 2의 출입 이벤트 로그를 분석하여 각 이벤트에 대해 속성과 도메인을 할당한 것을 좌측 영역에서 볼 수 있다. 이를 이용하여 거주자의 프로파일을 추정하는 과정은 우측 영역에서 볼 수 있다. 우선 거주자의 수를 1이라고 가정을 한다. 그리고 그 값을 루트 노드로 구성한다.
그 다음에 각 이벤트에 대해서 도메인에 따라 루트 노드에 자식 노드를 추가하여 트리 노드를 구성한다. 만약 해가 되는 노드가 존재한다면 거주자의 수를 1이라 가정한 가정이 참이 될 수도 있다는 뜻이다. 그러나 반대로 해가 되는 노드가 하나도 존재하지 않는다면 거주자의 수를 1이라 가정한 가정이 거짓이라는 뜻이다.
이를 다른 N에 대해서도 반복하여 도 12의 출입 이벤트를 설명할 수 있는 N이 더 존재하는지 확인한다. 그리고 이를 다른 날짜에도 동일하게 반복하여, 거주자의 수가 변하지 않았다는 가정하에 해당 도어락에서 발행한 이벤트들을 가장 잘 설명할 수 있는 N을 거주자의 수로 추정한다.
우선 N을 1이라 가정하면 가장 최초의 루트 노드는 1(0)이 될 것이다. 그 다음으로 1번째 이벤트인 06시 05분 10초의 이벤트를 살펴보면, 그 다음에 이벤트의 속성은 OU 타입으로 도메인을 {-0, -1, -2}의 도메인을 갖는다. 이를 루트 노드 1(0) 아래에 3개의 노드를 경우의 수로 추가한다. 그러면 도 12에서 볼 수 있는 것처럼 1(0), 0(-1), -1(-2)의 노드가 자식 노드가 될 수 있다.
이 중에서 -1(-2)의 노드는 누적 변화량은 -N과 0사이라는 제약 조건 C3에 위배되어 제외된다. 해가 될 수 없는 노드는 도 12에서 점선으로 표시된 것을 확인할 수 있다.
또한 0(-1) 노드는 OU 타입 이벤트 전에는 최소 1명 이상의 사람이 있어야 한다는 제약 조건 C5에 위배되어 제외된다. 즉 2번째 이벤트인 07시 34분 41초의 이벤트도 OU 이벤트이므로 그 전 이벤트에서 사람이 1명 이상 남아 있어야 하므로 0(-1) 노드 역시 제외가 되어 점선으로 표시된다.
즉 거주자의 수인 N을 1명이라고 가정하면 첫 번째 이벤트인 OU 이벤트로는 안에서 문이 열렸다 사람이 나가지는 않고 그대로 닫힌 1(0) 말고는 해가 될 수 있는 노드가 없다.
이번에는 6번째 이벤트인 08시 47분 36초의 SECURE 이벤트를 살펴보자. 해당 이벤트는 속성이 OV 타입으로 도메인은 {=0}을 가진다. 즉 6번째 이벤트 후에는 재실자의 수가 0인 것을 알 수 있다. 이를 노드로 표현하면 도 12의 우측 중간에 표시된 것처럼 0(-1)이다.
다음으로 7번째 이벤트인 17시 45분 36초의 TAG 이벤트를 살펴보면 속성은 UO 타입으로 도메인은 {+1, +2}를 가진다. 그러면 0(-1) 노드의 자식 노드로 1(0)과 2(+1)이 추가될 수 있다. 하지만 노드 2(+1)은 제약 조건 C3에 위배되어 제외된다.
다음으로 8번째 이벤트인 18시 29분 53초의 INDOOR 이벤트를 살펴보면 속성은 OU 타입으로 도메인은 {-0, -1, -2}를 가진다. 그러면 7번째에서 1(0) 노드에 대해 3개의 자식 노드가 추가된다. 그 중에서 -1(-2)는 제약 조건 C3에 위배되어 제외되고, 1(0), 0(-1)만 남는다.
다음으로 9번째 이벤트인 18시 45분 29초의 TAG 이벤트를 살펴보면 속성은 UO 타입으로 도메인은 {+1, +2}를 가진다. 8번째 이벤트의 노드로 1(0), 0(-1) 2개가 남았으므로 이에 대해서 각각 2개의 자식 노드가 더 추가되어 총 4개의 노드가 9번째 이벤트의 노드로 그려진다.
그 중에서 8번째 이벤트의 1(0) 노드의 자식 노드인 2(+1)과 3(+2)는 제약 조건 C3에 위배되어 제외된다. 즉 다시 거슬러 올라가서 8번째 이벤트의 1(0) 노드는 해가 될 수 없는 노드이다. 다음으로 8번재 이벤트의 0(-1) 노드의 자식 노드인 1(0)과 2(+1) 중에서 2(+1) 노드 역시 제약 조건 C3에 위배되어 제외된다.
결과적으로 6번째 이벤트인 08시 47분 36초의 SECURE 이벤트부터 9번째 이벤트인 18시 45분 29초의 TAG 이벤트를 설명할 수 있는 해는 현재까지 0(-1) > 1(0) > 0(-1) > 1(0)뿐이다.
다음으로 10번째 이벤트인 19시 08분 26초의 TAG 이벤트를 살펴보면 속성은 UO 타입으로 도메인은 {+1, +2}를 가진다. 9번째 노드로 1(0)만 살아 남았으므로, 해당 노드에 2개의 자식 노드를 추가해보면, 2(+1)과 3(+2) 나온다. 하지만 두 자식 노드 역시 제약 조건 C3에 위배되어 제외된다. 즉 다시 거슬러 올라가서 9번째 이벤트의 1(0) 노드는 해가 될 수 없는 노드이다.
정리하면 거주자의 수인 N을 1이라 가정하면 도 2의 출입 이벤트를 설명할 수 없다. 즉 1은 해가 될 수 없으므로 X이다. 다음으로 N=2라고 가정을 하고 도 12에서 수행했던 트리 구조의 제약 조건 충족 문제를 반복해서 수행한다. 만약 N=2인 경우에 해가 되는 노드의 경로가 존재한다면, 거주자의 수를 2라고 볼 수도 있다. 다음으로 마찬가지로 N=3이라고 가정하고 반복해서 수행한다.
도 12에서 살펴본 해를 탐색하는 과정을 정리하면 다음과 같다. 우선 거주자의 수로 가정한 임의의 값을 루트 노드로 구성하고, 발생한 출입 이벤트에 따라 가감된 재실자의 수를 도메인을 참고하여 자식 노드로 추가할 수 있다. 이렇게 트리 구조를 구성하면 제약 조건을 적용하여 위배되는 노드를 제외한다. 만약 루트 노드부터 리프 노드까지의 특정 경로에 제외된 노드가 있다면 해당 경로는 해가 될 수 없는 경로이다.
반대로 루트 노드부터 리프 노드까지 특정 경로에 모든 노드가 존재한다면 해당 경로는 해가 될 수 있는 경로이며, 처음에 거주자의 수로 가정했던 임의의 값을 거주자의 수로 추정할 수 있다.
그리고 앞서 살펴본 7가지의 제약 조건을 트리 구조를 기준으로 다시 한번 설명하면 다음과 같다.
제약 조건 C1은 트리 구조의 경로에서, 루트 노드의 값과 리프 노드의 값은 거주자의 수로 가정한 임의의 수로 같음을 의미한다. 다음으로 제약 조건 C2는 트리 구조의 경로에서, 노드의 값이 0인 노드가 하나 이상 존재함을 의미한다. 다음으로 제약 조건 C3는 트리 구조의 경로에서, 모든 노드의 값은 0 이상이고, 거주자의 수로 가정한 임의의 수 이하임을 의미한다.
다음으로 제약 조건 C4는 트리 구조의 경로에서, 특정 노드에 대응되는 이벤트의 속성이 OV 타입이면, 해당 특정 노드의 값은 0임을 의미한다. 또한 제약 조건 C5는 트리 구조의 경로에서, 특정 노드에 대응되는 이벤트의 속성이 OU 타입 또는 OO 타입이면, 해당 특정 노드의 부모 노드의 값은 1 이상임을 의미한다.
다음으로 제약 조건 C6는 트리 구조의 경로에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 자식 노드에서 가감된 재실자 수의 최소값을 더한 값은 0 이하임을 의미한다. 마지막으로 제약 조건 C7은 트리 구조의 경로에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 자식 노드에서 가감된 재실자 수의 최대값을 더한 값은 0 이상임을 의미한다.
도 13은 본 발명의 일 실시예에 따라 거주자의 수를 프로파일링 하기 위해 제약 조건 충족 문제를 반복해서 수행하는 과정을 설명하기 위한 예시도이다.
도 13을 참고하면 2016년 06월 01일부터 06월 30일까지 특정 도어락의 출입 이벤트 로그에 대해서 해가 될 수 있는 N을 찾은 결과를 표로 정리한 것을 볼 수 있다. 예를 들면 06월 01일자의 출입 이벤트는 N이 될 수 있는 값이 1부터 6까지 중에 하나도 없었다. 이처럼 해가 될 수 있는 N이 없는 경우가 얼마든지 있을 수 있다.
이는 제약 조건 C1 내지 제약 조건 C3은 일반적으로 많이 발생하는 상황을 가정하여 제약 조건을 정한 것이므로 예외에 해당하는 경우에는 해석이 안 될 수도 있기 때문이다. 다만 이는 노이즈로 감수하기로 했으므로 06월 01일처럼 해가 없더라도 문제될 것이 없다.
다른 예를 들어 06월 06일의 출입 이벤트를 살펴보면, N이 1, 2, 3, 4, 5 어느 값을 가져도 출입 이벤트 로그의 해가 될 수 있는 것을 볼 수 있다. 06월 06일의 경우 현충일로 휴일이라서 상대적으로 출입 이벤트가 적어 다양한 N이 해가 될 수 있음을 확인할 수 있다.
이렇게 충분한 기간 동안 거주자 프로파일링을 수행하면, 도 13의 맨 아래 합계에서 볼 수 있듯이, N이 5인 경우가 23회로 도어락의 출입 이벤트를 가장 잘 설명할 수 있는 N임을 알 수 있다. 이처럼 도메인을 {0, +1, +2} 또는 {-0, -1, -2}로 설정함으로써 +3 이상이나 -3 이하를 배제하여 발생하는 불확실성, 제약 조건 C1 내지 제약 조건 C3에서 예외가 있음에도 제약 조건으로 설정하여 발생하는 불확실성을 데이터의 크기로 보완하여 정확도를 높일 수 있다.
본 발명의 제약 조건 충족 문제를 이용하여 거주자의 수를 직접 프로파일링 해 본 결과, 30개의 세대(아파트)에서 약 1개월 동안 하루 단위의 데이터를 분석하여 각 세대의 거주자의 수를 96.6% 확률로 추정할 수 있었다. 만약 분석 기간을 1개월에서 더 늘린다면 정확도를 더 높일 수 있을 것이다.
도 14a 내지 도 14b는 본 발명의 일 실시예에 따른 보조 센서를 추가로 더 이용하여 거주자의 프로파일링을 수행하는 과정을 설명하기 위한 예시도이다.
도 1에서 설명을 하면서 재실 패턴 예측 장치(200)는 도어락(100)의 출입 이벤트 외에도 보조 센서(110)로부터 데이터를 더 수신할 수 있다고 설명하였다. 도 14a를 참고하면 도어벨(111)로부터 벨이 눌린 시각을 더 수신하여 분석에 활용하는 것을 볼 수 있다.
만약 밖에서 도어벨(111)이 열리고 곧 이어서 INDOOR 이벤트가 발생하였다면, 이 것은 집 안의 사람이 도어락을 조작하여 직접 문을 열기는 하였으나 나가기 위해서 연 것이 아닌, 외부의 도어벨(111)로 인해 문을 연 것이라는 것을 짐작할 수 있다.
그러므로 도어벨(111)로부터 도어벨(111)이 울린 시간을 수신하여, 도어 벨(111)이 울린 시간으로부터 기 설정된 시간 이내에 INDOOR 이벤트가 발생한 경우에는 해당 INDOOR 이벤트의 도메인을 다르게 설정할 수 있다. 예를 들면, INDOOR 이벤트의 경우 속성은 OU 타입으로 도메인은 {-0, -1, -2}의 값을 가지나 도어벨(111)과 연동하는 경우 특정 INDOOR 이벤트는 도메인을 {-0}으로만 설정할 수 있다.
마찬가지로 도 14b를 참고하면, 입구의 영상을 촬영하는 감시 카메라(113)로부터 영상 데이터를 더 수신하여 거주자 프로파일링에 활용할 수 있다. 감시 카메라를 이용하는 경우, 누가 나갔는지 들어왔는지 확인하는 것은 상당히 어려우나, 몇 명이 나가고 들어왔는지 확인하는 것은 상대적으로 쉽다.
즉 누가 들어가고 나갔는지 확인하기 위해서는 얼굴 인식 알고리즘(face detection algorithm)이 필요하나, 몇 명이 들어가고 나갔는지 확인하기 위해서는 피플 카운팅 알고리즘(people counting algorithm)으로 충분하므로 이를 이용할 수 있다.
감시 카메라(113)가 촬영한 영상을 분석하여 몇 명이 들어오고 나갔는지 확인할 수 있으면 거주자의 프로파일링을 추정하는 과정이 더 단순해 질 수 있다. 도 14b를 참고하면 동일한 INDOOR 이벤트에 대해서도 1명이 나갔는지 2명이 나갔는지 정확히 확인하여 제1 INDOOR 이벤트는 도메인을 {-1}로 다른 제2 INDOOR 이벤트는 도메인을 {-2}로 할당할 수 있다. 마찬가지로 NUM 이나 TAG 이벤트에 대해서도 도메인을 구체적으로 지정하여 할당할 수 있다.
도 12의 해를 탐색하는 과정에서 살펴본 것처럼 도메인의 크기가 크면 클수록 해를 찾는 과정에 소모되는 비용이 커진다. 그러므로, 도 14a 내지 도 14b에서 볼 수 있는 것처럼 보조 센서(110)를 이용하여 각 이벤트의 도메인의 크기를 줄이면 보다 쉽고 정확하게 해를 탐색할 수 있다.
또한 문이 열리고 닫힌 시간을 이용하여 도메인의 크기를 줄일 수도 있다. 예를 들면, 문이 열린 후 닫히기까지의 시간 차이를 구하여, 시간대에 따라 도메인의 크기를 결정할 수 있다. 만약 INDOOR 이벤트로 문이 열렸다 닫힌 시간이 5초 이내라면 {-0, -1}을 도메인으로 INDOOR 이벤트로 문이 열렸다 닫힌 시간이 10초 이내라면 {-0, -1, -2}를 도메인으로, INDOOR 이벤트로 문이 열렸다 닫힌 시간이 10초 이상이라면 {-0, -1, -2, -3}을 도메인으로 할당할 수 있다.
또한 도 14a 내지 도 14b에 예로 든 보조 센서(110) 외에 다양한 보조 센서의 활용도 가능하다. 예를 들면, 홈 네트워크에 연결된 전력계의 수치를 이용하여 사람이 빈 경우의 제약 조건으로 활용할 수도 있다. 예를 들면 전력계의 시간당 전력 소모량이 기 설정된 값 이하이면, 사람이 빈 것으로 보고 제약 조건으로 OV 타입 이벤트가 발생했다고 설정할 수 있을 것이다.
이처럼 보조 센서(110)를 활용하면 제약 조건을 더 추가하거나, 각 이벤트의 속성이나 도메인에 대한 정보로 더 활용할 수 있다. 이를 통해 해를 탐색하는 과정에 소모되는 비용과 시간을 줄이고, 해의 정확도를 더욱 높일 수 있다.
도 15는 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 방법의 순서도이다.
도 15를 참고하면, 이벤트 정보 수신부(210)는 도어락의 이벤트 정보를 수신한다(S1000). 즉 문이 열리고 닫힌 시각, 안에서 열렸는지 밖에서 열렸는지 여부, 밖에서 열린 경우 카드키를 이용하였는지 비밀번호를 입력했는지 지문을 입력했는지 여부 등을 수신할 수 있다. 뿐만 아니라 보조 센서(110)로부터 추가적인 정보를 더 수신하여 분석에 활용할 수 있다.
이벤트 정보 분석부(220)는 수신한 출입 이벤트의 속성을 분류하고, 각 속성에 따른 도메인을 할당한다(S2000). 이 과정에서 보조 센서(110)의 자료를 더 활용할 수 있으며, 문이 열리고 닫힌 시간의 차이에 관한 정보를 더 활용할 수 있다.
거주자 프로파일 추정부(230)에서는 거주자의 수를 N으로 가정하고, 시간 순서에 따라 출입 이벤트의 도메인을 이용하여, 발생할 수 있는 경우의 수를 트리 구조로 표시하고, 제약 조건에 위배되는 노드를 제외하는 방식으로 해를 탐색해 나간다(S300). 다양한 N에 대해서 제약 조건을 적용하여 해가 될 수 있는 N을 확인한다.
상기 S1000, S2000, S3000 단계를 일정 기간 반복해서 수행하면 해가 될 수 있는 N의 분포가 나오며, 그 중에서 가장 많은 횟수로 해가 될 수 있다고 확인된 N을 거주자의 수로 추정할 수 있다(S4000). 이와 같은 과정을 통해 거주자의 수를 정확하게 추정할 수 있고, 또한 일자별 시간별에 따른 재실자의 수의 패턴을 확인할 수 있다. 예를 들면 외벌이 가정인지 맞벌이 가정인지 등과 같은 패턴을 확인할 수 있다.
뿐만 아니라 날씨와 연동하여 날씨에 따른 재실자의 수의 패턴을 확인할 수 있다. 예를 들면, 비가 오는 날에는 외출이 적고, 날씨가 맑은 날에는 외출이 많다 등의 패턴을 확인할 수 있다.
재실 패턴 예측부(240)는 S4000 단계에서 추정한 거주자의 수와 재실 패턴을 이용하여, 오늘의 출입 이벤트를 분석한다. 그러면 현재 재실자의 수를 예측할 수 있다. 이를 이용하여 사용자에게 맞춤 서비스를 제공할 수 있다.
예를 들면 추정된 재실 패턴을 기반으로 수동 조작 없이 자동으로 거주자의 평소 재실 패턴과 다른 이상 패턴이 발생하는 경우 경고(alarm)을 발생시켜 거주자에게 알릴 수 있다. 구체적인 예를 들면, 월요일에는 오후 3시경부터 5시경에는 집에 항상 사람이 없었는데 누군가 들어오는 이벤트가 감지된 경우 등록된 거주자의 전화번호로 문자를 보내고, 이벤트가 발생한 시간대에 감시 카메라에 촬영된 입구의 영상을 전송할 수 있다.
또 다른 예를 들면 거주자의 재실 패턴을 이용하여 홈 네트워크에 연결된 각종 기기를 자동으로 제어할 수 있다. 구체적인 예를 들면 재실 패턴에 따르면 평일 오후 5시 반쯤이면 항상 누군가 들어오는 패턴을 보인다면 돌아오는 시간을 추정하여 자동으로 온도를 조절할 수 있다. 또는 반대로 모두 외출하는 경우에는 자동으로 가스 밸브를 잠그고, 미쳐 끄지 못한 전기 기구를 자동으로 절전 모드로 바꾸는 등의 지능형 서비스를 제공할 수 있다.
도 16a 내지 도 16b는 본 발명의 일 실시예에 따른 재실 패턴을 이용한 맞춤형 서비스를 설명하기 위한 예시도이다.
도 16a 내지 도 16b에는 특정 가정의 주말 재실 패턴을 도시한 그래프를 볼 수 있다. 다소 시간의 차이는 있으나, 해당 가정은 주말에는 오전 10시부터 오후 18시 사이에는 가족 전원이 한번에 나갔다 들어오는 재실 패턴을 보인다고 가정하자. 즉 주말에 외출이 잦은 가정임을 알 수 있다.
이처럼 거주자가 주말에 외출을 자주할 경우 외출에 적합한 장소를 제안할 수 있다. 또한 주말에 외출을 자주하는 거주자에게는 여행 정보 등을 제공할 수 있다. 이처럼 거주자의 프로파일 정보에 맞추어 다양한 행사나 공연 정보의 맞춤형 광고를 제공하여 만족도를 높일 수 있다. 또한 프로파일에 기반하여 유사한 재실 패턴을 가진 집들을 묶어 다른 유사한 거주자들이 선호하는 이벤트나 광고를 추천하여 만족도를 높일 수 있다.
도 17은 본 발명의 일 실시예에 따른 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 장치의 하드웨어 구성도이다.
도 17을 참고하면 도어락의 이벤트 로그를 분석하여 재실 패턴을 예측하는 장치(200)는 하나 이상의 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)을 포함할 수 있다. 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)는 시스템 버스(550)를 통하여 데이터를 송수신한다.
프로세서(510)는 메모리(520)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(520)는 상기 컴퓨터 프로그램을 스토리지(560)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 이벤트 정보 분석 오퍼레이션(521), 거주자 프로파일 추정 오퍼레이션(523) 및 재실 패턴 예측 오퍼레이션(535)을 포함할 수 있다.
이벤트 정보 분석 오퍼레이션(521)은 네트워크를 통하여 도어락(100)과 보조 센서(110)로부터 이벤트 정보를 수신할 수 있다. 수신한 이벤트 정보는 시스템 버스(550)를 통해 스토리지(560)의 이벤트 정보(561)로 저장한다.
이벤트 정보 분석 오퍼레이션(521)은 저장된 이벤트 정보(561)를 메모리(520)로 로드하고, 로드한 이벤트 정보의 속성을 분류하고, 각 속성에 따른 도메인을 할당한다. 이 과정에서 보조 센서(110)의 자료를 더 활용할 수 있다. 각 이벤트의 속성과 도메인에 관한 정보는 시스템 버스(550)를 통해 스토리지(560)의 속성 및 도메인(563)으로 저장한다.
거주자 프로파일 추정 오퍼레이션(523)에서는 거주자의 수를 N으로 가정하고, 시간 순서에 따라 이벤트 정보의 속성과 도메인을 이용하여, 발생할 수 있는 경우의 수를 트리 구조로 표시하고, 제약 조건에 위배되는 노드를 제외하는 방식으로 해를 탐색해 나간다. 다양한 N에 대해서 제약 조건을 적용하여 해가 될 수 있는 N을 확인한다.
또한 거주자 프로파일 추정 오퍼레이션(523)은 제약 조건을 적용하여 해가 될 수 있는 N을 탐색하는 과정을 일정 기간 반복해서 수행하고, 해가 될 수 있는 N의 분포를 얻는다. 이를 이용하여, 그 중에서 가장 많은 횟수로 해가 될 수 있다고 확인된 N을 거주자의 수로 추정한다. 그리고 그 결과를 시스템 버스(550)를 통해 스토리지(560)의 거주자 프로파일(565)로 저장한다.
재실 패턴 예측 오퍼레이션(525)는 거주자 프로파일 추정 오퍼레이션(523)이 생성한 거주자 프로파일(565)를 이용하여 현재 재실자의 수를 예측하고, 시간에 따른 재실자의 수의 변화를 예측한다. 이를 이용하여 다양한 맞춤 서비스를 제공할 수 있다. 예측한 재실 패턴은 시스템 버스를 통해 스토리지(560)의 재실 패턴(567)로 저장한다.
도 17의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (19)

  1. 거주자 프로파일링 장치가, 임의의 수를 대상 공간의 거주자 수로 가정하고, 상기 임의의 수를 트리 구조의 루트 노드로 구성하되, 상기 트리 구조는 상기 대상 공간의 재실자 수의 경우의 수를 가리키는 각각의 노드로 구성되는 것인, 단계;
    상기 거주자 프로파일링 장치가, 출입 이벤트 정보를 이용하여, 발생한 출입 이벤트에 따라 가감된 상기 재실자 수를 상기 루트 노드의 자식 노드로 구성하는 단계;
    상기 거주자 프로파일링 장치가, 상기 트리 구조의 각 노드에 상기 재실자 수에 대한 제약 조건을 적용하여, 상기 루트 노드부터 상기 트리 구조의 리프 노드까지 상기 제약 조건을 만족하는 노드들로 구성된 경로를 탐색하는 단계; 및
    상기 거주자 프로파일링 장치가, 상기 경로가 존재하는 경우, 상기 임의의 수를 거주자 수로 추정하는 단계를 포함하는,
    거주자 프로파일링 방법.
  2. 제1항에 있어서,
    상기 루트 노드의 자식 노드로 구성하는 단계는,
    하루를 주기로 하여, 상기 주기 동안 발생한 출입 이벤트에 따라 가감된 상기 재실자 수를 상기 루트 노드의 하위 노드로 구성하는 단계를 포함하는,
    거주자 프로파일링 방법.
  3. 제1항에 있어서,
    상기 출입 이벤트 정보를 도어락으로부터 제공 받는 단계; 및
    상기 출입 이벤트와 관련된 보조 센싱 정보를 보조 센서로부터 제공 받는 단계를 더 포함하고,
    상기 루트 노드의 자식 노드로 구성하는 단계는,
    상기 보조 센싱 정보를 더 이용하여, 상기 발생한 출입 이벤트에 따라 가감된 재실자 수를 상기 루트 노드의 하위 노드로 구성하는 단계를 포함하는,
    거주자 프로파일링 방법.
  4. 제1항에 있어서,
    상기 루트 노드의 자식 노드로 구성하는 단계는,
    상기 출입 이벤트 정보를 이용하여, 상기 출입 이벤트에 속성과 도메인을 할당하는 단계를 포함하되,
    상기 속성은 사람이 나가는 이벤트인지 들어오는 이벤트인지를 의미하는 것이고,
    상기 도메인은 상기 속성에 따른 재실자 수의 가능한 변화량을 집합의 형태로 표시한 것인,
    거주자 프로파일링 방법.
  5. 제4항에 있어서,
    상기 속성은,
    이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 알 수 없는 상태(unknown)를 의미하는 OU 타입을 포함하고,
    상기 OU 타입의 도메인은,
    사람이 나가는 이벤트이므로 {-0, -1, -2}의 값을 가지는,
    거주자 프로파일링 방법.
  6. 제4항에 있어서,
    상기 속성은,
    이벤트의 발생 전에는 알 수 없는 상태(unknown)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 UO 타입을 포함하고,
    상기 UO 타입의 도메인은,
    사람이 들어오는 이벤트이므로 {+1, +2}의 값을 가지는,
    거주자 프로파일링 방법.
  7. 제4항에 있어서,
    상기 속성은,
    이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 OO 타입을 포함하고,
    상기 OO 타입의 도메인은,
    사람이 들어오는 이벤트이므로 {+0, +1, +2}의 값을 가지는,
    거주자 프로파일링 방법.
  8. 제4항에 있어서,
    상기 속성은,
    이벤트의 발생 후에는 사람이 없는 상태(vacant)를 의미하는 OV 타입을 포함하고,
    상기 OV 타입의 도메인은,
    이벤트의 발생 후에는 사람이 없는 상태의 이벤트이므로 {=0}의 값을 가지는,
    거주자 프로파일링 방법.
  9. 제4항에 있어서,
    상기 출입 이벤트에 속성과 도메인을 할당하는 단계는,
    상기 루트 노드에 상기 도메인의 크기만큼 하위 노드를 추가하는 단계; 및
    상기 추가된 하위 노드의 값은 상기 추가된 하위 노드의 부모 노드의 값에 상기 도메인에 속한 각각의 변화량을 더한 값인,
    거주자 프로파일링 방법.
  10. 제1항에 있어서,
    상기 제약 조건을 만족하는 노드들로 구성된 경로를 탐색하는 단계는,
    상기 트리 구조의 각 노드 중에서 상기 제약 조건에 위배되는 노드는 제외하는 단계; 및
    상기 트리 구조의 루트 노드와 리프 노드 사이의 경로 중에서 제외된 노드가 없는 경로를 상기 제약 조건을 만족하는 경로로 판단하는 단계를 포함하는,
    거주자 프로파일링 방법.
  11. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 루트 노드의 값과 리프 노드의 값은 같다"인,
    거주자 프로파일링 방법.
  12. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 노드의 값이 0인 노드가 하나 이상 존재한다"인,
    거주자 프로파일링 방법.
  13. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 모든 노드의 값은 0 이상이고, 루트 노드의 값 이하이다"인,
    거주자 프로파일링 방법.
  14. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 특정 노드에 대응되는 이벤트의 속성이 OV 타입이면, 해당 특정 노드의 값은 0이다"이고,
    상기 OV 타입은 이벤트의 발생 후에는 사람이 없는 상태(vacant)를 의미하는 것인,
    거주자 프로파일링 방법.
  15. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 특정 노드에 대응되는 이벤트의 속성이 OU 타입 또는 OO 타입이면, 해당 특정 노드의 부모 노드의 값은 1 이상이다"이고,
    상기 OU 타입은 이벤트의 발생 전에는 알 수 없는 상태(unknown)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 것이고,
    상기 OO 타입은 이벤트의 발생 전에는 사람이 있는 상태(occupied)이고, 이벤트의 발생 후에는 사람이 있는 상태(occupied)를 의미하는 것인,
    거주자 프로파일링 방법.
  16. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 하위 노드에서 가감된 재실자 수의 최소값을 더한 값은 0 이하이다"인,
    거주자 프로파일링 방법.
  17. 제10항에 있어서,
    상기 제약 조건은,
    "트리 구조에서, 특정 노드까지 가감된 재실자 수에, 해당 특정 노드의 하위 노드에서 가감된 재실자 수의 최대값을 더한 값은 0 이상이다"인,
    거주자 프로파일링 방법.
  18. 제1항에 있어서,
    기 설정된 기간 동안, 상기 루트 노드로 구성하는 단계, 상기 자식 노드로 구성하는 단계, 상기 탐색하는 단계 및 상기 추정하는 단계를 반복 수행하고,
    상기 기 설정된 기간 동안 가장 많이 거주자 수로 추정된 임의의 수를 거주자 수로 결정하는 단계를 더 포함하는,
    거주자 프로파일링 방법.
  19. 제1항에 있어서,
    상기 추정한 거주자 수를 이용하여, 일자별, 시간별에 따른 재실자 수를 예측하는 단계를 더 포함하는,
    거주자 프로파일링 방법.
KR1020160098169A 2016-08-01 2016-08-01 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치 KR102437138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160098169A KR102437138B1 (ko) 2016-08-01 2016-08-01 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160098169A KR102437138B1 (ko) 2016-08-01 2016-08-01 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20180014602A KR20180014602A (ko) 2018-02-09
KR102437138B1 true KR102437138B1 (ko) 2022-08-29

Family

ID=61199187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160098169A KR102437138B1 (ko) 2016-08-01 2016-08-01 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102437138B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174582B (zh) * 2022-09-06 2022-11-18 中国中金财富证券有限公司 数据调度方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113531A (ja) 2009-11-30 2011-06-09 Secom Co Ltd 警備システム
JP2014183553A (ja) 2013-03-21 2014-09-29 Toshiba Corp 在室確率推定装置およびその方法、ならびにプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013192214A2 (en) * 2012-06-19 2013-12-27 Telogis, Inc. System for processing fleet vehicle operation information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113531A (ja) 2009-11-30 2011-06-09 Secom Co Ltd 警備システム
JP2014183553A (ja) 2013-03-21 2014-09-29 Toshiba Corp 在室確率推定装置およびその方法、ならびにプログラム

Also Published As

Publication number Publication date
KR20180014602A (ko) 2018-02-09

Similar Documents

Publication Publication Date Title
Capozzoli et al. Data analytics for occupancy pattern learning to reduce the energy consumption of HVAC systems in office buildings
Dong et al. Sensor-based occupancy behavioral pattern recognition for energy and comfort management in intelligent buildings
US10771868B2 (en) Occupancy pattern detection, estimation and prediction
Wicaksono et al. Knowledge-based intelligent energy management using building automation system
US10490198B2 (en) Device-specific multi-channel data compression neural network
US20120086568A1 (en) Inferring Building Metadata From Distributed Sensors
Chaki et al. A conflict detection framework for iot services in multi-resident smart homes
CN107463106B (zh) 一种智能家居系统
Zehnder et al. Energy saving in smart homes based on consumer behavior: A case study
EP2903217B1 (en) Building automation method and system
KR102437138B1 (ko) 이벤트 로그를 분석하여 거주자를 프로파일링 하는 방법 및 그 장치
CN105230054B (zh) 一种房间占用状态传感方法及房间占用状态传感装置
Apostolo et al. A unified methodology to predict wi-fi network usage in smart buildings
CN110969514A (zh) 一种基于物联网的租房安防方法和系统
Zhu et al. Modelling method of inter-building movement for campus-scale occupancy simulation: A case study
Lian et al. Recognition of typical environmental control behavior patterns of indoor occupants based on temporal series association analysis
KR100719240B1 (ko) 거주자 관리서비스 제공방법, 거주자 관리서비스에사용되는 시스템 및 거주자 관리서비스 제공방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는매체
Schwartze et al. Facilitating inter-domain synergies in ambient assisted living environments
JP2017084213A (ja) 情報処理装置及び情報処理方法
CN115681604A (zh) 一种基于物联网的智能阀门远程管理系统及方法
Ferrando et al. Pattern recognition and classification for electrical energy use in residential buildings
Gupta et al. Using knowledge discovery for autonomous decision making in smart grid nodes
Ramasamy et al. SMART TOILET: An IoT implementation for optimization of resources
Cammaert Anomaly detection on power signals to monitor behavior
Lu et al. Smart blueprints: how simple sensors can collaboratively map out their own locations in the home

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant