遗传算法单点交叉操作python代码
时间: 2023-09-01 11:06:40 浏览: 145
以下是一个使用单点交叉操作的遗传算法的简单示例代码:
```python
import numpy as np
def single_point_crossover(parent1, parent2):
# 选择交叉点
crossover_point = np.random.randint(1, len(parent1))
# 生成两个子代个体
child1 = np.concatenate((parent1[:crossover_point], parent2[crossover_point:]))
child2 = np.concatenate((parent2[:crossover_point], parent1[crossover_point:]))
return child1, child2
# 示例使用的父代个体
parent1 = np.array([1, 2, 3, 4, 5])
parent2 = np.array([6, 7, 8, 9, 10])
# 执行单点交叉操作
child1, child2 = single_point_crossover(parent1, parent2)
# 输出结果
print("Parent 1:", parent1)
print("Parent 2:", parent2)
print("Child 1:", child1)
print("Child 2:", child2)
```
在这个示例代码中,`single_point_crossover` 函数实现了单点交叉操作。它接收两个父代个体 `parent1` 和 `parent2`,然后在一个随机选择的交叉点将两个个体进行切割,并生成两个子代个体 `child1` 和 `child2`。
在示例中,父代个体 `parent1` 是 `[1, 2, 3, 4, 5]`,父代个体 `parent2` 是 `[6, 7, 8, 9, 10]`。通过调用 `single_point_crossover` 函数,进行单点交叉操作,生成了两个子代个体 `child1` 和 `child2`。
最后,输出了父代和子代个体的值。注意,单点交叉操作将父代个体在交叉点处进行切割,并将部分基因从一个父代个体传递给子代个体,从而实现了遗传算法中的交叉操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)