입자 떼 방법. 입자 떼 방법 알고리즘의 체계

동물 그룹의 행동을 모델링하여 최적화 문제를 해결할 수 있다는 아이디어를 기반으로 하는 진화 프로그래밍의 가장 간단한 방법인 "입자 떼". 프로그램 코드 및 순서도를 작성하는 알고리즘 체계.

기술 자료에서 좋은 작업을 보내는 것은 간단합니다. 아래 양식을 사용하십시오

연구와 작업에 지식 기반을 사용하는 학생, 대학원생, 젊은 과학자들은 여러분에게 매우 감사할 것입니다.

http://www.allbest.ru/에서 호스팅

소개

라마르크 시대 이후로 살아있는 세계의 발전은 환경의 영향을 받는 개인의 지속적인 개선(적응) 과정으로 여겨져 왔습니다. 개인 모집단의 진화 과정으로 최상의 계획 선택을 모델링하면 진화 과정의 초기 조건을 설정하고 가상 우주를 정보 매체와 같은 생물로 채우고 표시하여 최적화 문제에 대한 해결책을 얻을 수 있습니다. 진화 과정의 목표.

자연의 행동을 모방함으로써 사람은 점점 더 완벽한 최적화 알고리즘을 만듭니다. 예를 들어 유전 코드 또는 새의 행동, 어류 이동 시뮬레이션 또는 금속 냉각 등과 같이 자연의 예가 가장 많이 사용됩니다.

현재 최적화 알고리즘은 비용뿐만 아니라 지속적으로 부족한 시간을 절약할 수 있기 때문에 생산 및 비즈니스에서 널리 사용됩니다.

생산에서 최적화 덕분에 기계 가동 중지 시간, 창고 넘침 또는 고장 발생 시 예비 부품을 다른 기계로 리디렉션하는 것과 같은 많은 문제가 해결됩니다.

이 작업을 위해 "입자 떼" 최적화 방법이 선택되었습니다. 이 방법의 알고리즘은 단순성과 속도로 인해 계획 문제에 매우 유망한 것으로 간주됩니다.

1 . 문제의 공식화

1.1 수학적 모델

입자군집법은 90년대 중반에 등장한 가장 간단한 진화 프로그래밍 방법으로, 동물 무리의 행동을 모델링하면 최적화 문제를 풀 수 있다는 발상을 바탕으로 한다. 이 방법은 무리를 형성할 때 새가 특정 "중력" 중심으로 이동하여 점차 비행 속도를 늦추는 경향이 있다는 사실에 기반합니다.

무리가 음식을 찾으면 무리의 구성원은 주변 지역을 확인하고 무리를 독립적으로 이동합니다. 각 대표는 운동에 어느 정도의 자유도 또는 무작위성을 가지고 있어 축적된 음식을 찾을 수 있는 기회를 제공합니다. 따라서 조만간 그들 중 한 명이 먹을 수 있는 것을 발견하고 무리의 일부가 되어 다른 사람들에게 알릴 것입니다. 그런 다음 나머지는 식량 공급원에 접근 할 수 있으며 이미 각 대표는 자유도와 움직임의 무작위성 덕분에 새로운 식량 축적을 찾을 수 있습니다.

이 알고리즘의 구현에서 다차원 검색 공간은 입자 떼(기본 솔루션)로 채워집니다. 공간의 입자 좌표는 최적화 문제의 솔루션을 고유하게 결정합니다. 좌표 외에도 각 입자는 이동 속도와 가속도로 설명됩니다. 움직이는 과정에서 입자는 솔루션 공간을 "빗질"하여 나머지 입자가 다음 단계로 돌진하는 현재 최적을 찾습니다. 각 입자는 최적의 위치를 ​​기억하며, 데이터는 이 값에 가까운 이웃 입자로 전송됩니다.

임의의 구성 요소를 검색 프로세스에 도입하기 위해 "미친" 입자를 포함할 수 있으며, 그 동작 법칙은 나머지 동작 법칙과 다릅니다.

2 . 알고리즘 구현

2.1알고리즘의 구조

알고리즘의 체계는 다음과 같습니다.

1. 입자의 초기 "무작위" 모집단이 생성됩니다.

2. 각 입자에 대해 목적 함수가 계산됩니다.

3. 목적 함수 측면에서 가장 좋은 입자는 "무게 중심"으로 선언됩니다.

4. 모든 입자의 속도 벡터는 이 "중심"으로 돌진하지만 입자가 중심에서 멀어질수록 가속도가 커집니다.

5. 솔루션 공간에서 입자의 새로운 좌표 계산이 수행됩니다.

6. 2-5단계는 지정된 횟수만큼 또는 정지 조건이 충족될 때까지 반복됩니다.

7. 마지막 "무게 중심"이 발견된 최적 솔루션으로 선언됩니다.

2. 2 코드프로그램들

#포함

#포함

#포함

#포함

상수 정수 n=200;

상수 정수 m=200;

int i, j, k, t=200;

더블 F(더블 엑스)

return pow(pow(x, 3) - 125.2);

(더블 V[n] [m];

더블 lower_limit=1, upper_limit=300;

double best_pos[n] [m];

이중 셀[n][m]; // 유전자형 배열

더블 best_cel=1000; // 최상의 전역 값

const double C1=0.7, C2=1.2, w=0.93;

더블 **X=새로운 더블*[n];

for (i=0; 나는

X[i]=새로운 더블[m];

srand(시간(NULL));

// 파티클의 위치와 속도 초기화

for (i=0; 나는

for (j=0; j

X[i] [j]=lower_limit + (upper_limit - lower_limit)*rand()/RAND_MAX;

// 최악의 입자 유전자형으로 초기화

best_pos[i][j]=1000;

(k=0; k

// 유전자형 배열 채우기

for (i=0; 나는

for (j=0; j

// 현재 유전자형 결정

cel[i][j]=F(X[i][j]);

// 각 입자에 대한 최상의 유전자형 값을 저장합니다.

if (셀[i][j]

best_pos[i][j]=셀[i][j];

if (best_pos[i][j]

best_cel=best_pos[i][j];

printf("%f\n",x);

// 입자 속도 및 위치 업데이트

for (i=0; 나는

for (j=0; j

R1 = 1.*rand()/RAND_MAX;

R2 = 1.*rand()/RAND_MAX;

V[i] [j] = w*V[i] [j] + C1*R1*(best_cel - X[i] [j]) + C2*R2*(best_pos[i] [j] - X[i ][제이]);

X[i] [j] = X[i] [j] + V[i] [j];

2.3 알고리즘 블록 다이어그램

http://www.allbest.ru/에서 호스팅

http://www.allbest.ru/에서 호스팅

3 . 최적화 알고리즘의 복잡도에 대한 이론적 추정

알고리즘의 복잡성에 대한 이론적 평가를 위해서는 이 알고리즘을 사용하여 문제를 해결하기 위해 수행해야 하는 기본 작업의 수를 결정해야 합니다.

기본 연산이란 주어진 언어의 기본 구성 형태로 표현될 수 있는 연산을 의미합니다(반드시 단일 기계 명령어 형식일 필요는 없음). 즉, 다음은 하나의 기본 연산으로 간주됩니다.

1) 할당 연산 ab;

2) 배열 a[i]를 인덱싱하는 작업;

3) 산술 연산 *,/,-,+;

4) 비교 연산< b;

5) 논리 연산 or, and, not.

for 루프는 기본 연산이 아닙니다. 다음과 같이 나타낼 수 있습니다.

따라서 루프 구성에는 2*N 기본 작업이 필요합니다.

에프 "주기" = 2* N+ N* 에프 사이클 바디.

따라서 프로그램에 대해 다음을 얻습니다.

F=9+ // 상수

2*200+200*(2*200+(8+6)*200)+ // 위치 및 속도 초기화

2*200+200*(2*200+200*(2*200+200*(6+20))+ // 유전자형과 최상의 값의 배열 채우기

2*200+200*(2*200+200*(4+4+10+2+16)) // 속도 및 위치 업데이트

이론적 계산 결과, 이 프로그램의 복잡도는 F= 528800809 기본 연산이었습니다.

결론

프로그램 알고리즘 모델링

최근 자연을 모방한 새로운 알고리즘이 많이 등장하기 시작했지만, 모든 알고리즘이 이러한 단순한 구현과 아이디어의 독창성을 자랑할 수 있는 것은 아닙니다. 입자의 무작위 분포와 움직임의 무작위성으로 인해 로컬 옵티마를 피하면서 여러 반복에서 최적의 솔루션을 찾을 확률이 매우 높습니다.

이러한 알고리즘의 추가 개발은 일반적으로 최적화 및 개발을 위한 새로운 기술의 핵심입니다.

사용된 소스 목록

1. 울리야노프 M.V., 셰프투노프 M.V. 수학적 논리와 알고리즘 이론, 파트 2: 알고리즘 이론. - M.: MGAPI, 2003. - 80p.

2. "수학적 논리 및 알고리즘 이론" 분야에 대한 강의 요약.

3. 전역 최적화 알고리즘 - 이론 및 응용.

4. http://ru.wikipedia.org

Allbest.ru에서 호스팅

유사한 문서

    선형 계획법 문제의 특징. 선형 프로그래밍 문제를 해결하기 위한 심플렉스 방법. 언어, 프로그래밍 도구, 식별자 목록 및 알고리즘 순서도 선택에 대한 정당성. 프로그램의 논리적 체계.

    논문, 2011년 8월 13일 추가됨

    3차원 그래픽에서 입자의 역학을 시뮬레이션할 수 있는 라이브러리 개발. 개발 수단 및 방법의 선택. 파티클 시스템 모델링을 위한 옵션. 버텍스 셰이더에서 모델링. 파티클 시스템 및 PSBehavior 클래스의 다이어그램.

    기말 보고서, 2016년 2월 7일 추가됨

    기본 분석 관계. 문제 해결을 위한 블록 다이어그램 및 알고리즘. 알고리즘의 성능을 수동으로 확인합니다. 변수 식별 테이블. 입력 및 출력 인쇄 형식. 프로그램 개발 및 디버깅. 프로그램 작업 지침.

    기말 보고서, 2012년 2월 13일 추가됨

    선형 프로그래밍 및 최적화의 개념. MathCAD 시스템 작업의 기초. 사용자 인터페이스, 입력 언어 및 데이터 유형. 컴퓨터 수학적 모델링의 단계. MathCAD 프로그램을 사용하여 최적화 문제를 해결하는 예입니다.

    기말 보고서, 2011년 10월 16일 추가됨

    MatLab 프로그래밍 환경에서 골든 섹션 방법을 사용하여 1차원 최적화(주어진 함수의 최소값과 최대값 찾기) 문제를 해결하기 위한 프로그램 생성, 알고리즘의 흐름도 구성 및 연구된 함수의 그래픽 표현.

    초록, 2010년 6월 14일 추가됨

    델파이 프로그래밍 시스템, 그 특성. 교육 프로그램의 기본 요구 사항. 프로그램 "수학. 1학년" 알고리즘의 블록 다이어그램을 작성합니다. 교육 프로그램에서 해결해야 할 작업 유형. 시스템 작동에 대한 설명, 지침.

    기말 보고서, 2015년 6월 17일 추가됨

    어닐링 알고리즘을 사용한 문제 솔루션의 최적화. 목적 함수로서의 최적화 이론 분석. 경사하강법. 어닐링 알고리즘의 변수 및 설명. 여행하는 세일즈맨 문제를 그래프로 표현. 문제를 변수 및 솔루션으로 축소.

    기말 보고서, 2015년 5월 21일 추가됨

    하전 입자의 움직임에 대한 수학적 모델 구성, 컴퓨터를 사용하는 알고리즘 언어로 구현. 주제 영역에 대한 설명입니다. 두 개의 반대로 하전된 입자의 상호 작용 시뮬레이션. 프로그램 결과, 사용자 가이드.

    기말 보고서, 2015년 2월 26일 추가됨

    가우스 알고리즘을 사용한 선형 대수 방정식 시스템(SLAE)의 행렬 변환. 간단한 반복 방법으로 문제를 해결합니다. Turbo Pascal 프로그래밍 언어로 구현된 SLAE 해결을 위한 프로그램의 블록 다이어그램 및 텍스트 작성.

    기말 보고서, 2013년 6월 15일 추가됨

    파스칼은 프랑스의 수학자이자 철학자인 블레즈 파스칼의 개발 역사와 기능적 특징을 따서 명명된 전문 프로그래밍 언어입니다. 2차원 배열을 사용하여 솔루션의 흐름도를 그리는 문제입니다.

MFR은 입자라고 하는 가능한 솔루션의 모집단을 유지하고 간단한 공식에 따라 솔루션 공간에서 이러한 입자를 이동하여 기능을 최적화합니다. 움직임은 입자가 더 유리한 위치를 찾을 때 끊임없이 변화하는 이 공간에서 발견되는 최상의 위치의 원칙에 따라 달라집니다.

연산

허락하다 에프: ℝ N→ ℝ - 최소화할 목적 함수, 에스- 스웜의 입자 수, 각 입자는 좌표와 연관됨 엑스나는 ∈ ℝ N솔루션 공간 및 속도 V나는 ∈ ℝ N. 또한 하자 i는 입자의 가장 잘 알려진 위치입니다. , ㅏ g전체적으로 떼의 가장 잘 알려진 상태입니다. 그러면 입자군집법의 일반적인 형태는 다음과 같다.

  • 모든 입자에 대해 = 1, …, 에스하다:
    • 랜덤 벡터를 사용하여 입자의 초기 위치 생성 엑스나는 ~ (블로, 위로) 다차원 균일 분포를 갖는다. 블로그리고 위로각각 솔루션 공간의 하한 및 상한입니다.
    • 가장 잘 알려진 입자 위치를 초기 값에 할당합니다. 나는 ← 엑스나 .
    • 만약 ( 에프(나)< 에프(g)) 그런 다음 떼의 가장 잘 알려진 상태를 업데이트합니다. g나 .
    • 입자 속도 값 지정: V나는 ~ (-(위로-블로), (위로-블로)).
  • 중지 기준이 충족될 때까지(예: 주어진 반복 횟수 또는 목적 함수의 필수 값에 도달) 다음을 반복합니다.
    • 모든 입자에 대해 = 1, …, 에스하다:
      • 랜덤 벡터 생성 아르 자형피, 아르 자형그~ (0,1).
      • 입자 속도 업데이트: V나는 ← 승 V i + φp 아르 자형 p×( 나- 엑스 i) + φg 아르 자형 g×( g-엑스 i) 여기서 연산 ×는 성분별 곱셈을 의미합니다.
      • 변환으로 입자 위치 업데이트 엑스 i를 속도 벡터로: 엑스나는 ← 엑스내가 + V나 . 이 단계는 목적 함수 값의 개선과 관계없이 수행됩니다.
      • 만약 ( 에프(엑스나)< 에프( i)) 그런 다음 다음을 수행하십시오.
        • 가장 잘 알려진 입자 위치 업데이트: 나는 ← 엑스나 .
        • 만약 ( 에프(나)< 에프(g)) 그런 다음 전체적으로 가장 잘 알려진 군집 상태를 업데이트합니다. g나 .
  • 지금 g발견된 최고의 솔루션을 포함합니다.

매개변수 ω, φ p 및 φ g는 계산기에 의해 선택되며 전체 방법의 동작 및 효율성을 결정합니다. 이러한 매개변수는 많은 연구의 주제입니다. (아래 참조).

매개변수 선택

입자 무리 방법에 대한 최적 매개변수의 선택은 상당한 수의 연구 논문의 주제입니다. 예를 들어 Shea 및 Eberhart, Carlisle 및 Dozer, van den Berg, Clerk 및 Kennedy, Trelea, Bratton 및 Blackwell의 작업을 참조하십시오. 에버스.

방법의 매개변수를 선택하는 간단하고 효과적인 방법은 Pedersen과 다른 저자에 의해 제안되었습니다. 그들은 또한 다양한 최적화 문제와 매개변수로 수치 실험을 수행했습니다. MFR 매개변수를 "조정"하는 데 다른 최적화 알고리즘이 사용되기 때문에 이러한 매개변수를 선택하는 기술을 메타 최적화라고 합니다. 최고의 성능을 가진 MFM 입력 매개변수는 문헌에 설명된 주요 원칙과 상반되는 것으로 입증되었으며 종종 간단한 MFM 사례에 대해 만족스러운 최적화 결과를 제공합니다. 구현은 SwarmOps 오픈 소스 라이브러리에서 찾을 수 있습니다.

알고리즘 옵션

방법의 성능을 향상시키기 위해 입자 무리 알고리즘의 새로운 변형이 지속적으로 제안되고 있습니다. 이러한 연구에는 몇 가지 경향이 있으며, 그 중 하나는 다른 알고리즘과 함께 MFR을 사용하여 하이브리드 최적화 방법을 만들 것을 제안합니다. 예를 들어 참조하십시오. 또 다른 추세는 예를 들어 뒤로 물러나거나 입자 운동의 순서를 변경하여 어떤 방식으로든 방법의 속도를 높이는 것입니다(이 정보 참조). 최적화 프로세스 중에 MFR의 동작 매개변수를 조정하려는 시도도 있습니다.

"Particle Swarm Method" 기사에 대한 리뷰 쓰기

메모

  1. (1995) "입자 무리 최적화". 신경망에 관한 IEEE 국제 회의 간행물 IV: 1942-1948.
  2. (1998) "수정된 입자 무리 최적화 프로그램". IEEE International Conference on Evolutionary Computation의 절차: 69-73.
  3. 무리 지능. - 모건 카우프만, 2001.
  4. 폴리, R. (2007). "". 기술 보고서 ​​CSM-469(영국 에식스대학교 컴퓨터과학과).
  5. 폴리, R. (2008). "". : 1-10. DOI:10.1155/2008/685175.
  6. (1998) "입자 떼 최적화에서 매개변수 선택". 진화 프로그래밍 VII 절차(EP98): 591-600.
  7. (2000) "입자 떼 최적화에서 관성 가중치와 수축 계수 비교". 진화 계산에 관한 회의 절차 1 : 84-88.
  8. (2001) "기성품 PSO". Particle Swarm Optimization Workshop 절차: 1-6.
  9. 반 덴 버그 F. Particle Swarm Optimizer 분석. - 프리토리아 대학교, 자연 및 농업 과학부, 2001.
  10. (2002) "입자 무리 - 다차원 복합 공간에서의 폭발, 안정성 및 수렴". 진화 계산에 대한 IEEE 트랜잭션 6 (1): 58-73.
  11. Trelea, I.C. (2003). "입자 무리 최적화 알고리즘: 수렴 분석 및 매개변수 선택". 정보 처리 편지 85 : 317-325.
  12. (2008) "단순화된 재조합 PSO". 인공 진화 및 응용 저널.
  13. G. 에버스. - The University of Texas - Pan American, 전기공학과, 2009.
  14. 페더슨 M.E.H.. - University of Southampton, 공학 과학부, 전산 공학 및 디자인 그룹, 2010.
  15. Pedersen, M.E.H.; 치퍼필드, A.J. (2010). "". 응용소프트컴퓨팅 10 : 618-628.
  16. (2002) "수명 주기 모델: 입자 떼 최적화, 유전 알고리즘 및 언덕 등반가 결합". Nature VII(PPSN)의 병렬 문제 해결 절차: 621-630.
  17. (2010) "클러스터 분석을 위한 PSO, ACO 및 k-평균에 기반한 효율적인 하이브리드 접근법". 응용소프트컴퓨팅 10 (1): 183-197.
  18. (2002) "자기 조직화 임계성을 가진 입자 군집 옵티마이저 확장". 진화 계산(CEC)에 관한 제4차 회의 절차 2 : 1588-1593.
  19. Xinchao, Z. (2010). "수치적 최적화를 위한 교란된 입자 군집 알고리즘". 응용소프트컴퓨팅 10 (1): 119-124.
  20. (2009) 적응형 입자 군집 최적화. 시스템, 인간 및 사이버네틱스에 대한 IEEE 트랜잭션 39 (6): 1362-1381.

연결

  • . 뉴스, 사람, 장소, 프로그램, 기사 등 특히 현재 MFR 표준을 참조하십시오. (영어)

Particle Swarm 방법을 특징짓는 발췌문

-예,-이 단어를 발음하는 데 많은 노력이 필요한 것처럼 Rostov가 말하고 다음 테이블에 앉았습니다.
둘 다 침묵했다. 두 명의 독일인과 한 명의 러시아 장교가 방에 앉아있었습니다. 모두가 조용했고 접시 위의 칼 소리와 중위의 챔질 소리가 들렸다. Telyanin은 아침 식사를 마쳤을 때 주머니에서 이중 지갑을 꺼내 작은 흰색 손가락을 위로 구부린 채 반지를 펴고 금색을 꺼내고 눈썹을 들어 하인에게 돈을주었습니다.
"서두르세요." 그가 말했다.
금은 새로운 것이었다. Rostov는 일어나 Telyanin으로 갔다.
"지갑 좀 보여주세요." 그가 거의 들리지 않는 낮은 목소리로 말했다.
흔들리는 눈으로 여전히 눈썹을 치켜든 Telyanin은 지갑을 건넸습니다.
"네, 예쁜 지갑...네...네..."라고 말하더니 갑자기 얼굴이 창백해졌다. “이봐, 젊은이.” 그가 덧붙였다.
Rostov는 지갑을 손에 들고 지갑과 그 안에 들어있는 돈과 Telyanin을 보았습니다. 중위는 습관처럼 주위를 둘러보더니 갑자기 기분이 좋아지는 것 같았다.
"우리가 비엔나에 있다면 모든 것을 거기에 두고 갈 것입니다. 이제 이 형편없는 작은 마을에 갈 곳이 없습니다."라고 그는 말했습니다. - 어서, 젊은이, 내가 갈게.
로스토프는 침묵했다.
- 당신은 어때요? 아침도 먹어? 그들은 적당히 먹습니다.”라고 Telyanin은 계속했습니다. - 어서 해봐요.
그는 손을 뻗어 지갑을 잡았다. Rostov는 그를 석방했습니다. Telyanin은 지갑을 가져다가 바지 주머니에 넣기 시작했고 그의 눈썹은 자연스럽게 올라 갔고 입이 약간 열렸습니다. “예, 예, 지갑을 주머니에 넣었습니다. 간단하고 아무도 이것에 관심이 없습니다.” .
- 글쎄, 젊은이? 그는 한숨을 쉬고 그의 눈썹 아래에서 Rostov의 눈을 들여다 보며 말했습니다. 전기 스파크의 속도로 눈에서 나오는 어떤 종류의 빛이 Telyanin의 눈에서 Rostov의 눈으로 그리고 앞뒤로 순식간에 달렸습니다.
Rostov는 Telyanin의 손을 잡고 "이리 오십시오. "라고 말했습니다. 그는 거의 그를 창문으로 끌고 갔다. -이것은 Denisov의 돈입니다. 당신이 가져갔습니다 ... -그는 그의 귀에 속삭였습니다.
"뭐?... 뭐?... 감히?" 뭐? ... -Telyanin이 말했다.
그러나이 말은 애처롭고 절박한 외침과 용서를 구하는 소리로 들렸습니다. Rostov가이 목소리를 듣 자마자 그의 영혼에서 거대한 의심의 돌이 떨어졌습니다. 그는 기쁨을 느꼈고 동시에 그의 앞에 서 있는 불행한 사람에 대해 안타까움을 느꼈습니다. 그러나 시작된 작업을 완료하는 것이 필요했습니다.
"여기 있는 사람들, 신은 그들이 어떻게 생각할지 아십니다." Telyanin이 중얼거리며 모자를 들고 작은 빈 방으로 향했습니다.
Rostov는 "나는 그것을 알고 있으며 그것을 증명할 것입니다. "라고 말했습니다.
- 나…
Telyanin의 겁에 질린 창백한 얼굴은 모든 근육으로 떨리기 시작했습니다. 그의 눈은 여전히 ​​뛰었지만 아래 어딘가에서 Rostov의 얼굴까지 올라가지 않고 흐느끼는 소리가 들렸습니다.
-백작!... 청년을 망치지 마세요 ... 여기이 불행한 돈이 있습니다, 가져 가세요 ... -그는 그것을 탁자 위에 던졌습니다. - 아버지는 늙으셨고, 어머니는! ...
Rostov는 Telyanin의 시선을 피하고 돈을 받고 아무 말도하지 않고 방을 나갔습니다. 그러나 문 앞에서 그는 걸음을 멈추고 돌아섰다. “맙소사.” 그가 눈물을 흘리며 말했다. “어떻게 이럴 수 있니?
생도에게 다가가며 텔라닌이 말했다.
"날 만지지 마세요." 로스토프가 물러나며 말했다. 필요하면 이 돈을 가져가세요. 그는 지갑을 그에게 던지고 여관을 뛰쳐나갔다.

같은 날 저녁 Denisov의 아파트에서 편대 장교들 사이에서 활발한 대화가 진행되었습니다.
"하지만 Rostov, 당신이 연대 사령관에게 사과해야한다고 말하고 있습니다. "라고 말하면서 회색 머리, 거대한 콧수염 및 주름진 얼굴의 큰 특징을 가진 최고 본부 대장 인 진홍색의 흥분한 Rostov를 향했습니다. .
참모장 Kirsten은 명예 행위로 두 번 군인으로 강등되었고 두 번 치료되었습니다.
"누구도 내가 거짓말을 하고 있다고 말하게 두지 않겠습니다!" 로스토프가 외쳤다. 그는 내가 거짓말을 하고 있다고 말했고 나는 그가 거짓말을 하고 있다고 그에게 말했습니다. 그래서 그것은 남을 것입니다. 그들은 나를 매일 근무시키고 체포 할 수 있지만 아무도 나를 사과하게 만들지 않을 것입니다. 그가 연대 사령관으로서 자신이 나를 만족시킬 가치가 없다고 생각한다면 ...
- 네, 기다리세요, 아버지; 당신은 내 말을 들어요-기장은 긴 콧수염을 침착하게 부드럽게하면서 저음 목소리로 직원을 방해했습니다. - 당신은 장교가 훔쳤다고 다른 장교들 앞에서 연대 사령관에게 말합니다 ...
- 다른 장교들 앞에서 대화가 시작된 것은 내 잘못이 아닙니다. 그들 앞에서 말을 하지 말았어야 했는지도 모르지만 저는 외교관이 아닙니다. 그런 다음 나는 hussars에 합류하여 여기에 미묘함이 필요하지 않다고 생각했지만 그는 내가 거짓말을하고 있다고 말했습니다 ... 그래서 그가 나를 만족하게 해주세요 ...
-괜찮습니다. 아무도 당신이 겁쟁이라고 생각하지 않지만 그게 요점이 아닙니다. Denisov에게 물어보십시오. 생도가 연대 사령관에게 만족을 요구하는 것처럼 보입니까?
콧수염을 물고있는 Denisov는 우울한 표정으로 대화를 듣고 개입하고 싶지 않은 것 같습니다. 기장 참모진의 물음에는 부정적으로 고개를 저었다.
"당신은 장교들 앞에서이 더러운 속임수에 대해 연대 사령관과 이야기하고 있습니다. "본부 대장이 계속했습니다. - Bogdanich (Bogdanich는 연대 사령관이라고 불림)가 당신을 포위했습니다.
-그는 포위하지 않았지만 내가 거짓말을하고 있다고 말했습니다.
- 네, 그리고 당신은 그에게 어리석은 말을 했고 사과해야 합니다.
- 절대! 로스토프가 외쳤다.
본부 대장은 진지하고 단호하게 말했다. -당신은 사과하고 싶지 않으며, 아버지, 그 앞에서뿐만 아니라 연대 전체, 우리 모두 앞에서 당신은 모든 것을 비난해야합니다. 그리고 방법은 다음과 같습니다. 이 문제를 처리하는 방법을 생각하고 상담했다면, 그렇지 않으면 직접하지만 장교 앞에서 쿵쾅 거리십시오. 연대 사령관은 지금 무엇을해야합니까? 장교를 재판에 회부하고 연대 전체를 엉망으로 만들어야 할까요? 한 명의 악당 때문에 연대 전체가 부끄럽습니까? 그래서 당신은 어떻게 생각하십니까? 그러나 우리의 의견으로는 그렇지 않습니다. 그리고 Bogdanich를 잘했습니다. 그는 당신이 진실을 말하고 있지 않다고 말했습니다. 불쾌하지만 어떡해, 아버지, 그들 스스로 부딪 혔어요. 그리고 이제 그들이 문제를 숨기고 싶어하기 때문에 어떤 종류의 광기 때문에 사과하고 싶지 않고 모든 것을 말하고 싶습니다. 근무 중이라는 사실에 기분이 상했지만 왜 늙고 정직한 장교에게 사과해야합니까! Bogdanich가 무엇이든 정직하고 용감한 늙은 대령, 당신은 너무 기분이 상했습니다. 연대를 망쳐도 괜찮습니까? -대위의 목소리가 떨리기 시작했다. -아버지, 당신은 1 년없이 일주일 동안 연대에 있습니다. 오늘 여기, 내일 그들은 부관으로 어딘가로 옮겼습니다. "도둑은 Pavlograd 장교 중 하나입니다!" 그리고 우리는 상관하지 않습니다. 그래서, Denisov? 모두 같지 않습니까?
Denisov는 침묵을 지켰고 움직이지 않았으며 때때로 빛나는 검은 눈으로 Rostov를 바라 보았습니다.
본부 대장은 "당신 자신의 광기는 당신에게 소중합니다. 당신은 사과하고 싶지 않습니다. "라고 본부 대장은 계속했습니다. 우리에게 소중하고 Bogdanich는 그것을 알고 있습니다. 오, 아버지! 그리고 이것은 좋지 않다, 좋지 않다! 거기에 화를 내든 말든 나는 항상 자궁에 진실을 말할 것입니다. 안좋다!
그리고 선장의 직원이 일어 서서 로스토프에서 돌아섰습니다.
- Pg "avda, chog" 가져가! Denisov가 뛰어 오르며 소리 쳤습니다. - 음, G "해골! 음!
얼굴이 붉어지고 창백해진 로스토프는 먼저 한 장교를 쳐다본 다음 다른 장교를 쳐다보았다.
-아니, 여러분, 아니 ... 생각하지 마세요 ... 나는 아주 잘 이해합니다. 당신은 나에 대해 그렇게 생각해서는 안됩니다 ... 나는 ... 나를 위해 ... 나는 연대의 명예를 위해 있습니다. 근데 뭐? 실전에서 보여드릴게 저에게는 현수막의 영예... 뭐, 다 똑같아요 정말 제 잘못이에요!.. - 눈에 눈물이 고였습니다. - 내가 탓할게, 주위를 탓할게!...그럼 또 뭘 원해?...
“그게 다야.
Denisov가 소리쳤습니다. “그는 착하고 작은 아이입니다.
"그게 낫다, 백작님." 마치 그의 인정을 받기 위해 그에게 칭호를 부르기 시작한 것처럼 참모총장이 되풀이했다. -가서 사과하세요, 각하, 예 s.
Rostov는 "여러분, 내가 모든 것을 할 것입니다. 아무도 내 말을 듣지 않을 것입니다. "라고 Rostov는 애원하는 목소리로 말했습니다. 어린 아이처럼 용서를 구하려면 어떻게 사과해야 할까요?
데니소프는 웃었다.
- 당신에게 더 나빠요. Bogdanych는 보복 적입니다. 당신의 완고함을 지불하십시오 . - Kirsten이 말했습니다.
-고집이 아니라 신에 의해! 그 느낌을 설명할 수 없어, 할 수 없어...

연산

허락하다 에프: ℝ N→ ℝ - 최소화할 목적 함수, 에스- 스웜의 입자 수, 각 입자는 좌표와 연관됨 엑스나는 ∈ ℝ N솔루션 공간 및 속도 V나는 ∈ ℝ N. 또한 하자 i는 입자의 가장 잘 알려진 위치입니다. , ㅏ g전체적으로 떼의 가장 잘 알려진 상태입니다. 그러면 입자군집법의 일반적인 형태는 다음과 같다.

  • 모든 입자에 대해 = 1, …, 에스하다:
    • 랜덤 벡터를 사용하여 입자의 초기 위치 생성 엑스나는 ~ (블로, 위로) 다차원 균일 분포를 갖는다. 블로그리고 위로각각 솔루션 공간의 하한 및 상한입니다.
    • 가장 잘 알려진 입자 위치를 초기 값에 할당합니다. 나는 ← 엑스나 .
    • 만약 ( 에프(나)< 에프(g)) 그런 다음 떼의 가장 잘 알려진 상태를 업데이트합니다. g나 .
    • 입자 속도 값 지정: V나는 ~ (-(위로-블로), (위로-블로)).
  • 중지 기준이 충족될 때까지(예: 주어진 반복 횟수 또는 목적 함수의 필수 값에 도달) 다음을 반복합니다.
    • 모든 입자에 대해 = 1, …, 에스하다:
      • 랜덤 벡터 생성 아르 자형피, 아르 자형그~ (0,1).
      • 입자 속도 업데이트: V나는 ← 승 V i + φp 아르 자형 p×( 나- 엑스 i) + φg 아르 자형 g×( g-엑스 i) 여기서 연산 ×는 성분별 곱셈을 의미합니다.
      • 변환으로 입자 위치 업데이트 엑스 i를 속도 벡터로: 엑스나는 ← 엑스내가 + V나 . 이 단계는 목적 함수 값의 개선과 관계없이 수행됩니다.
      • 만약 ( 에프(엑스나)< 에프( i)) 그런 다음 다음을 수행하십시오.
        • 가장 잘 알려진 입자 위치 업데이트: 나는 ← 엑스나 .
        • 만약 ( 에프(나)< 에프(g)) 그런 다음 전체적으로 가장 잘 알려진 군집 상태를 업데이트합니다. g나 .
  • 지금 g발견된 최고의 솔루션을 포함합니다.

매개변수 ω, φ p 및 φ g는 계산기에 의해 선택되며 전체 방법의 동작 및 효율성을 결정합니다. 이러한 매개변수는 많은 연구의 주제입니다. (아래 참조).

매개변수 선택

입자 무리 방법에 대한 최적 매개변수의 선택은 상당한 수의 연구 논문의 주제입니다. 예를 들어 Shea 및 Eberhart, Carlisle 및 Dozer, van den Berg, Clerk 및 Kennedy, Trelea, Bratton 및 Blackwell의 작업을 참조하십시오. 에버스.

방법의 매개변수를 선택하는 간단하고 효과적인 방법은 Pedersen과 다른 저자에 의해 제안되었습니다. 그들은 또한 다양한 최적화 문제와 매개변수로 수치 실험을 수행했습니다. MFR 매개변수를 "조정"하는 데 다른 최적화 알고리즘이 사용되므로 이러한 매개변수를 선택하는 기술을 메타 최적화라고 합니다. 최고의 성능을 가진 MFM 입력 매개변수는 문헌에 설명된 주요 원칙과 상반되는 것으로 입증되었으며 종종 간단한 MFM 사례에 대해 만족스러운 최적화 결과를 제공합니다. 구현은 SwarmOps 오픈 소스 라이브러리에서 찾을 수 있습니다.

알고리즘 옵션

방법의 성능을 향상시키기 위해 입자 무리 알고리즘의 새로운 변형이 지속적으로 제안되고 있습니다. 이러한 연구에는 몇 가지 경향이 있으며, 그 중 하나는 다른 알고리즘과 함께 MFR을 사용하여 하이브리드 최적화 방법을 만들 것을 제안합니다. 예를 들어 참조하십시오. 또 다른 추세는 예를 들어 뒤로 물러나거나 입자 운동의 순서를 변경하여 어떤 방식으로든 방법의 속도를 높이는 것입니다(이 정보 참조). 최적화 프로세스 중에 MFR의 동작 매개변수를 조정하려는 시도도 있습니다.

또한보십시오

  • 꿀벌 알고리즘
  • 중력 검색 알고리즘

메모

  1. (1995) "입자 무리 최적화". 신경망에 관한 IEEE 국제 회의 간행물 IV: 1942-1948.
  2. (1998) "수정된 입자 무리 최적화 프로그램". IEEE International Conference on Evolutionary Computation의 절차: 69-73.
  3. 무리 지능. - 모건 카우프만, 2001.
  4. 폴리, R. (2007). "입자 떼 최적화 애플리케이션에 대한 간행물의 분석". 기술 보고서 ​​CSM-469(영국 에식스대학교 컴퓨터과학과).
  5. 폴리, R. (2008). "입자 무리 최적화의 적용에 관한 간행물의 분석". : 1-10. DOI:10.1155/2008/685175.
  6. (1998) "입자 떼 최적화에서 매개변수 선택". 진화 프로그래밍 VII 절차(EP98): 591-600.
  7. (2000) "입자 떼 최적화에서 관성 가중치와 수축 계수 비교". 진화 계산에 관한 회의 절차 1 : 84-88.
  8. (2001) "기성품 PSO". Particle Swarm Optimization Workshop 절차: 1-6.
  9. 반 덴 버그 F. Particle Swarm Optimizer 분석. - 프리토리아 대학교, 자연 및 농업 과학부, 2001.
  10. (2002) "입자 무리 - 다차원 복합 공간에서의 폭발, 안정성 및 수렴". 진화 계산에 대한 IEEE 트랜잭션 6 (1): 58-73.
  11. Trelea, I.C. (2003). "입자 무리 최적화 알고리즘: 수렴 분석 및 매개변수 선택". 정보 처리 편지 85 : 317-325.
  12. (2008) "단순화된 재조합 PSO". 인공 진화 및 응용 저널.
  13. G. 에버스입자 무리 최적화에서 정체를 처리하기 위한 자동 재그룹화 메커니즘 . - The University of Texas - Pan American, 전기공학과, 2009.
  14. 페더슨 M.E.H.휴리스틱 최적화 튜닝 및 단순화. - University of Southampton, 공학 과학부, 전산 공학 및 디자인 그룹, 2010.
  15. Pedersen, M.E.H.; 치퍼필드, A.J. (2010). 파티클 스웜 최적화 단순화. 응용소프트컴퓨팅 10 : 618-628.
  16. (2002) "수명 주기 모델: 입자 떼 최적화, 유전 알고리즘 및 언덕 등반가 결합". Nature VII(PPSN)의 병렬 문제 해결 절차: 621-630.
  17. (2010) "클러스터 분석을 위한 PSO, ACO 및 k-평균에 기반한 효율적인 하이브리드 접근법". 응용소프트컴퓨팅 10 (1): 183-197.
  18. (2002) "자기 조직화 임계성을 가진 입자 군집 옵티마이저 확장". 진화 계산(CEC)에 관한 제4차 회의 절차 2 : 1588-1593.
  19. Xinchao, Z. (2010). "수치적 최적화를 위한 교란된 입자 군집 알고리즘". 응용소프트컴퓨팅 10 (1): 119-124.
  20. (2009) 적응형 입자 군집 최적화. 시스템, 인간 및 사이버네틱스에 대한 IEEE 트랜잭션 39 (6): 1362-1381.

연결

  • 파티클 스웜 센트럴 . 뉴스, 사람, 장소, 프로그램, 기사 등 특히 현재 MFR 표준을 참조하십시오. (영어)
  • SwarmOps. MFR 및 기타 메타 최적화 방법의 매개변수 선택/보정. C 및 C#의 소프트웨어 라이브러리.
  • EvA2는 Java로 작성된 포괄적인 오픈 소스 진화 최적화 및 MFM 도구입니다.
  • ParadisEO는 PFM 알고리즘을 포함한 다양한 메타 휴리스틱을 생성하도록 설계된 강력한 C++ 프레임워크입니다. 바로 사용할 수 있는 알고리즘, 자신만의 MFR을 빠르게 생성하는 데 도움이 되는 많은 자습서.
  • 테스트 기능에 대한 FORTRAN 성능 측정의 MRCH 코드.
  • - Java로 작성된 GPLed 계산 지능 시뮬레이션 및 연구 환경에는 다양한 PSO 구현이 포함됩니다.
  • MFR의 Python 구현을 사용하여 계단 건너기 퍼즐을 해결합니다.
  • ECF - Evolutionary Computation Framework 다양한 알고리즘, 유전자형, 병렬화, 자습서.


최근 섹션 기사:

기본행동계획 및 생존방법 밤에는 조용하고, 낮에는 바람이 세차게 불고, 저녁에는 잔잔해진다.
기본행동계획 및 생존방법 밤에는 조용하고, 낮에는 바람이 세차게 불고, 저녁에는 잔잔해진다.

5.1. 인간 환경의 개념. 정상 및 극한 생활 조건. 생존 5.1.1. 인간 환경의 개념 ...

어린이를 위한 영어 소리: 필사본을 올바르게 읽습니다.
어린이를 위한 영어 소리: 필사본을 올바르게 읽습니다.

영어 알파벳이 26개의 문자와 46개의 다른 소리로 구성되어 있다는 사실을 알고 계셨나요? 같은 문자가 동시에 여러 소리를 전달할 수 있습니다....

중세 초기를 주제로 한 역사 속의 통제 시험(6급)
중세 초기를 주제로 한 역사 속의 통제 시험(6급)

M.: 2019. - 128p. M.: 2013. - 160p. 매뉴얼에는 현재 및 최종 제어를 위한 중세 역사에 대한 테스트가 포함되어 있으며 내용에 해당합니다 ...