• 검색 결과가 없습니다.

상호상호 배타적배타적 집합의집합의 처리처리

N/A
N/A
Protected

Academic year: 2022

Share "상호상호 배타적배타적 집합의집합의 처리처리"

Copied!
9
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

- 1 -

상호 상호 배타적 배타적 집합의 집합의 처리 처리

학습목표

• 연결 리스트를 이용한 상호배타적 집합의 처 리 방법을 이해

• 연결 리스트를 이용한 집합의 처리를 위한 연 산들의 수행시간을 분석

(2)

- 3 -

Set의 처리

• 이 장에서는 disjoint set(배타적 집합) 만을 대상으로 한다

– 그러므로 교집합은 없다

• 지원할 연산

– Make-Set(x): 원소 x로만 이루어진 집합을 만든다 – Find-Set(x): 원소 x를 가지고 있는 집합을 알아낸다 – Union(x, y): 원소 x를 가진 집합과 원소 y를 가진

집합의 합집합

• Linked list를 이용하는 방법과 tree를 이용하는 방법이 있다

Linked List를 이용한 처리

• 같은 집합의 원소들은 하나의 linked list로 관리한다

• Linked list의 맨 앞의 원소를 집합의 대표 원소로 삼는다

(3)

- 5 -

a tail

하나의 원소로 이루어진 집합

a b c tail

Linked List로 된 두 집합

(4)

- 7 -

a b c

d e f g h

tail

tail

d e f g h

tail

a b c

(a)

(b)

합집합을 만드는 예

파란색은파란색은변동이변동이생긴생긴간선들간선들

Weight을 고려한 Union

• Linked list로 된 두 집합을 합할 때 작은 집합을 큰 집합의 뒤에 붙인다

– 대표 원소를 가리키는 포인터 갱신 작업을 최소화하기 위한

(5)

- 9 -

Tree를 이용한 처리

• 같은 집합의 원소들은 하나의 tree로 관리한다

– child가 parent를 가리킨다

• tree의 root를 집합의 대표 원소로 삼는다

c

Tree를 이용한 집합 표현의 예

(6)

- 11 -

c

a

h b

e

d f g

c

a

h

b e

d f g

두 집합의 합집합

+

=

a

하나의 원소로 이루어진 집합

(7)

- 13 -

Tree를 이용한 집합 처리 알고리즘

Make-Set(x) ▷ 노드 x를 유일한 원소로 하는 집합을 만든다.

{

p[x] ← x ; }

Union(x, y) ▷ 노드 x가 속한 집합과 노드 y가 속한 집합을 합친다 {

p[Find-Set(y)] ← Find-Set(x) ; }

Find-Set(x) ▷ 노드 x가 속한 집합을 알아낸다.

노드 x가 속한 트리의 루트 노드를 리턴한다.

{

if (x = p[x])

then return x ;

else return Find-Set(p[x]) ; }

연산의 효율을 높이는 방법

• Rank를 이용한 Union

– 각 노드는 자신을 루트로 하는 subtree의 높이를 랭크Rank라는 이름으로 저장한다

– 두 집합을 합칠 때 rank가 낮은 집합을 rank가 높은 집합에

(8)

- 15 -

랭크를 이용한 Union의 예

c

a

e

b h d f

0 0

0

1

1 0

2

c

a

h e b

d f

0 0 0

1 0 1

2

+ =

랭크를 이용한 Union에서 랭크가 증가하는 예

c

a

e

b h d f

1 0

0

2

1 0

2

c

a

h e b

d f

1 0 0

1 0 2

3

+ =

g 0

g 0

(9)

- 17 -

c

a e

h b

d f g

c

a

h e b

d f

g Find-Set(g)

Path Compression의 예

참조

관련 문서

myHadoop은 배치스케줄러를 통해서 마스터 노드와 슬레이브 노드를 할당받고 할당된 노드 위에서 하둡 데몬을 실행하여 하둡 클러스터를 구성하고 사용자는 하 둡 클러스터

포인터 new의 값을 포인터 temp가 가리키고 있는 마지막 노드의 링크에 저장하여, 리스트의 마지막 노드가 노드 new를 가리키게 한다..

또한 초기 경로결정 이후에는 헤더 노드 1이 목적지 노드의 도메인 정보를 캐시에 저장하여 이후의 동일 목적지 노드에 대한 요청에 응답하기 때문에 평균 경로결정 거리는 소스

• 가능성이 높은 수(move)들에 대해서 노드를 생성하여 트리의 탐색 폭을 줄 이고, 트리 깊이를 늘리지 않기 위해 몬테카를로

본 논문에서 제안하는 ACHC(Ant Colony Hierarchical Clustering) 알고리즘은 개미들이그래프의 한 노드에서 다 른 노드로 반복적으로 노드 페로몬 값이 높은 노드를

그리고 각각의 노드 i에 대해 노드 i의 이웃노드인 j와 커뮤니티를 이루도록 노드 i가 속해있던 커뮤니티에서 노드 i를 빼내어 노드 j가 속한 커뮤니티에 속하도록

또한 센서 노드들이 BS로부터 얼마나 떨어져있는지에 따 라 레벨로 구분하고 각 레벨마다 해당 레벨의 데이터를 수집 하기 위한 게이트웨이 노드를 두며 게이트웨이 노드

• 가능성이 높은 수(move)들에 대해서 노드를 생성하여 트리의 탐색 폭을 줄 이고, 트리 깊이를 늘리지 않기 위해 몬테카를로 시뮬레이션을