我使用cplex迭代了20次求解U_SESO,我应该怎么记录下每次迭代的结果
时间: 2024-10-09 12:14:48 浏览: 24
如果你使用CPLEX (IBM 的线性规划求解器) 进行了多次迭代,并想要记录每次迭代的目标函数 `U_SESO` 的变化,你可以按照以下步骤操作:
1. **初始化数组**:首先,创建一个二维数组或列表,用于存储每次迭代的步数(可以作为第一维)和对应的 `U_SESO` 值(第二维度)。
```python
iterations_results = []
```
2. **循环迭代**:在每次迭代后,更新这个数组。例如,在每次求解后,获取 `U_SESO` 的当前值并添加到数组中:
```python
iteration_count = 0
for _ in range(20): # 模拟20次迭代
cplex.solve() # 解决一次问题
iteration_result = {'step': iteration_count, 'U_SESO_value': cplex.solution.get_objective_value()}
iterations_results.append(iteration_result)
iteration_count += 1
```
3. **保存结果**:每次迭代结束后,可以用你喜欢的方式(如CSV文件、JSON、数据库等)将 `iterations_results` 保存下来。例如,如果选择CSV:
```python
import csv
with open('cplex_iterations.csv', mode='w', newline='') as file:
writer = csv.DictWriter(file, fieldnames=['Step', 'U_SESO'])
writer.writeheader()
for result in iterations_results:
writer.writerow(result)
```
现在,你就有了每次迭代的关键信息,包括迭代次数以及 `U_SESO` 的值。
阅读全文