기고글 토론 "모집단 최적화 알고리즘: 박테리아 먹이 채집 최적화(BFO)"

 

새로운 기고글 모집단 최적화 알고리즘: 박테리아 먹이 채집 최적화(BFO) 가 게재되었습니다:

대장균 박테리아 먹이 채집 전략은 과학자들이 BFO 최적화 알고리즘을 개발하는 데 영감을 주었습니다. 이 알고리즘에는 최적화에 대한 독창적인 아이디어와 유망한 접근 방식이며 앞으로 더 연구해 볼 만한 가치가 있습니다.

박테리아 먹이 채집 최적화(BFO) 알고리즘은 매우 복잡하거나 불가능한 수치 함수 최대화/최소화 문제에 대한근사 솔루션을 찾는 데 사용할 수 있는 흥미로운 최적화 기법입니다. 이 알고리즘은 분산 최적화 및 제어를 위한 글로벌 최적화 알고리즘의 하나로 널리 알려져 있습니다. BFO는 대장균의 사회적 먹이 채집 행동에서 영감을 받았습니다. BFO는 여러 응용 분야에서 발생하는 실제 최적화 문제를 해결하는 데 효과적이라는 점에서 연구자들의 주목을 받고 있으며 대장균의 먹이 사냥 전략 이면의 생물학이 원래 방식 그대로 에뮬레이션 되고 간단한 최적화 알고리즘으로 사용됩니다. 

대장균이나 살모넬라균과 같은 박테리아는 지구상에서 가장 성공적인 유기체 중 하나입니다. 이 민첩한 박테리아는 편모라는 반강체 부속물을 가지고 있으며 이 부속물을 이용해 몸을 비틀어 추진합니다. 모든 편모가 시계 반대 방향으로 회전하면 프로펠러 효과가 발생하여 박테리아가 어느 정도 직선 방향으로 이동합니다. 이 경우 박테리아는 수영이라는 동작을 수행합니다. 모든 편모는 같은 방향으로 회전합니다.

parent_clone

그림 1. 복제: 원본(동작 벡터 보존)과 복제(동작 벡터 변경) 박테리아로 나뉩니다.
텀블 - 박테리아 모션 벡터의 변화

작성자: Andrey Dik

 

매개변수가 5개 이상이고 조합의 수가 많은 실제 데이터에서 이러한 모든 최적화 알고리즘을 테스트해 보는 것이 좋습니다.

 
Aliaksandr Hryshyn #:

매개변수가 5개 이상이고 조합의 수가 많은 실제 데이터에서 이러한 모든 최적화 알고리즘을 테스트해 보는 것이 좋습니다.

테스트에는 세 가지 유형의 테스트 함수(매끄러운, "바늘" 극한이 있는 매끄러운, 이산)가 사용되며, 각 함수는 10, 50, 1000개의 파라미터(총 9개의 테스트)로 테스트됩니다. 또한 테스트는 0! 단계로 수행됩니다.

0단계는 16번째 자리까지의 정밀도가 두 배라는 의미로, 1000개의 매개변수에 대해 0.0000000000000001 단계가 되므로 얼마나 많은 조합을 얻을 수 있는지 세어보세요.

좋아요, 제가 계산해볼게요. 아주 대략적으로 10e10^1000, 즉 약 10e16000입니다. 가시 우주의 분자 수보다 더 많아요.

 

매개변수의 수입니다:

input int    Test1FuncRuns_P    = 5;     //1) 테스트에 포함된 함수 수
input int    Test2FuncRuns_P    = 25;    //2) 테스트에 포함된 함수 수
input int    Test3FuncRuns_P    = 500;   //3) 테스트에 포함된 함수 수

인구 규모입니다:

input int    BatsNumber_P       = 50;    //박쥐 수

에포크 수가 계산됩니다:

int epochCount = NumbTestFuncRuns_P / BatsNumber_P;

코드에서 모든 것을 제대로 이해했나요?

 
Aliaksandr Hryshyn #:

1- 매개변수의 개수입니다:

2. 모집단의 크기입니다:

3. 에포크의 수는 추정치입니다:

코드에서 모든 것을 제대로 이해했나요?

1. 아니요. 테스트 함수는 2차원적입니다. 예를 들어:

input int    Test1FuncRuns_P    = 5;     //1) 테스트에 포함된 함수 수
러시아어로 5개의 테스트 함수를 의미하므로 2 - 10개의 최적화된 매개변수를 곱하세요

25 - 50 개의 최적화 된 매개 변수

500 - 1000개의 최적화된 매개변수

2. 예.

3. 예, 예, 예상되는 에포크 수는 총 FF 실행 횟수가 동일하고 알고리즘의 모집단 크기 선택에 의존하지 않도록 수행됩니다. 즉, 알고리즘의 테스트가 다른 알고리즘의 다른 모집단 크기 매개 변수에서 공정하게 이루어질 수 있도록 하기 위해 수행됩니다.

 

네, 감사합니다.

일련의 기사에서 나온 이 모든 알고리즘은 병렬적으로 사용할 수 있는데, 다른 알고리즘은 살펴보지 않았나요? 나는 그것을 사용할 수 있다고 생각하고 유용하다고 생각하며 최적화 할 함수 만 더 복잡하고 실수와 정수 모두 동적 인 수의 매개 변수가 있으며 범위가 다르므로 나중에 문제를 해결해야합니다.

 
Aliaksandr Hryshyn #:

알겠습니다, 감사합니다.

일련의 기사에서 나온 이 모든 알고리즘은 병렬적으로 사용할 수 있는데, 다른 알고리즘은 살펴보지 않았나요? 최적화되는 함수가 더 복잡하고 실수와 정수 모두 동적 인 수의 매개 변수가 있으며 범위가 다르면 나중에 문제를 해결해야하기 때문에 사용할 수 있다고 생각합니다.


네, 물론이죠.
 
잘했어 👏
 
Lorentzos Roussos #:
수고하셨습니다 👏
감사합니다!)