用python编写一个由NEH规则初始化种群的代码
时间: 2023-08-27 10:03:55 浏览: 250
好的,以下是一个用Python编写的由NEH规则初始化种群的代码示例:
```python
import numpy as np
# 任务数量
num_tasks = 10
# 随机生成任务处理时间
processing_times = np.random.randint(1, 11, num_tasks)
# 初始化种群
population = []
# NEH规则初始化
for i in range(num_tasks):
# 计算当前任务插入到每个位置时的完成时间
temp_processing_times = np.insert(processing_times, i, 0)
completion_times = np.zeros(len(temp_processing_times))
for j in range(len(temp_processing_times)):
if j == 0:
completion_times[j] = temp_processing_times[j]
else:
completion_times[j] = completion_times[j-1] + temp_processing_times[j]
# 按完成时间从小到大排序
sorted_indexes = np.argsort(completion_times)
# 将当前任务插入到最小完成时间位置
temp_population = []
for k in sorted_indexes:
if k == i:
temp_population.append(num_tasks-1)
elif k > i:
temp_population.append(k-1)
else:
temp_population.append(k)
population.append(temp_population)
print(population)
```
以上代码中,我们首先随机生成了任务处理时间,然后按照NEH规则初始化种群,最终输出了一个种群列表。其中,每个元素代表一个个体,每个元素中的数字代表任务的顺序。例如,[2, 5, 1, 3, 4, 0, 6, 7, 8, 9]表示第一个任务是第3个,第二个任务是第6个,以此类推。
阅读全文