기고글 토론 "유전 알고리즘-쉬워요" - 페이지 15

 

안녕하세요, 질문은 하지 않겠습니다.

여러분의 노고에 큰 감사를 드립니다! 고마워요!

큰 도움이 되었습니다.

 

안녕하세요, 저도 큰 감사의 말씀을 전하고 싶습니다. 최근 GA에 관심을 갖게 되었습니다. "GA에 관한"모든 출처는 저를 낙담하게 만들었습니다. 어디로 가야할지 몰랐어요.... 그러다가 어떤 링크를 통해 귀하의 기사를 발견했습니다. 한마디로 만세! ))

몇 가지 질문이 있습니다. 기사가 오래 전에 작성되었다는 것을 알고 있습니다. 하지만 여전히...

1. 선언된 변수는 어디에도 사용되지 않습니다.

input int    FFNormalizeDigits_P  = 0;        // 적응 마크 수
input int    GeneNormalizeDigits_P= 0;        //유전자 글자 수

이것이 향후에 대한 계획인가요?

2. UGA를 여러 번 실행했는데 다른 값을 얻었습니다. 즉, 한 번은 정확하고 두 번째는 정확하지 않습니다. 질문 - 정답 수를 늘리려면 어떤 UGA 매개 변수를 "더 크게" 설정해야 하나요?

트레일러에서 관찰한 결과... 왼쪽 그림은 잘못된 결과를 보여줍니다.

파일:
111.png  8 kb
 
Alexey_74:

...문제는 정답 수를 늘리기 위해 어떤 GA 매개변수를 "더 크게" 설정해야 하는가 하는 것입니다.

일반적으로 안타깝게도 명확한 답은 없으며 있을 수도 없습니다. 모든 것은 작업에 따라 다릅니다.

특정 경우에는 이러한 매개 변수를 비틀어보십시오:

input int    ChromosomeCount_P    = 100;    //콜로니의 염색체 수
input int    Epoch_P               = 50;    //개선되지 않은 에포크 수
//---
input string GA_OperatorParam     =        "----운영자 매개변수----";
input double ReplicationPortion_P  = 100.0; //Dole 복제.
input double NMutationPortion_P    = 10.0;  //자연 돌연변이의 분수.
input double ArtificialMutation_P  = 10.0;  //인공 돌연변이의 돌연변이.
input double GenoMergingPortion_P  = 20.0;  //유전자 차용.
input double CrossingOverPortion_P = 20.0;  //크로스오버 공유.
input double ReplicationOffset_P   = 0.5;   //인터벌 경계 오프셋 계수
input double NMutationProbability_P= 5.0;   //각 유전자의 돌연변이 확률(%)

:)

처음 두 매개 변수를 위로 변경하면 수렴이 명확하게 증가하지만 당연히 검색 시간이 늘어납니다.

 

답변 감사합니다. 놀면서 관찰함.... 일반적으로 모든 관찰 결과를 공유할 필요는 없습니다. "극단적 인 변형"으로 충분합니다.

처음 두 매개 변수가 각각 50과 2 인 경우 알고리즘의 실행 시간은 170-200ms입니다.

...., 100과 50이 같으면 실행 시간은 103203ms입니다. 예, 알고리즘은 "예상대로"및 "결과대로"결과 측면에서 절대적으로 일치하는 결과를 생성했습니다.

아아, 나에게 보이는 것처럼 시간 소비는 달성 된 결과와 전혀 일치하지 않습니다.

 
Alexey_74:

답변 감사합니다. 놀면서 관찰함.... 일반적으로 모든 관찰 결과를 공유할 필요는 없습니다. "극단적 인 변형"으로 충분합니다.

처음 두 매개 변수가 각각 50과 2 인 경우 알고리즘의 실행 시간은 170-200ms입니다.

...., 100과 50이 같으면 실행 시간은 103203ms입니다. 예, 알고리즘은 "예상대로"및 "결과대로"결과 측면에서 절대적으로 일치하는 결과를 생성했습니다.

아아, 제 생각에는 시간 소비가 달성 된 결과와 전혀 일치하지 않습니다.

뉴턴의 방법으로 문제를 해결할 수 있다면 그 방법으로 문제를 해결해야합니다. 단시간에 정확한 결과를 얻을 수 있습니다.

그렇지 않다면 GA에 오신 것을 환영합니다. 현미경과 견과류에 대한 속담이 떠오릅니다.

 
Urain:

뉴턴의 방법으로 해결할 수 있는 문제라면 뉴턴의 방법으로 해결해야 합니다. 단시간 내에 정확한 결과를 얻을 수 있습니다.

그렇지 않다면 GA로 가세요. 현미경과 견과류에 관한 속담이 떠오릅니다.

안타깝게도 간단한 방법은 없습니다. 어떤 작업을 수행하든 최적화 문제가 전면에 등장합니다. 지표라고 하는 모든 지표는 파라메트릭이기 때문입니다. 같은 지그재그라도, 그것은 보일 것입니다....

그리고 매개변수가 있기 때문에 매개변수를 재(부)구해야 한다는 뜻입니다. 가장 간단한 변형은 중첩 주기입니다. 실습에서 알 수 있듯이 대부분의 경우 옵션이 아닙니다. 그래서 우리는 GA를 사용합니다. 그리고 전혀 악한 것이 아닙니다. )) 긴급한 필수품입니다.

1 ~ 2 년 전에 순수한 실험을했습니다. 오랜 기간 동안 두 개의 마쉬키를 가져 가면 (별도의 창에서) 그 차이는 명확하게 정현파 형태의 상당히 부드러운 그래프처럼 보일 것입니다. 나는보고 싶었다

여러 정현파의 합이 이 그래프를 반복할 수 있는지 궁금했습니다. 저는 3개의 정현파를 포착하는 스크립트를 만들었습니다. 처음에는 5개를 원했지만 마음을 바꿔 3개로 변경했습니다(실험, 왜 뜨거워지나요?). 결과는 3개의 주기(중첩된 2개의 주기)였습니다.

물론 주기에서 주석을 제거하면 주기 알고리즘이 더 빠르게 작동합니다. 그러나 불행히도 100 번은 아니며 프로세스를 추적 할 가능성이 완전히 사라집니다.

그래서 실험을 시작하지 않고 취소했습니다. 그러나 겉보기에 단순 해 보이는 상황의 규모와 중력은 저를 놀라게하고 거의 겁에 질 렸습니다. ))

 

앤드류 질문이 두 개 더 있습니다:

1. 다른 지그재그 예제에서 "...염색체의 유전형이 표현형과 일치하지 않을 때"라는 문구를 사용하셨습니다. 이것이 GA와 관련하여 무엇을 의미하나요?

2. 제가 알기로는 순위는 내림차순으로 매겨지는 것으로 알고 있습니다. 즉, 콜로니[0][염색체]의 값이 높을수록 개체가 더 잘 적응한 건가요?

즉, 제가 올바르게 이해했다면 FF에서 크리불린으로 작업하는 경우 상관 계수 r 또는 R은 0->1 경향이 있으므로 사용할 수 있습니다 (사용해야 함). 그리고 MSE는 -> 0이므로 사용할 수 없습니다.

 
Alexey_74:

앤드류 질문이 두 개 더 있습니다:

1. 다른 지그재그 예제에서 "...염색체의 유전형이 표현형과 일치하지 않을 때"라는 문구를 사용하셨습니다. 이것이 GA와 관련하여 무엇을 의미하나요?

2. 제가 알기로는 순위는 내림차순으로 매겨지는 것으로 알고 있습니다. 즉, 콜로니[0][염색체]의 값이 높을수록 개체가 더 잘 적응한 건가요?

3. 즉, 제가 올바르게 이해했다면 FF에서 커불린으로 작업하는 경우 상관 계수 r 또는 R은 0-> 1 경향이 있으므로 사용할 수 있습니다 (사용해야 함). 그리고 MSE는 -> 0이므로 사용할 수 없습니다.

1. 염색체의 유전자가 최적화되는 함수의 인자와 동일한 경우, 유전형은 표현형에 해당합니다(유전형 - 유전자 값, 표현형 - 인자 값). 유전자와 인수가 같지 않으면(어떤 종류의 변형이 사용됨) 일치하지 않습니다. 생물학에서 유전자형과 표현형의 개념을 구글에서 찾아보세요.

2. 예. 그러나 그것은 근본적인 것은 아닙니다. 순위 방향을 명시 적으로 지정하거나 FF 값에 -1을 곱할 수 있습니다.

3. 죄송합니다, 질문을 이해하지 못했습니다.

 
joo:

1. 염색체의 유전자가 최적화되는 함수의 인수와 동일한 경우, 유전형은 표현형에 해당합니다(유전형 - 유전자 값, 표현형 - 인수 값). 유전자와 인수가 같지 않으면(어떤 종류의 변형이 사용됨) 일치하지 않습니다. 생물학에서 유전자형과 표현형의 개념을 Google에서 찾아보세요.

2. 예. 그러나 그것은 근본적인 것은 아닙니다. 순위 방향을 명시 적으로 지정하거나 FF 값에 -1을 곱할 수 있습니다.

3. 죄송합니다, 질문을 이해하지 못했습니다.

감사합니다.

1. 그게 제가 추측 한 것입니다. 그러나 추측하는 것은 흐릿하고 위험한 일입니다. 확실히 아는 것이 훨씬 더 바람직합니다. 인터넷 검색에 대해서는 조언에 감사하지만 사용하지 않을 것 같습니다. 학교 때부터 열성, 우성, 대립 유전자, 표현형, 유전자형, 동형 접합, 이형 접합을 기억합니다.... 맙소사, 머릿속에 쓰레기가 잔뜩 쌓였네요. 네, 그들은 소비에트 학교에서 지식을 제공하는 방법을 알고있었습니다.... ))

2. 또한 이해할 수 있습니다.

3. 그러나 세 번째 요점은 없었습니다. "내가 옳다면 ..."과 같이 큰 소리로 생각하는 세 번째 줄 (두 번째 단락의 연속)만 있습니다. 질문이 아닙니다. 질문처럼 보이지만. 그럼, 수사학적 질문입니다. 의미를 설명해드리죠. 예를 들어, 순전히 합성적으로. 정현파 형태의 곡선 신호가 있고 이 신호가 세 개의 정현파의 합이라는 것을 알고 있습니다. 저는 GA가이 작업에 쉽게 대처하고 세 개의 사인 곡선 모두의주기를 생성 할 것이라고 거의 절대적으로 확신합니다. 그러나 그 과정에서 세 정현파의 합이 기준과 얼마나 유사한 지 측정하는 것이 어떻게 든 필요합니다. 제 무기고에는 r (Pearson), R (p-square) 및 MSE의 세 가지 측정 값이 있습니다. 특히 이러한 것들은 신경망 패러다임에서도 '적합성'의 척도로 사용되기 때문입니다.

더 명확하고 투명하게 설명해 주셔서 다시 한 번 감사드립니다. 다시 말씀드리지만 저는 최근에야 GA라는 주제에 뛰어들었습니다. 그래서 초보자, 더미, 발레노크와 같은 모든 별명은 아쉽게도 모두 제 것입니다.... ))

추신 물론 생물학적 유사체에 대해 알고 있습니다. 그러나이 지식은 순전히 고급 프로그래밍 언어로 설명되는 프로세스의 본질에 대한 이해를 키우기위한 것입니다. 그리고 그것은 모든 곳에서 항상 그런 것은 아닙니다. 저는 생물학적 유사체를 신경 컴퓨터 유사체와 단단히 매듭짓지 않습니다. 어떻게 든 생물학 (자연)에서는 모든 것이 일회성으로 작동합니다. 그러나 신경 컴퓨팅에서는 어떤 이유로 대부분의 경우 작동하지 않습니다.

 

앤드류, 질문이 하나 더 있습니다.

input string GA_OperatorParam     =        "----운영자 매개변수----";
input double ReplicationPortion_P  = 100.0; //Dole 복제.
input double NMutationPortion_P    = 10.0;  //자연 돌연변이의 분수.
input double ArtificialMutation_P  = 10.0;  //인공 돌연변이의 돌연변이.
input double GenoMergingPortion_P  = 20.0;  //유전자 차용.
input double CrossingOverPortion_P = 20.0;  //크로스오버 공유.
input double ReplicationOffset_P   = 0.5;   //인터벌 경계 오프셋 계수
input double NMutationProbability_P= 5.0;   //각 유전자의 돌연변이 확률(%)

이러한 변수 값이 대부분의 최적화 문제에 적합하다고 말할 수 있나요? 일부 출처에서 말했듯이 "... 90%의 문제는 일반 퍼셉트론을 사용하여 해결할 수 있다"고 합니다.