유전자 알고리즘을 사용하여 두 개의 변수가있는 두 선형 방정식의 간단한 시스템을 풀고 싶습니다. 이는 주로 그들이 일하는 방식을 더 잘 이해할 수있게 도와줍니다.숫자를 유전 알고리즘에서 어떻게 염색체로 표현할 수 있습니까?
모든 것이 꽤 간단 해 보이지만,이 문제에 대한 염색체에서 가능한 솔루션을 인코딩하는 방법을 확신 할 수 없습니다.
솔루션을 나타 내기 위해 염색체에서 인코딩하려고하는 두 개의 변수가 있습니다. 각 변수가 8 비트 숫자로 표현 될 수 있다면 16 비트 2 진 코드화 된 염색체 (1과 0의 문자열)를 만들 수 있습니까?
나는 그것이 어떻게 작동하는지 잘 모르겠습니다. 두 부모가 번식을 위해 선발된다면 어떻게 이진 문자열로부터 무작위로 유전자를 선택하면 아마도 더 좋은 해결책이 될까요? 이것이 바이너리 문자열이 작동하지 않는다고 생각하는 이유입니다. 그래서 어떤 대답이라도 대단히 감사하겠습니다!
두 부모의 비트를 무작위로 선택하는 것이 아닙니다. 당신은 순서대로 비트를 통과합니다. 두 부모 모두 같은 비트 위치에 1이 있으면 유전자가 전달됩니다. 양쪽 부모가 같은 비트 위치에 0을 가지고 있다면 유전자는 전달되지 않습니다. 부모 중 한 명이 1이고 다른 하나가 0 인 경우에만 무작위 선택이 적용됩니다. –
답장을 보내 주셔서 감사합니다. 답변이 맞으면 올바르게 표시해 드리겠습니다. – Zach
Gilbert LeBlanc이 말하는 것은 UniformCrossover입니다. 매우 혼란스럽고 한 쪽 부모의 더 큰 조각을 보존하지 않기 때문에 사용하지 않는 것이 좋습니다. 싱글 포인트 크로스 오버가 가장 좋습니다. 여기서 문자열의 교차점을 선택하고 첫 번째 부모에서 첫 번째 절반을 선택하고 두 번째 부모에서 두 번째 절반을 선택합니다. 점은 무작위로 선택됩니다. – Andreas