유전학 알고리즘 이론적 질문
-
18-09-2019 - |
문제
나는 현재 "인공 지능 : 현대 접근"(Russell+Norvig) 및 "Machine Learning"(Mitchell) - Ainn의 기본을 배우려고 노력하고 있습니다.
몇 가지 기본 사항을 이해하기 위해 두 가지 'Greenhorn'질문이 있습니다.
Q1 : 염색체 001110 및 101101을 갖는 두 부모 A와 B를 각각 주어진 유전자 알고리즘에서, 다음 중 하나의 자손 중 하나는 원 포인트 크로스 오버로 인해 발생할 수있는 것은 무엇입니까?
A : 001101
B : 001110
Q2 : 위의 자손 중 어느 것이 2 점 크로스 오버에서 발생했을 수 있습니까? 그리고 왜?
조언하십시오.
해결책
역 크로스 오버 기능을 모르는 경우 부모를 찾을 수 없습니다 (따라서 AXB => (A, B) & (A) => (A, B)).
일반적으로 1 포인트 크로스 오버 기능은 다음과 같습니다.
a = A1 + B2
b = B1 + A2
당신이 알고 있더라도 ㅏ 그리고 비 너 해결할 수 없습니다 시스템 (4 개의 변수가있는 2 방정식 시스템).
A 또는/B의 두 부분을 알고 있다면 해결할 수 있습니다 (2 개의 변수가있는 2 방정식 시스템). A와 B를 모두 제공 할 때 질문의 경우입니다.
일반적으로 크로스 오버 함수는 역 함수가 없으며 솔루션을 논리적으로 찾아야합니다. 부모를 알고 있다면 크로스 오버를 수행하고 비교하십시오..
따라서 일반적인 공식을 만들려면 두 가지를 알아야합니다.
- 크로스 오버 기능.
- 역 크로스 오버 기능.
두 번째는 필요하지 않기 때문에 일반적으로 가스에 사용되지 않습니다.
이제 질문에 답하겠습니다.
Q1 : 염색체 001110 및 101101을 갖는 두 부모 A와 B를 각각 주어진 유전자 알고리즘에서, 다음 중 하나의 자손 중 하나는 원 포인트 크로스 오버로 인해 발생할 수있는 것은 무엇입니까?
보고 ㅏ 그리고 비 크로스 오버 지점이 여기에 있음을 알 수 있습니다.
1 2
A: 00 | 1110
B: 10 | 1101
일반적으로 크로스 오버가 사용됩니다 이 공식:
a = A1 + B2
b = B1 + A2
가능한 아이들은 다음과 같습니다.
a: 00 | 1101
b: 10 | 1110
질문에서 옵션 B를 제외합니다.
그래서 Q1에 대한 답은 결과가 다음과 같은 결과입니다. 크로스 오버 기능
Q2 : 위의 자손 중 어느 것이 2 점 크로스 오버에서 발생했을 수 있습니까? 그리고 왜?
A와 B를 보면 크로스 오버 포인트가 여기에있을 수 있습니다.
1 2 3
A: 00 | 11 | 10
B: 10 | 11 | 01
보통의 공식 2 점 크로스 오버는 다음과 같습니다.
a = A1 + B2 + A3
b = B1 + A2 + B3
그래서 아이들은 다음과 같습니다.
a = 00 | 11 | 10
b = 10 | 11 | 01
요청한 옵션과 비교합니다 (작은 ㅏ 그리고 비) 우리는 답을 말할 수 있습니다.
Q2. ㅏ: 둘 다 ㅏ 또는 비 2 점 크로스 오버의 결과 일 수 있습니다 AXB 주어진 크로스 오버 기능에 따라.
다시 한 번 불가능합니다 알지 못하고 귀하의 질문에 답변합니다 크로스 오버 기능.
내가 제공 한 기능은 GA에서 일반적이지만, 많은 것을 발명하여 질문에 대답 할 수 있습니다 (아래 의견 참조).
다른 팁
한 점 크로스 오버는 각 부모로부터 한 번의 결합을 할 때, 두 점 크로스 오버는 두 개의 결합을 할 때입니다. 즉 한 부모와 하나는 다른 부모로부터 두 사람.
보다 크로스 오버 추가 정보는 (Wikipedia).
Q1과 관련하여, (a)는 1 점 크로스 오버로 생성 될 수 있으며, 부모 A에서 비트 0-4를 가져 와서 부모 B에서 비트 5를 가져갈 수있었습니다. (b)는 할 수 없었습니다. ~하지 않는 한 크로스 오버 알고리즘은 널 기여, 즉 무게의 부모 기여를 허용합니다. 이 경우, 부모 A는 전체 염색체 (비트 0-5)에 기여할 수 있고 부모 B는 NIL을 기여하여 (B)를 산출합니다.
Q2와 관련하여 (a)와 (b)가 가능합니다. 테스트 할 조합이 몇 가지 있습니다. 쓰기에는 너무 지루하지만 펜과 종이로 작업을 수행 할 수 있습니다. :-)