알고리즘 개요 - Java 공통 알고리즘
1. 알고리즘 개념
광범위한 알고리즘 정의: 알고리즘은 모델 분석을 위한 실행 가능하고 결정적이며 유한한 규칙 집합입니다.
고전 알고리즘의 특성: 유한성 , 정확성 , 입력 , 출력 및 타당성 .
일반적으로 사용되는 알고리즘에는
递推
,递归
, , , 등 이 있습니다穷举
.贪婪
分治
动态规划
迭代
2. 알고리즘과 관련된 개념
알고리즘 및 공식:
공식은 고정밀 계산 방법이며 알고리즘으로 간주될 수 있지만, 알고리즘이 반드시 공식은 아닙니다.
알고리즘 대 프로그램:
알고리즘과 프로그램은 다릅니다. 프로그래밍 언어는 알고리즘 구현의 한 형태, 즉 도구입니다. 더 많이 사용되는 프로그래밍 언어는 C, C++, Java, Python 등입니다.
알고리즘 및 데이터 구조:
데이터 구조는 특정 개체 데이터를 나타내는 데 사용할 수 있는 데이터의 조직적 형태입니다. 데이터 구조는 알고리즘 구현의 기초입니다.
数据结构 + 算法 + 程序设计语言 = 程序
참고: 알고리즘은 문제를 해결하기 위한 추상적인 방법이자 단계입니다. 동일한 알고리즘은 프로그래밍 언어의 데이터 구조와 문법 구조에 따라 언어마다 구현 형태가 다릅니다.
3. 알고리즘의 성능 평가
- **시간 복잡도:** 일반적으로 알고리즘을 실행하는 데 걸리는 시간으로, 시간이 짧을수록 알고리즘이 더 좋습니다.
- **공간 복잡도:**컴퓨터에서 알고리즘 프로그램을 실행하기 위해 소비하는 저장 공간입니다.
4. 알고리즘 적용 개요
1. 병렬 알고리즘
병렬 알고리즘은 여러 프로세서를 사용하여 공동으로 문제를 해결하는 방법 및 단계로, 실행 프로세스는 먼저 주어진 문제를 가능한 한 독립적인 여러 하위 문제로 분해한 다음 여러 컴퓨터를 사용하여 문제를 해결하는 것입니다. 동시에, 이로써 원래의 문제에 대한 해결책이 최종적으로 획득된다.
划分法
, , , 등은 모두 병렬 알고리즘을 설계하는 데 일반적으로 사용되는 방법 입니다分治法
.平衡树法
倍增法/指针跳跃法
流水线法
破对称法
2. 유전 및 진화 알고리즘
유전 알고리즘(GA)과 진화 알고리즘(EA)은 과학의 교차점의 결과입니다. 유전 및 진화 알고리즘은 유기체의 유전적, 진화적, 돌연변이 특성을 기반으로 자연 진화를 시뮬레이션하여 최적의 솔루션을 얻습니다.
유전 알고리즘(GA)은 1970년대 미국의 존 홀랜드(John Holland)에 의해 처음 제안되었으며, 이 알고리즘은 자연에 존재하는 유기체의 진화 법칙을 기반으로 설계 및 제안되었습니다. 다윈의 생물학적 진화론의 자연선택과 유전적 메커니즘을 모사한 생물학적 진화과정의 전산모델로, 자연진화과정을 모사하여 최적의 해를 찾는 방법이다. 이 알고리즘은 수학적 방법과 컴퓨터 시뮬레이션 작업을 사용하여 문제 해결 과정을 생물학적 진화에서 염색체 유전자의 교차 및 돌연변이와 유사한 과정으로 변환합니다. 더 복잡한 조합 최적화 문제를 해결할 때 일반적으로 일부 기존 최적화 알고리즘보다 더 나은 최적화 결과를 더 빠르게 얻을 수 있습니다. 유전자 알고리즘은 조합 최적화, 기계 학습, 신호 처리, 적응 제어 및 인공 생명과 같은 분야에서 널리 사용되었습니다.
진화 알고리즘 또는 "진화 알고리즘" 은 "알고리즘의 클러스터"입니다. 유전자를 표현하는 다양한 방법, 다양한 교차 및 돌연변이 연산자, 특수 연산자에 대한 참조, 다양한 재생 및 선택 방법 등 많은 변형이 있지만 모두 자연의 생물학적 진화에서 영감을 받았습니다. 전통적인 미적분학 기반 방법과 철저한 방법 및 기타 최적화 알고리즘과 비교하여 진화 컴퓨팅은 견고성이 높고 적용성이 넓은 성숙한 전역 최적화 방법이며 자기 조직화, 자기 적응 및 자기 학습의 특성을 가질 수 있습니다. 문제의 성격에 제약을 받지 않고 기존 최적화 알고리즘으로는 해결하기 어려운 복잡한 문제를 효과적으로 처리합니다.
3. 양자 알고리즘
양자물리학의 발전은 일련의 파괴적인 개념과 방법을 제시해온 현대물리학 분야에서 가장 큰 발전이다. 양자물리학의 발전은 이를 정보이론, 컴퓨팅과 급속하게 결합시켜 양자정보기술, 양자컴퓨팅을 탄생시켰다. 양자컴퓨팅은 양자역학 이론을 기반으로 한 새로운 유형의 계산으로, 양자컴퓨팅의 기초와 원리를 통해 기존 튜링 머신 모델 컴퓨터를 크게 능가합니다.
개발된 양자 알고리즘으로는 양자 쇼어( Shor) 알고리즘, 그로버(Grover) 검색 알고리즘, 호그(Hogg) 검색 알고리즘 등이 있다.