최근에 저는 multiknapsack 문제에 대한 전통적인 유전 알고리즘을 개선해 왔습니다. 그래서 제 개선 된 유전자 알고리즘은 전통적인 유전 알고리즘보다 잘 작동합니다. 나는 시험했다. (나는 GA 라이브러리를 테스트하기 위해 OR 라이브러리 (http://people.brunel.ac.uk/~mastjjb/jeb/orlib/mknapinfo.html)에서 공개적으로 사용되었습니다.) 다른 사람은 다른 향상된 GA를 알고 있습니까? 다른 개선 된 유전자 알고리즘과 비교하고 싶었습니다. 사실 나는 인터넷에서 수색했다. 그러나 비교할 좋은 알고리즘을 찾을 수 없습니다.multiknapsack 문제에 대한 유전자 알고리즘을 개선했습니다.
답변
에만 동일한 인코딩 및 피트니스 기능 문제에 솔루션을 비교할 수 있습니다 (그들은 해당하는 문제입니다 의미). 문제가 다르다면 문제는 변화함에 따라 어떤 비교도 신속하게 관련성이 없어집니다. 왜냐하면 피트니스 기능은 당신이 해결하려고하는 것이 무엇이든간에 항상 애드혹 (ad-hoc)이기 때문입니다. 사실, 피트니스 알고리즘은 유전자 알고리즘 툴킷을 사용하는 경우 코딩해야하는 유일한 것입니다. 다른 모든 것들은 보통 상자에서 나오기 때문입니다.
다른 한편으로, 적합도 함수가 동일하다면, 다른 돌연변이 비율, 크로스 오버의 다른 구현 또는 완전히 다른 진화론 적 패러다임 (예 : 공진화)과 같은 다른 매개 변수에서 주어진 결과를 비교하는 것이 이치에 맞습니다. 표준 GA와 비교하여 유전자 발현 등이있다.
네, 정말로 의례, 나는 그것을 완전히 받아들입니다. 내가 문제의 조건에서 피트니스 기능을 할 때. 그것은 정말로 일하고있었습니다. 그래서 지금 나는 교차율, 돌연변이 율과 같은 일부 매개 변수를 변경하고 있습니다. 그러나 실제로 이것들은 이미 연구되었습니다. 이미 돌연변이가 문제 1/n에 따라 달라지는 것과 같은 것을 의미합니다. 이제 내가하고있는 것은 크로스 오버 오퍼레이터를 수정하는 것이다. GA 퍼포먼스를 향상시키는 것은 분명히 이해되었다. 현재 나의 알고리즘은 어쨌든 많은 알고리즘보다 잘 작동하고 있습니다 (방금 멀티 낵삭 문제를 테스트했습니다). 그러나 나는 그것을 위해 충분하지 않다. – user347918
뭔가 이해가 안되는 세상이 너무 크다. 내가 kkk를 이해할 때 세계는 때때로 너무 작습니다. 아직도 노력하고있어. – user347918
는 비교할 수에 괜찮은 GA 방법의 숫자가 있어야합니다. 그러나 이미 테스트 한 "전통적인"GA 방법을 정확히 명확하게 설정해야합니다. 내가 추천 할 수
한가지 좋은 방법은 다중 목적 최적화를 위해 개발 된 NSGA-II algorithm이다.
은 다른 아이디어를 다음에서 살펴 보자 :- Genetic Algorithm - Wikipedia
- 카를로스 A. Coello Coello (1999). "A Comprehensive Survey of Evolutionary-Based Multiobjective Optimization Techniques", 지식 및 정보 시스템, Vol. 1, pp.269-308.
- Carlos A. Coello Coello et al (2005). "Current and Future Research Trends in Evolutionary Multiobjective Optimization", 진화 알고리즘을 사용한 정보 처리, Springer.
유전자 알고리즘을 사용하여 멀티 낵삭 솔루션의 최첨단 기술을 향상 시키려고하십니까? 아니면 multiknapsack을 테스트 플랫폼으로 사용하여 유전자 알고리즘 기술을 발전 시키려고합니까? (당신이 명확히 수 있습니까?)
어느 하나에 따라하는 것이 목표입니다, 귀하의 질문에 대한 대답은 완전히 다릅니다. 다른 사람들이 후자의 문제를 다루었 기 때문에 나는 전자를 가정 할 것이다.
기본적인 유전자 알고리즘을 통해 조금 큰 비약이 있었다. 유전 알고리즘을 사용하여 멀티 낵 코드를 푸는 가장 좋은 방법은 결과적인 성능의 차이를 결정하고 근본적인 유전자 알고리즘을 수정하는 물체를 날려 버릴 수있는 돌연변이 및 크로스 오버 연산자의 인코딩을 개선하는 것입니다 . 다중 변형에 맞춘 돌연변이 및 교차 연산자를 만들기 위해 할 수있는 일이 많이 있습니다.
우선 멀티 낵팩에 대한 문헌을 조사하여 사람들이 멀티 낵팩에서 사용한 검색 공간과 솔루션 기술의 종류가 무엇인지 확인합니다. 최적 또는 차선의 방법 (유전자 알고리즘과 무관)에서 어떤 종류의 검색 연산자를 사용합니까? 변수로 무엇을 인코딩하고 값으로 인코딩합니까? 휴리스틱 한 평가 기능이 사용됩니까? 그들은 어떤 제약 조건을 확인합니까?그렇다면 그들의 인코딩을 당신의 돌연변이 및 교차 연산자에 적용하여 유전 알고리즘에서 얼마나 잘 수행하는지 확인하십시오.
효율적인 검색 공간 인코딩 또는 다중 힙합 문제의 정확한 휴리스틱 평가 기능이 매우 효과적인 돌연변이 및 교차 연산자로 변환 될 가능성이 큽니다. multiknapsack은 연구 문헌의 큰 코퍼스에서 매우 잘 연구 된 문제이므로, 그것은 당신을위한 금광이어야합니다.
죄송합니다. 명확한 답변이 아닙니다. 나는 multiknapsack을 테스트 플랫폼으로 사용하여 유전자 알고리즘 기술을 발전 시키려고 노력하고 있습니다. 알겠습니다. 나는 네가하는 말을 모두 고려할 것이다. – user347918
"전통적인 유전 알고리즘"이 무슨 뜻인지 잘 모르겠습니다. 간단한 유전 알고리즘 (예 : 개체군 크기, 돌연변이 비율, 교차 방법, 선택 방법, 유전자형에서 해를 코딩하는 방법)에서 사용할 수있는 다양한 설정이 있습니다. 유전자 알고리즘의 명확한 대표자를 제공하는 알고리즘을 찾는 것은 매우 어려울 것입니다. – metaliving