2차원 평면상에서 가장 먼 두 점 구하기

Preview:

Citation preview

가장 먼 두 점

2/ 321

선정배경 –기하알고리즘을배우자

3/ 321

점과점사이의거리

(6, 3)

(1, 1)

4/ 321

점과점사이의거리

5/ 321

점과점사이의거리

5

2Sqrt(25 + 9)

약 5.830951894845301

6/ 321

점과점사이의거리

5

넘나 쉬운 것

7/ 321

점들의집합중가장먼두점

점이 6개다

8/ 321

점들의집합중가장먼두점𝑂(𝑛2)알고리즘?

점이 6개다

9/ 321

점들의집합중가장먼두점

점이 100,000,000개면?

10/ 321

점들의집합중가장먼두점

점이 100,000,000개면?

-넘나어려운것

글쎄요

11/ 321

점들의집합중가장먼두점

점이 많으면 어려운 문제가 된다.

12/ 321

점들의집합중가장먼두점

𝑂(𝑛2) 알고리즘보다 더 쎈

𝑂(𝑛𝑙𝑜𝑔𝑛) 알고리즘이 존재

13/ 321

점들의집합중가장먼두점

𝑂(𝑛2) 알고리즘보다 더 쎈

𝑂(𝑛𝑙𝑜𝑔𝑛) 알고리즘이 존재

- 볼록 껍질 문제로 해결 가능

14/ 321

볼록껍질문제란?

요놈들을감싸는볼록껍질을구하라

15/ 321

볼록껍질문제란?

요놈들을감싸는볼록껍질을구하라

-이렇게만들면됨

16/ 321

볼록껍질문제란?

요놈들을감싸는볼록껍질을구하라

-이렇게만들면됨

어떻게 해야 할까?

17/ 321

볼록껍질문제풀이

Graham scan method (1972년)

𝑶(𝒏𝒍𝒐𝒈𝒏)

18/ 321

볼록껍질문제풀이

Graham scan method (1972년)

𝑶(𝒏𝒍𝒐𝒈𝒏)

19/ 321

볼록껍질문제풀이

무조건외곽이되는점은무엇일까?

Graham scan method

20/ 321

볼록껍질문제풀이

무조건외곽이되는점은무엇일까?

- 그것은상하좌우최외곽에있는점

21/ 321

볼록껍질문제풀이

이점은무조건볼록껍질에포함된다.

22/ 321

볼록껍질문제풀이

선택된점에서모든점사이의각도를구한다.

23/ 321

볼록껍질문제풀이

각도를기준으로이렇게정렬

24/ 321

볼록껍질문제풀이

각도를기준으로이렇게정렬

1

23

4

5

6

7

0

25/ 321

볼록껍질문제풀이

1

23

4

5

6

7

0

26/ 321

볼록껍질문제풀이

1

23

4

5

6

7

0

1

0

Stack

0, 1을 stack에넣음

27/ 321

볼록껍질문제풀이

1

23

4

5

6

7

0

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

28/ 321

볼록껍질문제풀이

23

4

5

6

7

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

29/ 321

볼록껍질문제풀이

23

4

5

6

7

1

0

Stack

이진행은반시계방향인가?

1

0

30/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

반시계방향이니 Stack에현재검사중인번호(2)를

넣음

1

0

31/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

32/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

반시계방향인가?

1

0

33/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

반시계방향이니 Stack에현재검사중인번호(3)를

넣음

1

0

34/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

35/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

반시계방향인가?

1

0

36/ 321

볼록껍질문제풀이

23

4

5

6

7

4

3

2

1

0

Stack

반시계방향이니 Stack에현재검사중인번호(4)를

넣음

1

0

37/ 321

볼록껍질문제풀이

23

4

5

6

7

4

3

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

38/ 321

볼록껍질문제풀이

23

4

5

6

7

4

3

2

1

0

Stack

시계방향인가? -ㅇㅇ

1

0

39/ 321

볼록껍질문제풀이

23

4

5

6

7

4

3

2

1

0

Stack

Stack을 pop

1

0

40/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

Stack을 pop

1

0

41/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

42/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

반시계방향인가?

1

0

43/ 321

볼록껍질문제풀이

23

4

5

6

7

5

3

2

1

0

Stack

반시계방향이니 Stack에현재검사중인번호(5)를

넣음

1

0

44/ 321

볼록껍질문제풀이

23

4

5

6

7

5

3

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

45/ 321

볼록껍질문제풀이

23

4

5

6

7

5

3

2

1

0

Stack

시계방향이다 - Stack을 pop

1

0

46/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

시계방향이다 - Stack을 pop

1

0

47/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자.

1

0

48/ 321

볼록껍질문제풀이

23

4

5

6

7

3

2

1

0

Stack

시계방향이다 - Stack을 pop

1

0

49/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

시계방향이다 - Stack을 pop

1

0

50/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자. –반시계방향

1

0

51/ 321

볼록껍질문제풀이

23

4

5

6

72

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자. –반시계방향

1

0

52/ 321

볼록껍질문제풀이

23

4

5

6

7

6

2

1

0

Stack

Stack에서위에있는 2개의점과현재비교해야

하는점을이어보자. –반시계방향

1

0

53/ 321

볼록껍질문제풀이

23

4

5

6

7

7

6

2

1

0

Stack

검색종료.

1

0

54/ 321

볼록껍질문제풀이

23

4

5

6

7

6

2

1

0

Stack

Stack에있는점을이어보면볼록껍질이완성됨.

1

0

7

55/ 321

볼록껍질문제풀이

23

4

5

6

7

6

2

1

0

Stack

Stack에있는점을이어보면볼록껍질이완성됨.

1

0

7

56/ 321

점들의집합중가장먼두점

23

4

5

6

점들의집합중가장먼두점은볼록껍질을구성하는

점들의집합에존재한다.

1

0

7

57/ 321

점들의집합중가장먼두점

G I F

58/ 321

점들의집합중가장먼두점

23

4

5

6

볼록껍질다각형에서가장먼두점을어떻게찾을까?

1

0

7

59/ 321

점들의집합중가장먼두점

23

4

5

6

볼록껍질다각형에서가장먼두점을어떻게찾을까?

1

0

7

𝑂(𝑛2)알고리즘?

60/ 321

점들의집합중가장먼두점

23

4

5

6

𝑂(𝑛2)이 아니라 𝑂(𝑛)알고리즘이 존재

1

0

7

61/ 321

점들의집합중가장먼두점

Rotating calipers (1978년)

62/ 321

점들의집합중가장먼두점

Rotating calipers (1978년)

rightest

leftest

63/ 321

점들의집합중가장먼두점

rightest

leftest

64/ 321

점들의집합중가장먼두점

rightest

leftest

65/ 321

점들의집합중가장먼두점

수직선

66/ 321

점들의집합중가장먼두점

67/ 321

점들의집합중가장먼두점

각도가 더욱

작은 쪽 직선을 회전

68/ 321

점들의집합중가장먼두점

69/ 321

점들의집합중가장먼두점

70/ 321

점들의집합중가장먼두점

71/ 321

점들의집합중가장먼두점

72/ 321

점들의집합중가장먼두점

한 바퀴 돌면 그만!

73/ 321

점들의집합중가장먼두점

74/ 321

점들의집합중가장먼두점

총 시간복잡도?

𝑛𝑙𝑜𝑔𝑛 + 𝑛𝑙𝑜𝑔𝑛 + 𝑛

𝑂(𝑛𝑙𝑜𝑔𝑛)

75/ 321

응용

othogonal

Bounding box

Bounding box(3D)

76/ 321

응용

othogonal

Bounding box

Bounding box(3D)

77/ 321

응용

Cluster bound

Q&A

Recommended