• Tidak ada hasil yang ditemukan

패턴 검출

Dalam dokumen 비영리 - S-Space - 서울대학교 (Halaman 67-73)

패턴 기반 다음 패킷 예측기 컴포넌트는 PATTERNDETECTION

알고리즘을 호출하여 앞서 GROUPING 알고리즘이 생성한 그룹들로부터 패턴들을 찾아낸다. 먼저 본 연구에서 정의한 패턴의 유형에 대해 설명하고 이를 바탕으로 알고리즘을 상세히 설명한다.

모바일 장치에서 수행되는 태스크들은 각기 다양한 패킷 전송 특성을 가지고 있다. 이를 효과적으로 찾아내기 위해 본 연구에서는 단일 전송 요청 그룹과 버스트한 전송 요청 그룹 각각에 대해 세가지 유형의 패턴을 정의한다. 세 가지 유형은 아래와 같다.

(1)주기적 그룹들(periodic groups)

(2)기하 주기적 그룹들(geometric groups) (3)기타 그룹들(other groups)

주기적 단일 전송 요청 그룹들(periodic single tx request groups) 패턴은 다음과 같이 정의된다.

 연속되는 두 그룹의 패킷 전송 요청 발생 시각 간격이 일정한, 동치 관계에 있는 단일 전송 요청 그룹들의 시퀀스 서로 동치 관계에 있는 세 개의 단일 전송 요청 그룹 〈 〉, 〈 〉,

〈 〉가 있고, − = − 를 만족한다고 가정하자. 위의 정의에 따라 이 세 그룹은 단일 전송 요청 그룹들 패턴을 형성한다. 이때, 동치 관계에 대한 정의에 따라 ( ) = = ( )와 ( ) = = ( )를

58

만족한다. 이를 사용하면 이 패턴은 다음과 같이 표현할 수 있다.

( ( ), ( ), )

여기서 는 패턴을 구성하는 그룹들 사이의 고정된 시간 간격

− 이다.

이와 유사하게 기하 주기적 단일 전송 요청 그룹(geometric single tx request group) 패턴을 아래와 같이 정의한다.

 연속되는 두 그룹의 패킷 전송 요청 발생 시각 간격이 기하 급수로 증가하는, 동치 관계에 있는 단일 전송 요청 그룹들의 시퀀스

이 패턴은 다음과 같이 표현할 수 있다.

( ( ), ( ), , , )

여기서 는 시간 간격의 최초 값, 는 지수 값, 는 시간 간격의 최대 값이다.

기타 단일 전송 요청 그룹 패턴은 다음과 같이 정의된다.

 연속되는 두 그룹의 패킷 전송 요청 발생 시각 간격이 불규칙적인, 동치 관계에 있는 단일 전송 요청 그룹들의 시퀀스

이 패턴의 특성을 표현하기 위해, 단일 전송 요청 그룹 〈 〉의 유휴 간격(idle interval)을 다음과 같이 정의한다.

 의 발생 시각 로부터 ( )의 다음 패킷 전송 요청이

발생한 시각까지의 시간 간격

59

이를 바탕으로 기타 단일 전송 요청 그룹들 패턴을 다음과 같이 표현한다.

( ( ), ( ), )

여기서 는 패턴을 형성하는 단일 전송 요청들의 유휴 간격들 중 가장 빈번하게 등장하는 값이다.

같은 방법으로 버스트한 전송 요청 그룹들의 패턴들도 정의할 수 있다. 유사한 내용의 반복 설명을 피하기 위해 구체적인 내용은 기술하지 않는다. 앞서 단일 전송 요청 그룹들의 패턴을 표기할 때와는 달리, ( ) 대신 〈 , , … , 〉을 사용한다. 여기서 유의할 점은, 각 그룹을 구성하는 패킷 전송 요청들 중 가장 먼저 발생한 패킷 전송 요청의 발생 시각을 사용하여 패턴을 검출한다는 점이다.

60

ALGORITHM 3.PATTERNDETECTIONalgorithm for and PATTERNDETECTION( , )

1: ← PeriodicPatternDetection( ) 2: ← ∪ PeriodicPatternDetection( ) 3: ← ∪ GeometricPatternDetection( ) 4: ← ∪ GeometricPatternDetection( ) 5: ← ∪ OtherPatternDetection( ) 6: ← ∪ OtherPatternDetection( ) 7: return

PERIODICPATTERNDETECTION( )

8: ← ∅, 1 …

9: for ← 1 upto

10: if ( ℎ = ) then

11: set 1 … MAX_TIME unmarked 12: for upto

13: if ( is equivalent to ) then 14: set timeConvert( ) marked 15:

16: end if 17: end for

18: for ← MIN_PERIOD upto MAX_PERIOD 19: if (chkInterval( , 1 … ) = ) then 20: ∪ ( ( ), ( ), )

21: break 22: end if 23: end for 24: end if 25: end for 26: return

그림 13. PATTERNDETECTION 알고리즘의 의사 코드.

61

그림 13은 PATTERNDETECTION 알고리즘의 의사 코드를 보여준다.

이 알고리즘은 단일 전송 요청 그룹들의 시퀀스 와 버스트한 전송 요청 그룹들의 시퀀스 를 입력으로 받는다. 그리고 검출해낸 패턴들의 리스트 를 결과로 출력한다. 패턴들을 검출하기 위해 PATTERNDETECTION 알고리즘은 다음 세 가지 세부 알고리즘들을 순차적으로 두 번씩 호출한다.

 PERIODICPATTERNDETECTION

 GEOMETRICPATTERNDETECTION

 OTHERPATTERNDETECTION

본 연구에서는 [6]에서 F. Quan에 의해 제시된 Exhaustive Periodicity Searching 알고리즘의 기본 아이디어를 차용하여 PERIODICPATTERNDETECTION 알고리즘을 제안한다. 제안하는 알고리즘의 입력은 그룹들의 시퀀스이며, 출력은 발견된 패턴들의 리스트이다. 알고리즘 내에 사용되는 은 입력으로 들어온 시퀀스의 길이, 즉 그룹의 개수이다. 그리고 은 패킷 전송 요청이 발생한 시점을 나타내는 표식(marker)들의 배열이다. 배열의 번째 원소에 표시(marking)가 되어있으면 번째 시간 구간에 패킷 전송 요청이 발생했다는 것을 의미한다. 배열 의 모든 원소는 표시되지 않은 상태(unmarked)로 초기화된다.

PERIODICPATTERNDETECTION 알고리즘은 먼저 동치 관계에 있는 그룹들을 찾아서 이들의 발생 시각을 1초 수준의 성긴 해상도를 가지는 시각으로 변환한다. 이러한 변환은 알고리즘의 계산상의 오버헤드를 줄여줄 뿐만 아니라 비결정적(non-deterministic)인 네트워크 지연 시간에 의한 영향도 줄여준다. 만약 그룹의 발생 시각이 , + 1) 구간에 있다면 를 마킹한다. 알고리즘의 11~17번째 줄이 이 과정을

62 담당한다.

동치 관계의 그룹들의 발생 시각 확인 작업이 완료되면, 알고리즘은 배열 에서 마킹된 원소가 주기적으로 등장하는지 확인한다. 이를 위해 chkInterval() 함수를 호출한다. 이 함수는 < 인 모든 양의 정수 에 대해, 아래의 두 가지 조건을 만족하는 어떤 인덱스 가 존재하는 경우 를 반환하며, 존재하지 않는다면 를 반환한다.

여기서 는 어떤 그룹이 주기적으로 발생한다고 판단하는 최소의 반복 횟수이다.

(1) + ∙ is marked

(2)All elements between + ( − 1) ∙ and + ∙ are not marked

만약 주기적으로 발생하는 그룹이 발견되면 알고리즘은 에 패턴을 추가한다. 이상의 과정에 대한 의사 코드는 그림 13의 18~23번째 줄에 나타나 있다.

PATTERNDETECTION 알고리즘이 호출하는 나머지 두 세부 알고리즘 GEOMETRICPATTERNDETECTION과 OTHERPATTERNDETECTION의 논리 흐름도 위에 설명한 PERIODICPATTERNDETECTION 알고리즘과 매우 유사하다. 따라서 본 학위논문에서는 반복을 피하기 위해 이들에 대한 상세한 설명을 생략한다.

63

Dalam dokumen 비영리 - S-Space - 서울대학교 (Halaman 67-73)

Dokumen terkait