기고글 토론 "모집단 최적화 알고리즘: 묘목 파종 및 성장(SSG)"

 

새로운 기고글 모집단 최적화 알고리즘: 묘목 파종 및 성장(SSG) 가 게재되었습니다:

묘목 파종 및 성장(SSG) 알고리즘은 다양한 조건에서 뛰어난 생존 능력을 발휘하는 지구상에서 가장 탄력적인 유기체 중 하나로부터 영감을 받은 것입니다.

이 알고리즘은 작성자가 명확하게 설명하지 않은 몇 안 되는 알고리즘 중 하나입니다(기본 조항과 아이디어만 제공됨). 저자가 제시한 알고리즘 연산자 또한 프로그램의 알고리즘 구현을 위한 이미 준비된 지침이 아니며 자식 트리와 부모 트리의 상호 작용에 대한 명확한 지침도 없습니다. 연산자가 실행되는 어떠한 주문이던 실행되며 모든 사용자는 더 나은 묘목을 얻기 위해 주문을 변경할 수 있습니다.

넓은 의미에서 SSG는 최적화 알고리즘이 아니라 최적화 품질을 개선하기 위해 다른 알고리즘을 보완하도록 설계된 일반적인 규칙의 집합입니다. 즉 SSG는 모든 진화적 모집단 알고리즘을 위한 부가 기능으로 상상력의 여지가 있고 최적화 알고리즘의 특정한 구현을 실험해 볼 수 있는 기회가 됩니다. 저는 이전의 알고리즘을 작성하면서 제 생각과 경험을 적용하여 이들이 SSG와 함께 작동하도록 했습니다. 실험 결과는 독자의 판단을 돕기 위해 아래에 제시되어 있습니다.

알고리즘을 이해하려면 우리는 나무를 최적화 에이전트라고 생각해야 합니다. 나무는 최적화 문제에 대한 해결책이고 각각의 가지는 문제의 최적화 매개변수입니다. 그림 1에는 자식 나무와 부모 나무의 추상적이고 예술적인 그림이 나와 있습니다. 나무 기둥은 최적화할 매개변수의 집합입니다. 각각의 가지는 별도의 최적화된 매개변수로 가지의 길이는 해당 매개변수의 허용 가능한 값 범위에 의해 제한됩니다. 가지의 방향은 중요하지 않으며 그림에서 차이를 강조하기 위해 표시된 것일 뿐입니다.

나무


작성자: Andrey Dik

 

로컬 극값을 찾는 가장 좋은 알고리즘은 무엇인가요?

대략적으로 말하면, 국부 극한(정점)에 가장 잘 속하는 매개변수 목록을 만들어야 합니다.

고슴도치의 예를 사용하여 바늘 끝의 좌표를 표시합니다.

 

다음과 같은 기능을 갖춘 최적화 알고리즘이 있는지 알려주세요:

파라미터의 수가 많을 때 일부만 선택한다;

선택한 매개 변수는 유전 알고리즘 또는 유전학으로 대체할 수 있는 알고리즘을 통해서만 최적화됩니다;

현재 반복을 위해 활성 매개 변수를 선택하는 알고리즘은 중요하지 않으며 최적화 범위와 단계를 변경할 수 있습니다.

 
fxsaber #:

로컬 극값을 찾는 데 가장 적합한 알고리즘은 무엇인가요?

대략적으로 말하면, 로컬 극한(정점)에 가장 잘 속하는 매개변수 목록을 생성해야 합니다.

고슴도치의 예를 사용하여 바늘 끝의 좌표를 표시합니다.

모든 전역 검색 작업의 경우 표 상단에 있는 알고리즘이 가장 잘 작동합니다. 예를 들어 함수가 매끄럽거나 불연속적이라는 것을 알고 있는 경우 개별적으로 가장 적합한 것을 선택하거나 문제의 최적화된 매개변수 수에 따라 가장 적합한 것을 선택할 수 있습니다.

대부분의 실제 문제에서 국부 극값의 수를 알 수 없고 (그렇지 않은 경우 분석 방법을 사용하는 것이 더 쉬울 것입니다) 전역 극값의 수는 하나 (동일한 값을 가진 전역이 여러 개있는 경우 하나라는 사실과 동일 함)이기 때문에 일반적으로 국부 극값을 찾는 데 필요한 방식으로 문제를 설정하지 마십시오. 그렇기 때문에 일반적으로 함수가 가능한 한 단조로운 방식으로 문제가 설정되며, 예를 들어 오류 최소화를 예로 들 수 있습니다.

일반적인 경우 현지인 검색 문제를 해결하기위한 알고리즘을 알지 못하며 특정 문제에 대한 특정 알고리즘을 작성하는 것이 거의 편리하지 않습니다. 그런 경우에는 문제를 해결하기 위해 FF를 어떻게 표현할 수 있는지 고려할 것입니다. 클러스터링에 추가 기능으로 AO를 사용하는 등 다양한 접근 방식이 있을 수 있습니다. 문제에 대한 또 다른 접근 방식은 FF를 글로벌 최소값에서 글로벌 최대값까지 가상의 "레이어"로 나눈 다음 각 레이어를 순차적으로 검사하는 것입니다. 즉, AO에 대한 일괄 작업 관리자를 만들어야 합니다.

요컨대, 나는 당신을 실망시킬 것입니다-일반적인 형태로 지역 극한을 찾는 문제를 해결하기위한 알고리즘이 없습니다. 특별한 알고리즘을 만드는 것보다 FF를 수정하는 것이 더 쉽습니다.

 
Aliaksandr Hryshyn 유전 알고리즘 또는 유전학으로 대체할 수 있는 알고리즘을 통해서만 최적화됩니다;

3. 현재 반복을 위해 활성 매개 변수를 선택하는 알고리즘은 관련이 없으며 최적화 범위와 단계를 변경할 수 있습니다.

1. AO는 최적화를 위해 얼마나 많은 매개 변수를 제출할지 신경 쓰지 않으므로 모든 매개 변수를 AO에 제출할 수 있고 전부는 아닙니다.

2. 모든 알고리즘을 개별적으로, 공동으로, 순차적으로, 결합하여 적용할 수 있습니다. 기사의 알고리즘을 균일하게 만들려고 노력했습니다.

3. 제시된 알고리즘은 원칙적으로 최적화 과정에서 직접 조정할 수 있습니다. 누적된 모집단이 초기화되지 않도록 초기화만 수정하면 됩니다. 예를 들어, 통과한 에포크에 비례하여 최적화 매개변수의 단계를 줄이거나 늘릴 수 있습니다.

 
Andrey Dik #:

요컨대, 나는 당신을 실망시킬 것입니다-일반적인 형태로 지역 극한을 검색하는 문제를 해결하기위한 알고리즘이 없습니다. 특별한 알고리즘을 만드는 것보다 FF를 수정하는 것이 더 쉽습니다.

감사합니다. 많은 수의 코어가 관련되어있을 때 최적화를 강제 중단하여 간접적으로 로컬을 찾습니다. 대략적으로 말하면 테스터에 20 개의 에이전트가 있으며 2000 회 통과 후 최적화를 중단합니다.

 
fxsaber #:

감사합니다. 많은 수의 코어가 관련된 경우 최적화를 강제 중단하여 간접적으로 로컬 코어를 찾습니다. 대략적으로 말하자면 테스터에 20개의 에이전트가 있고, 2000번이 지나면 최적화를 중단합니다.

완전히 반과학적인 방법이에요! ))))) 그래도 영리하네요.

나는 인구가 IWO, COA, ABC, BFO와 같이 로케일에 따라 그룹으로 나뉘는 경향이있을 때 이러한 알고리즘의 인구가 에이전트 간의 유클리드 거리를 측정하여 에이전트 (AO의 논리적 검색 단위를 에이전트라고 함) 덩어리, 즉 최소 거리를 가진 에이전트 그룹을 검색하여 "클러스터링"을 증가시키는 알고리즘이 있다고 생각했습니다.

또한 COA 및 HS 또는 MA와 같은 롤백(에이전트가 동일한 위치에서 다른 방향으로 반복적으로 검색을 시도하는 경우) 알고리즘에서 시도 카운터를 설정하고 여러 번의 반복을 통해 인구 상태의 슬라이스를 만들고 시도 횟수가 가장 많은 에이전트가 로컬 극한이 될 수 있습니다. MA와 BFO에는 기본적으로 이러한 카운터가 있습니다.

즉, 로컬을 검색하는 정확한 방법은 없다고 말씀 드렸지만 (이 점에서 글로벌 검색은 "정확한"것으로 간주 될 수 있음) 위에서 설명한대로 대략적으로 검색 할 수 있습니다. 정확한 솔루션을 얻으려면 FF에 대한 다른 정보를 알아야합니다.


ZЫ. 이 주제에 관심이있는 모든 사람들에게 흥미로운 질문 : 로컬 극한과 글로벌 극한의 차이점은 무엇입니까 (FF 값의 차이를 고려하지 않음)?

ZZY 첫 번째 질문에 답하면 많은 질문이 저절로 사라집니다.

 
Andrey Dik #:

대략 위와 같이 검색할 수 있습니다.

불행히도 저는 전혀 무능하기 때문에 대략적이지만 준비된 솔루션에 관심이 있습니다.

ZЫ. 이 주제에 관심이있는 모든 사람들에게 흥미로운 질문 : 로컬 극한과 글로벌 극한의 차이점은 무엇입니까 (FF 값의 차이를 고려하지 않음)?

최적화 결과를 패스 집합으로 간주하면 입력된 계산된 패스의 공간에 클러스터링을 적용한 후 로컬 패스의 힌트를 볼 수 있습니다. 또한 각 클러스터에서 "좁은" 최적화를 달성합니다.

 
fxsaber #:

로컬 극값을 찾는 데 가장 적합한 알고리즘은 무엇인가요?

대략적으로 말하면, 로컬 극한(정점)에 가장 잘 속하는 매개변수 목록을 생성해야 합니다.

고슴도치의 예를 사용하여 바늘 끝의 좌표를 표시합니다.

고슴도치의 모든 바늘을 찾아야 하나요? 아니면 하나, 아니 정확히 하나의 바늘만 찾아야 하나요?
 
mytarmailS #:
고슴도치에 있는 모든 바늘을 찾아야 하나요? 아니면 하나만, 아무 바늘이나 정확히 맞는 바늘을 찾아야 하나요?

안테나 몇 개만 있으면 됩니다.

 
fxsaber #:

안타깝게도 전혀 무능하기 때문에 대략적이지만 기성품 솔루션에 관심이 있습니다.

최적화 결과를 패스 집합으로 간주하면 입력 카운트된 패스의 공간에 클러스터링을 적용한 후 로컬 패스의 힌트를 볼 수 있습니다. 또한 각 클러스터에서 "좁은" 최적화를 달성합니다.

유클리드 거리에 따른 클러스터링(코호넨 클러스터링일 수 있음)은 로컬 근처에 있는 옵티미터의 그룹화를 표시합니다.