2013-07-08 1 views
1

데이타베이스에서 팀을 선택하는 시스템을 개발해야합니다. 유전자 알고리즘을 사용하여 플레이어를 나타내는 초기 인구 (염색체)를 일부 식별자로 얻을 수 있습니까? 각 식별자는 다양한 규칙 (팀 리더 등의 요구 사항)을 적용하는 데 사용되는 데이터베이스의 유전자를 가지고 있습니다.유전자 알고리즘 염색체 생성

이러한 시나리오에서 GA가 도움이됩니까?

+0

질문을 더 명확하고 상세하게 만들 수 있습니까? 나는 당신이 무엇을 요구하고 있는지 확실하지 않습니다. – dakillakan

답변

1

예, 일 수 있습니다.

첫째, 진화 알고리즘은 개체의 유전자형으로 직접 작동합니다. 알고리즘에서 개인을 연결하기 위해 식별자를 사용한다고 명시하면 구현 세부 사항 (질문에는 쓸모 없다)과 오류가 단순히 나타나는 것입니다 (빠른 액세스를 위해 메모리에서 유전자형을로드해야 함).

문제는 간단한 조합 문제입니다. 우리가 크기 k의 팀을 형성하기 위해 가능한 주어진 선수 수에 대해, n!/(k! ⋅ (n - k)!) 조합의 합계가 가능합니다. 이것은 일반적으로 오늘날 컴퓨팅 리소스를 처리 할 수있는 가능성이 너무 많습니다. 진화 알고리즘은 분석 분해를 위해 너무 큰 주어진 함수의 최적화 또는 분석 분석이없는 경우에 최적화를 허용합니다.

이런 종류의 프로세스를 구현하는 방법에 대해 혼란스러워합니다. 첫째, 좋은 결과를 얻으려면 좋은 데이터 표현을 선택하는 것이 중요합니다. 먼저 최적화하려는 모든 특성과 성능에 대한 관계 및 교차 관계가 전체 성능에 영향을 미치는 지 여부를 명시해야합니다.

유전자 알고리즘은 너무 높거나 너무 가벼운 선택 단계를 처벌하지 않아 유전 적 다양성을 높게 유지해야합니다.

내가 말했던 분석은 순수하게 조합적인 견해에 대한 것이 었습니다. 상황이 중요한 팀의 관점에서 진화 알고리즘은 효율적이지 않습니다. 예를 들어 공격자가 3 명, 수비수가 2 명, 골키퍼가 필요한 경우 먼저 좋은 공격자의 특성에 따라 플레이어 목록을 세 번 정렬 한 다음 수비수와 최종 골키퍼로 정렬하여 최상의 요소를 취해야합니다 (정렬 후 첫 번째 요소)를 작성하여 팀을 구성하십시오. 이렇게하면 진화 알고리즘을 사용하는 것보다 더 빠른 방법으로 최적의 결과를 얻을 수 있습니다. 유전 알고리즘과 같은 진화 알고리즘은 게임의 메 커닉이나 최적의 플레이의 내부 동작을 모르는 경우 가장 중요합니다.

그럼에도 불구하고 유전 알고리즘을 사용하여 가능성과 한계를 파악하는 것이 좋습니다. 좋은 아이디어는 Python에서 deap 또는 pyevolve과 같은 간단한 언어로 간단한 프레임 워크로 시작하여 아이디어를 시도하는 것입니다.

+0

나에게 명확한 아이디어를 준 긴 설명을 해주셔서 감사합니다. 그렇다면 GA가 그러한 문제를 해결하는 데 완벽하게 적합하지 않을 것이라고 말한 것입니다. 퍼지 논리 또는 신경망은 이것보다 효과적 일 것입니다. 지금까지 논문에서 나는 GA가 그들이 제시 한 사실에 가장 잘 맞는 것 같았다. GA가 적용될 수 있다고 생각하게 만든 주된 참고 문헌은 아래의 연구 논문입니다. http://www.iitk.ac.in/kangal/papers/k2011016.pdf – user2550882

+0

질문에 귀뚜라미에 대해 이야기 했어야합니다. 우리를 문맥에 넣었습니다. 나는 크리켓의 규칙을 모르지만 정렬 및 많은 팀 관계 성능으로 간단하게 해결할 수없는 기능을 최적화하려는 경우 (전체 [팀]은 부분의 합계보다 훨씬 좋을 수 있습니다 [ 개별 플레이어]), 유전자 알고리즘이 가능합니다. 할 수있는 것처럼 많은 유행어를 말하고있는 것 같습니다. 당신은 그들의 내부 작동을 분석하려고 노력해야한다.그런 다음 문제에 적용되는지 이해하게됩니다. 힌트 : 제안 된 기술의 입력과 출력을 확인하십시오. – Soravux

+0

네, 귀뚜라미는 언급하지 않았어요. 당신이 책상 점검을하고 얼마나 잘 운행하는지 알고 싶다는 뜻입니다. 예를 들어 조지아 초기 인구 다음에 피트니스 기능, 교차 및 돌연변이로 구성되며 최종 산출물을 생각하면? 퍼지 논리 같은 나의 대안 기술에 대해서도 똑같이 똑같이 적용됩니다. 도움을 주셔서 감사합니다 – user2550882