차세대가 더 나을 것이라는 것을 어떻게 알 수 있습니까?


32

나는 이 MSDN 기사 에서 최근에 유전자 알고리즘에 대해 소개했습니다. 이 기사 에서 그는 조합 진화라고 부르지 만, 같은 것 같으며 두 가지 잠재적 솔루션을 결합하여 항상 최소한 부모님으로서 좋습니다.

왜 그렇습니까? 확실하게 결합하면 무언가 더 나빠질 수 있습니다.

내가 이해하는 한, 알고리즘은 종의 수컷과 암컷이 자손을 생산할 때 그 자손이 두 부모의 특성을 가질 것이라는 개념을 기반으로합니다. 어떤 조합은 더 좋을 것이고, 어떤 조합은 나빠질 것이고, 어떤 조합은 더 좋을 것입니다. 더 나은 것 ( "더 나은"의 정의가 적절할지라도)은 개선 된 특성을 가진 해충을 생존하고 생산할 가능성이 더 높습니다. 그러나이 됩니다 약한 조합합니다. 이것이 GA에 문제가되지 않는 이유는 무엇입니까?


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?약한 조합은 버려지기 때문입니다.
Robert Harvey

6
우리 는 좋은 것을 버리지 않고 나쁜 것을 버려서 차세대 가 더 나 빠지지 않을 것이라는 것을 알고 있습니다. 그리고 좋은 것들 중 일부를 결합하면 더 좋은 것을 만들 수는 있지만, 보장되지는 않습니다.
user253751

7
Why isn't this an issue with GA?글쎄요, 더 정확하게 말하면됩니다. GA를 사용하여 최적화하기위한 많은 (많은) 매개 변수 중 하나는 모집단 크기입니다. 너무 적 으면 더 약한 사람 만 생산할 수 있지만 너무 높으면 피트니스 기능과 관련된 계산 시간이 너무 길 수 있습니다.
Loufylouf

3
그것은 차이의 사육제초 : 사육 단계 더 악화 자손을 생산하는 (것)이 수 있지만, 제초 단계는 다음 사육 단계 전에 최악의 실적을 제거 (해야)합니다.
TripeHound

모두 감사합니다. 내가 올바르게 이해한다면, 그가 나를 길에서 던져 버린 기사에서 그것을 표현한 방식이었습니다. 그는 " 아마도 아주 좋은 새로운 아이 유기체가 가난한 유기체를 대체한다 "고 말했다. 즉 :) 잘못 보인다
Avrohom Yisroel

답변:


43

유전자 알고리즘은 모집단을 컬링하여 각 세대마다 개선하려고합니다. 모든 회원은 피트니스 기능에 따라 평가되며, 점수가 높은 부분 만 재생산 할 수 있습니다.

그러나 당신이 옳습니다 : 차세대가 이전의 점수를 향상시킬 것이라는 보장은 없습니다.

Dawkins의 족제비 프로그램을 고려하십시오 : "진화"문자열 "Methinks it is like a weasel". 임의의 문자열에서 시작하여 피트니스 함수는 가장 가까운 텍스트 일치를 평가하여 다음 세대를 만들기 위해 교란됩니다. 간단한 크로스 오버 재현으로 두 개의 높은 스코어링 스트링이 결합되어 낮은 스코어링 자손을 매우 쉽게 생성 할 수 있습니다. 단일 하이 피트니스 문자열의 "무성"무작위 돌연변이조차도 아이의 피트니스를 낮출 수 있습니다.

이것이 반드시 결함이 아니라는 점은 주목할 가치가 있습니다. 이러한 종류의 검색에는 로컬 최대 값 이라는 아이디어가 있습니다. 인구의 회원의 솔루션 나타낼 수 없는 최적의 결과지만, 방법에 악화하지 않고 달성 할 수있는 최선입니다.

족제비 프로그램의 피트니스 기능은 편집 거리를 찾을뿐만 아니라 "단어"라는 개념을 가지고 있으며 문자열의 마지막 단어가 동물의 이름인지 테스트합니다. 모든 동물 이름은 점수 "weasel"가 좋지만 큰 보너스를 얻습니다.

이제 "Methinks it is like a walrus"진화 하면 어떻게됩니까 ? 잘 득점합니다. 궁극적 인 표적 스트링뿐만 아니라 "Methinks it is like a walrut"단일 단계의 돌연변이에 의해 도달 될 수있는 보다 근접하거나 다른 유사 변이.

해마 문자열은 로컬 최대이며, 프로그램이하지 않으면 검색이이 박히 수 있습니다 다음 세대의 점수가 더 악화 될 수 있습니다.


1
관련성 : youtube.com/watch?v=YT1vXXMsYak-Dawkin 의 컴퓨터 프로그램 시연은 약 12 ​​분 정도 소요되지만 전체 강의는 관찰 할 가치가 있지만 (생물학적이든 시뮬레이션이든) 진화론의 기본 이론적 근거를 설명합니다. 접지.
Periata Breatta

24
실제로, 때때로 "유전자 다양성"을 증가시키기 위해 특정 비율의 약한 채점 구성원이 생존하도록 허용 할뿐만 아니라 기존 구성원을 전혀 기반으로하지 않는 완전 무작위 돌연변이를 도입 할 수 있습니다.
Jörg W Mittag

@JoshCaswell 감사합니다. 모든 대답은 훌륭했지만, 내가 요청한 모든 내용과 아직 묻지 않은 몇 가지 사항을 다루므로 허용되는 것으로 표시합니다!
Avrohom Yisroel

다행 나는 @AvrohomYisroel 도움이 될 수
조쉬 캐스 웰

6

우리는 그것이 나아질 지 몰라요, 나빠질 지 않을 것입니다.

모든 세대에서 최고의 요소의 샘으로 구성 될뿐만 아니라 최고의 요소 자체도 포함합니다. 그들은 여전히 ​​존재하기 때문에 이전과 같은 점수를 얻을 것입니다. 더 나은 자손이 없다면, 이전 세대의 우승자들은 다시 이길 것이며, 다시 변이 / 번식한다는 것을 의미합니다.

고려 : 전구 개인이 편지 인으로, 예를 들어 A A는 아이가이 번호 등을 추가하여 정의되는 돌연변이 A1, 크로스 빵 솔루션은 부모 등 주위에 괄호로 기록되고 (A1B2) 그리고 그 뒤에 직관 개별 writen의 피트니스 코어 - 더 나은 것[12]

시연을 위해 5의 풀을 고려하십시오. 여기서 우리는 최고 2를 유지하고 각각의 돌연변이 1 개와 교배종을 채 웁니다

1 세대

  • A [10]
  • B [5]
  • C [4]
  • D [삼]
  • E [1]

유지 A, B그들이 거기에 후손 리필 최고의 두, 기타 3 개 슬롯을 한,

2 세대

  • A [10]
  • B [5]
  • (AB) [7]
  • A1 [12]
  • B1 [4]

유지 A, 그리고 (AB)할아버지 것없는이 수단 - 그들은 최고 2이기 때문에, A대부분의 cildren이 약한 작업으로 여전히 풀에있을 것입니다

3 세대

  • A [10]
  • (AB) [12]
  • (A(AB)) [14]
  • A2 [8]
  • (AB)1 [13]

보관 (AB)1(A(AB))자녀의 두 그들을 이길 어떠한 조부모가 유지되지 않았다 이번에는 -. 그러나 (AB1)조금 더 나쁘게 수행 했다면 (AB)대신 유지했을 것입니다.

이것은 점수가 안정화 될 때까지 계속됩니다. 어떤 종류의 로컬 최대 값 (전역 적으로 최대 최대 값)에 도달했음을 나타냅니다. 이를 감지하는 이유 중 하나는 동일한 개인이 계속해서 차세대에 복제되는 경우입니다. (너무 오래 걸릴 수있는 높은 차원의 문제에 대해서는 개선을 확인하는 것이 좋습니다 <특정 공차)


1
"모든 세대에서 최고의 요소의 샘으로 만 구성되는 것이 아니라 최고의 요소 자체도 포함합니다."구현에 따라 다릅니다. 일부 구현에서는이 작업을 수행하지 않습니다. 그렇게하는 것을 때때로 "엘 리즘"이라고합니다.
jpmc26

4

일반적으로 유전자 알고리즘은 각 세대의 부모에 대해 많은 (임의의) 변형을 만들어 작동합니다. 그런 다음 일부 선택 기능이 적용 되고이 기능에 따라 가장 적합한 자손이 생존합니다. 따라서 변이가 무작위이기 때문에 자손이 더 나을 필요는 없지만 선택과 결합 하면 시간이 지남에 따라 개선됩니다.


4
아, 기사가 약간 오도 된 것처럼 들립니다. 그는 " 아마도 아주 좋은 새로운 아이 유기체는 가난한 유기체를 대체한다 "고 말했다. 그가 많은 유기체를 결합하고 있다면 , 개별적인 새로운 유기체가 이전의 유기체보다 약할지라도 전체적으로 증가 할 것으로 예상됩니다. 맞습니까? 감사합니다
Avrohom Yisroel

@AvrohomYisroel : 맞습니다.
JacquesB

1
@AvrohomYisroel : 비전문가에 대한 대략적인 이해를주의하십시오. (또한, 전문가의 정밀도 "전문 용어의 벽"을 조심.)
에릭 타워를

@EricTowers 그래, 문제가 보인다! 나는 그가 쓴 이전 기사로 판단하여 전문가라고 생각했지만 분명히이 기사에서 큰 실수를 한 것 같습니다.
Avrohom Yisroel

4

대학에서 유전자 알고리즘을 연구했을 때 다음과 같이 설명되었습니다.

솔루션이 "유전자"의 조합이라고 상상해보십시오. 여기에서 각 유전자는 솔루션 전체의 정도에 영향을줍니다. 두 용액이 짝을 이루면 각 부모에서 무작위로 유전자가 선택됩니다.

이제 유전자가 일반적으로 좋은 해결책으로 이끌면 유전자 풀의 빈도가 증가합니다. 극단적 인 경우, 유전자가 인구를 지배 할 것입니다.

따라서 유전자 알고리즘 (및 일반적으로 진화)에 대해 생각할 때는 개인에 대해 생각해서는 안됩니다. 유전자와 집단을 전체적으로 생각해야합니다. 하나의 "최상의"솔루션을 잃어버린 경우에도 유전자가 손실되었다는 의미는 아닙니다.

유전자 알고리즘에는 엘리트주의에 대한 아이디어도 있습니다. 즉, 최상의 솔루션은 항상 여러 세대에 걸쳐 유지됩니다. 이렇게하면 알고리즘의 수렴 속도가 빨라지지만 알고리즘이 로컬 최적화에 걸리기 쉬워집니다.


2

GA 알고리즘은 결정적이지 않으며 각 세대에서 개선을 보장 할 수 없으며 전체 최적을 찾도록 보장하지도 않습니다. 그러나 피트니스 기능을 사용하여 GA를 선택하면 "좋은 솔루션"이 살아남을 가능성이 높아집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.