저는 GA로 작업 중이므로 게놈을 수정해야합니다. 게놈의 최소값을 임의의 프로세스를 나타내는 "플래그"로 설정했습니다. 따라서 함수가 포함 된 범위 [0,8]에서 입력을받는 동안 GA는 값 [4,8] 만 선택합니다. "4"의 인스턴스는 [0,4]가 될 다른 목록의 번호로 바꿔야합니다. 이것은 매우처럼목록의 항목을 다른 목록 (Python)의 해당 항목으로 바꿉니다.
#-------------------------------------------------------------------------------
def modify_chromosome(chromosome):
# If value == replace option, replace from another list
for (index,value) in enumerate(chromosome):
# Note "<=" necessary in case GA mutates the values
if value <= flag_option:
chromosome[index] = changed_value[index]
# This changes the actual chromosome in the GA
return chromosome
changed_value 목록 이전
changed_value = random.randint(0,flag_option,len(num_entries))
위의 코드는 잘 작동
으로 정의되어 있지만, 목록을 반복 :
나는 현재 다음과 같은 코드를 사용하여이를 달성 시간이 많이 소요됩니다 (전체 실행 시간의 약 10 %가이 기능에 포함됨).
내 질문 : 위 코드 블록을 구현하는 효율적인 방법이 있습니까?
미리 감사드립니다.
분명히 무엇을 하든지, 반복해야합니까? –
작업 코드 개선에 관한 질문은 [codereview.se]에 더 적합합니다. –
이 질문은 스택 Exchange 네트워크의 다른 사이트에 속해 있습니다. http://codereview.stackexchange.com – zmo