탐욕적 기법Greedy Algorithm 수정 2019-11-23

profile acromance 77825215

1강에서 얘기했듯이 T[1..n]에서 P[1..m]이 매칭하는지 검사를 할 경우 P[]를 전처리하여 그 속성을 미리 계산 해놓으면 O(mn)보다 더 좋은 결과를 도출할 수 있습니다. 이제 그 예가 되는 매칭 알고리즘 몇개를 소개하도록 하겠습니다.

K-nearest Neighbors Algorithm은 엄청 간단한 classify 하는 방법입니다.

1장에서 다루는 내용중엔 초등학교나 중학교에서 배운것도 많을겁니다. 차이점이라면그때 배운것보다 더 엄밀하게 배우는 것 뿐입니다.

탐욕적으로(?) 라는 말에 의아하시는 분들께 여기서 탐욕적으로는 현재상황에서 당장 좋은 것만 고르는 것입니다.

정점 i, j 사이의 거리를 d, 거리 테이블을 dist라고 부르겠습니다.

이때는 무조건 제일 왼쪽에 있는 점부터 시작하여 오른쪽으로 길이 L-1인 구간을 다 덮고, 그 오른쪽부터 다시 점을 찾아 덮는 걸 반복하면 됩니다.

퀵 정렬 알고리즘(quick sort algorithm)은 분할 정복 알고리즘(divide and conquer algorithm)중 하나로, 복잡하고 긴 문제들을 나누어 생각한다는 것을 의미합니다.

2. 이 정점의 이웃 정점에 대해 현재의 가격보다 더 싼 경로가 존재하는지 확인합니다. 만약 존재한다면 가격을 수정합니다.

이때는 현재 구간이 [1, 5]니까 그 길이 4를 결과에 더하고, 구간을 다시 이번 선분인 [6, 7]로 초기화합니다.

그리고 우리는 이 새로운 cell을 가장 가까운 cell type으로 분류하는 것이지요

마침내 이 포스트를 끝내게 되었습니다. 코드는 C ++을 사용하는 Sobel Edge Detection Algorithm입니다. 사용해 보십시오. 512 * 512 bmp 이미지에서만 작동합니다.

거의 같은 메커니즘을 가지고 있다고 보셔도 무방합니다.

Genetic algorithm은 진화형태의 최적화 알고리즘으로, 간단하게 컨셉만 얘기해보겠습니다.

Shockable Rhythm인지 Non-Shockable Rhythm인지 재 확인을 하여줍니다.

타잔 알고리즘은 하나의 사이클 집합의 노드들이 같은 부모를 갖게 하여 SCC를 구분합니다.

그러나 다음 번 루프에서는 dist[w] 역시 반드시 갱신될 수밖에 없습니다.

이런 문제를 방지하기 위해서는 22를 딱 한 칸만 이동해줘야합니다.

슬라이딩 윈도우는 어느 순간에도 그 구간의 넓이가 동일하다는 차이점이 있습니다.

이제 막 세 개의 최단경로 알고리즘 중 하나를 배웠지만, 꽤 많은 문제를 푸실 수 있을 겁니다.

지금까지 무지무지 길고긴 잡다한 설명을 따라와주시느라 고생하셨어요. 이제부터 진짜 Watershed Algorithm을 돌립시다! 여기서 주의할 사항은 watershed함수의 첫번째 파라미터로 원본이미지를 넣어줍니다.

Quality가 높으면 높을수록 제대로 가고있다는 뜻으로 해석하면 편합니다.

사실 아예 이전 정보가 없이 푼다는 건 불가능하죠.

시작점인 0번 정점만이... 싸이클에서 도달할 수 없으므로 최단거리가 실수 범위에서 정해지게 됩니다.

우선 Division algorithm을 살펴보면, 한 정수를 또 다른 한 정수로 나누게 되면, 유일한 몫과 나머지가 나온다는 것입니다.

1과 5는 연결되었고, 3, 5, 6의 부모는 모두 1이 됩니다.

이 문제도 정말 정말 유명한 스위핑 문제 중 하나입니다.

마지막으로 이런 증가 경로를 더 찾을 수 있습니다.

왜냐면 모든 간선이 절댓값 최대인 음의 가중치(이 문제에서는 -10000)를 가지고 있다면, N번의 루프 안에 계산 중간값의 절댓값이 4byte 정수형 값을 넘어가버릴 수 있게 됩니다.

moveDown 함수는 i번째 값과 그의 left Child값을 비교하여 만약 lef Child > i노드의 값이라면 j는 l값이 됩니다.

따라서 식 4에 대한 주파수 응답곡선과 Parameter Adaptation Algorithm (PAA)를 통해 모델링한 시스템의 주파수 응답곡선을 그려보면 거의 일치함을 확인할 수 있습니다.

Obstacle Course 문제와 똑같이 풀면 됩니다.

물론 음의 가중치가 있는 그래프에 사용 가능하며, 훗날 MCMF 문제를 풀 때 애용되는 알고리즘입니다.

위의 배열은 40까지 정렬이 완료된 상태입니다.

Infarction을 유발한 혈전이나 색전을 제거하여줍니다.

상위의 visited 배열을 준비해서 방문 안 한 정점이 나타나면 그 정점을 시작점으로 하여 벨만 포드를 한 번씩 돌려주면 그 컴포넌트 안에 존재하는 음의 싸이클은 찾을 수 있을 겁니다.

이상 Banker's Algorithm을 다룬 예제 였습니다.

시작점의 과거로 돌아갈 수 있는지를 묻는 문제입니다.

지금까지 기본적인 정렬들에 대해 알아봤는데요,

지금까지 ACLS의 ACS algorithm에 대해서 간단하게 알아봤습니다:)

따라서 prefix sum을 구한 후, 그 배열에 대고 구간 안에서 값이 같으면서 인덱스 차가 최대인 것을 찾아야 하는데 이는 4 문제와 동치입니다.

Boyer-Moore horspool, 짧게는 호스풀 알고리즘은 보이어-무어와 비슷합니다. 다만 good-suffix heuristic을 사용하지 않습니다.

문제는 N이 미친듯이 크기 때문에, 이분 매칭을 호프크로프트 카프 알고리즘으로 시행해야만 합니다.

강의 수업내용과 <알기쉬운 알고리즘>책을 바탕으로 작성했습니다.

scc
acs
paa
is
profile kse |
오 전 아랍어 전공자인데도 처음 듣네요 ㄷㄷ 알코올은 들어봤어요 ! 대체로 알로 시작하는 단어들이 아랍어에서 온 단어들이 많더라구요
profile 라이 |
분명 뭔가 있긴 있을겁니다. 20,000 년 주기로 태양을 돈다고 해야 수학적으로 맞는다는데 2021년에 NASA 가 쏴올리는 최첨단 telescope 이 있는데 그때 가서 기대해 볼 만 할까요?
profile 베르거 |
태양계에 지구보다 더 큰 제 9행성도 지금 찾는 중이더군요... 왼쪽에 저 외행성들의 변태적인 공전궤도가 오른쪽의 제 9행성의 존재로 인해 생길 수 밖에 없다고 하는거 같은데.. 암튼 두근두근 거리네요 ㅎ
profile 바보 |
천문학 물리학 이런것들을 보면 정말 인류는 대단하단 말 밖에.. 이게 일반인으로서는 도무지 감히 범접할수 없는 분야네요.. 정말 신기합니다.. 100년전의 아인슈타인은 도대체 어떻게 저런 생각을 했는지..
profile 순살돈까스 |
그럼 저 이미지는 데이터로 만들어낸 이미지인가요?? 실제로 관측한건 아닌건가봐요??
profile skkusy9649 |
앜ㅋㅋ 저도 인스타 몇년을 해도 모르겠더라구여... 저분이 컨설팅도 하고 강의도 하고 매우 유명해서 저도 열심히 보려구용ㅎㅎ!!
profile hsyzzang119 |
마자요! 리듬이랑 같은 발음이더라구여 >_< 감사합니다!!
profile 환일 |
리듬! 같은 발음이었군요 첨 알았어요 꿀팁 감사해여
profile kboy15 |
ㅋㅋㅋㅋㅋ방문해주셔서 감사합니다^^ㅋㅋㅋㅋㅋ