알고리즘 (3) 썸네일형 리스트형 알고리즘 - 유전 알고리즘 (Meta Heuristic), 최적해 찾기, 금괴 문제 유전 알고리즘 : Meta Heuristic 계열의 알고리즘 다양한 문제에 대해 경험적으로 솔루션을 제시하는 알고리즘 목적 주어진 문제에 대해서 최적의 솔루션을 찾는 것 (즉, 최적해를 찾는 것) 유전 알고리즘은 알고리즘 특성상 과정과 결과 설명이 굉장히 어려움. 무작위성이 존재함 생물학에서 생물들의 생존 법칙인 적자생존을 기반으로 한 알고리즘 환경에 적합한 개체가 살아남는다. 살아남은 개체는 번식을 한다. 살아남은 개체는 각각 부모가 되어 자손을 생성하는데, 자손은 부와 모의 유전자를 받고 때때로 돌연변이 유전자를 받아 다음 세대를 살아간다. → 위의 세 가지를 반복하면 환경에 적합한 개체들이 살아남고 그 개체들이 좋은 솔루션을 제시한다. 알고리즘에 쓰이는 용어와 표현 - 개체 : individual .. 알고리즘 - DFS(깊이 우선 탐색) / BFS(너비 우선 탐색) Python 코드 그래프 탐색 기법 그래프 : 정점(node)와 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조이고, 그래프를 탐색하는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다. DFS(Depth First Search) : 깊이 우선 탐색 BFS(Breadth First Search) : 너비 우선 탐색 DFS(Depth First Search) 최대한 깊이 내려간 뒤, 더 이상 깊이 갈 곳이 없을 경우 옆으로 이동 1. 모든 노드를 방문하고자 하는 경우에 이 방법을 선택함 2. 깊이 우선 탐색(DFS)이 너비 우선 탐색(BFS)보다 좀 더 간단함 3. 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서는 느림 적용 : 미로, 길 찾기, 경로의 특징을 저장해야 하는.. 알고리즘 - Stack, Queue (선형 큐, 원형 큐, 알고리즘 코드) 스택 '먼저 들어간 것이 나중에 나오는 자료구조' Last In First Out (LIFO) 구조이다. 스택은 배열과 연결 리스트로 나타낼 수 있다. 스택의 구성 - 상단 (top) : 스택에서 제일 나중에 입력된 데이터의 위치 - 하단 (bottom) : 스택에서 제일 먼저 입력된 데이터의 위치 - 요소 (element) : 스택에 저장되는 데이터 그 자체 - 공백 (empty stack) : 아무런 데이터도 갖고 있지 않은 스택 스택의 연산 push() : 스택에 데이터를 추가한다. pop() : 스택에서 데이터를 삭제한다. is_empty(s) : 스택이 공백상태인지 검사한다. is_full(s) : 스택이 포화상태인지 검사한다. create() : 스택을 생성한다. peek(s) : 요소를 스택.. 이전 1 다음