fix readme

This commit is contained in:
2026-01-31 13:30:38 +08:00
parent b9900a1f8a
commit e61aaeded3
8 changed files with 18 additions and 15 deletions

View File

@@ -23,7 +23,7 @@
纯火箭方案10 发射场 * 每日 1 发)排布与能量-工期曲线;并做发射频率敏感性分析。 纯火箭方案10 发射场 * 每日 1 发)排布与能量-工期曲线;并做发射频率敏感性分析。
- **`combined_scenario.py`** - **`combined_scenario.py`**
混合方案(电梯优先 + 火箭补齐),输出组合方案能量-工期曲线,并生成 **100300 年**区间三方案同图对比。 混合方案(电梯优先 + 火箭补齐),输出组合方案能量-工期曲线,并生成 **100300 年**区间三方案同图对比。
- **`../pareto_optimization.py`**(新增) - **`pareto_optimization.py`**(新增)
**Pareto 前沿 + “膝点knee point”**分析:在**组合方案可行区间(约 101186 年)**内,寻找“时间–能量”双目标权衡的拐点,并输出推荐决策点与图表/CSV。 **Pareto 前沿 + “膝点knee point”**分析:在**组合方案可行区间(约 101186 年)**内,寻找“时间–能量”双目标权衡的拐点,并输出推荐决策点与图表/CSV。
- **`launch_capacity_analysis.py`** - **`launch_capacity_analysis.py`**
(可选)对历史火箭年发射量做 Logistic / Gompertz / Richards 拟合与预测,生成 `launch_capacity_*.png``launch_capacity_results.csv` (可选)对历史火箭年发射量做 Logistic / Gompertz / Richards 拟合与预测,生成 `launch_capacity_*.png``launch_capacity_results.csv`
@@ -40,8 +40,8 @@
| `combined_scenario_analysis.png` | 混合方案:总能量/电梯能量/火箭能量随工期变化 + 电梯占比 + 需要启用的火箭站点数 | | `combined_scenario_analysis.png` | 混合方案:总能量/电梯能量/火箭能量随工期变化 + 电梯占比 + 需要启用的火箭站点数 |
| `scenario_comparison.png` | elevator-only / rocket-only / combined 的完工时间与能量柱状对比 | | `scenario_comparison.png` | elevator-only / rocket-only / combined 的完工时间与能量柱状对比 |
| **`three_scenarios_comparison.png`** | **100300 年区间**:纯火箭、纯电梯、混合方案的“年份-能量”折线同图对比 | | **`three_scenarios_comparison.png`** | **100300 年区间**:纯火箭、纯电梯、混合方案的“年份-能量”折线同图对比 |
| **`../pareto_combined_range.png`** | **组合方案101186 年Pareto 前沿 + 膝点检测**(多方法对比、边际收益、构成变化) | | **`pareto_combined_range.png`** | **组合方案101186 年Pareto 前沿 + 膝点检测**(多方法对比、边际收益、构成变化) |
| **`../combined_decision.png`** | 组合方案101186 年)推荐拐点的“决策图”(更适合直接放报告) | | **`combined_decision.png`** | 组合方案101186 年)推荐拐点的“决策图”(更适合直接放报告) |
| `launch_capacity_analysis.png` `launch_capacity_physical.png` `launch_capacity_predictions.png` | (可选)火箭发射能力上限/趋势拟合与预测 | | `launch_capacity_analysis.png` `launch_capacity_physical.png` `launch_capacity_predictions.png` | (可选)火箭发射能力上限/趋势拟合与预测 |
#### 数据文件(如存在) #### 数据文件(如存在)
@@ -132,15 +132,15 @@
<details> <details>
<summary><strong>5) Pareto 前沿与“膝点”(组合方案 101186 年)</strong></summary> <summary><strong>5) Pareto 前沿与“膝点”(组合方案 101186 年)</strong></summary>
> 说明:`pareto_optimization.py` 当前将图片/CSV 输出到上一级目录(`../`),因此这里用相对路径引用 > 说明:`pareto_optimization.py` 与其输出(图片/CSV)均在本目录中
#### `../pareto_combined_range.png` #### `pareto_combined_range.png`
![pareto_combined_range](../pareto_combined_range.png) ![pareto_combined_range](pareto_combined_range.png)
#### `../combined_decision.png` #### `combined_decision.png`
![combined_decision](../combined_decision.png) ![combined_decision](combined_decision.png)
</details> </details>
@@ -295,17 +295,20 @@ Rocket Only (219 years): Total energy: 50609 PJ
> 这个分析回答“在可行区间内,选择多少年最划算”的决策问题:既不想太慢、也不想能耗太高。 > 这个分析回答“在可行区间内,选择多少年最划算”的决策问题:既不想太慢、也不想能耗太高。
> 我们把目标写成双目标:**最小化完工时间 \(T\)** 与 **最小化总能量 \(E\)**,并在 \(T\in[101, 186]\) 年上寻找“边际收益开始明显递减”的拐点knee point > 我们把目标写成双目标:**最小化完工时间 \(T\)** 与 **最小化总能量 \(E\)**,并在 \(T\in[101, 186]\) 年上寻找“边际收益开始明显递减”的拐点knee point
本目录运行: 本目录运行:
```bash ```bash
python ../pareto_optimization.py python pareto_optimization.py
``` ```
会生成(输出在上一级目录 `../` 会生成:
- `../pareto_combined_range.png` - `pareto_combined_range.png`
- `../combined_decision.png` - `combined_decision.png`
- `../pareto_combined_range.csv`(组合区间的 Pareto 数据) - `pareto_combined_range.csv`(组合区间的 Pareto 数据)
- `pareto_knee_analysis.png`(完整 100300 年范围的膝点分析)
- `decision_recommendation.png`(完整范围的决策建议图)
- `pareto_front_data.csv`(完整范围数据)
**组合区间101186 年)推荐膝点(示例输出)** **组合区间101186 年)推荐膝点(示例输出)**

View File

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

View File

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 276 KiB

View File

@@ -364,7 +364,7 @@ def analyze_knee_points(df: pd.DataFrame) -> Dict:
def plot_pareto_analysis( def plot_pareto_analysis(
df: pd.DataFrame, df: pd.DataFrame,
knee_analysis: Dict, knee_analysis: Dict,
save_path: str = '/Volumes/Files/code/mm/20260130_b/pareto_knee_analysis.png' save_path: str = '/Volumes/Files/code/mm/20260130_b/p1/pareto_knee_analysis.png'
): ):
""" """
绘制 Pareto 前沿与膝点分析图 绘制 Pareto 前沿与膝点分析图