#monte-carlo #monte #carlo #schedules #estimation #schedule #project

bin+lib mcps

用于在项目进度上运行蒙特卡洛模拟的命令行工具

2 个版本

0.1.1 2024年8月15日
0.1.0 2024年8月15日

模拟 中排名第 22

Download history 171/week @ 2024-08-10

每月下载量 171

MIT 许可证

155KB
947 代码行

蒙特卡洛项目调度器 (mcps)

蒙特卡洛项目调度器 (mcps) 是一个命令行工具,它可以在项目进度上运行蒙特卡洛模拟以估计完成时间和所需工作量。它通过提供对进度持续时间和总工作量的概率分析,帮助项目经理和工程师更好地了解潜在的项目风险和时间表。

功能

  • 模拟项目进度:运行多个模拟以估计项目完成时间和总工作量的概率分布。
  • 可定制的输入:接受 YAML 或 JSON 格式的项目进度,可以选择覆盖某些参数,如工人数或迭代次数。
  • 可视化输出:生成基于 ASCII 的累积分布函数 (CDF) 图,提供易于理解的模拟结果可视化。

安装

先决条件

您需要在系统上安装 Rust 以构建项目。您可以使用 rustup 安装 Rust。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

选项 1:从 Crates.io 安装(首选)

cargo install mcps

选项 2:克隆并本地构建仓库

git clone https://github.com/swaits/mcps.git
cd mcps
cargo build --release

二进制文件将在 target/release/mcps 下可用。

使用方法

构建工具后,您可以通过提供 YAML 或 JSON 格式的项目进度文件来使用它。

基本用法

mcps example.yaml -i 100000 -w 10

此命令使用 100,000 次迭代并覆盖工人数为 10 运行 example.yaml 进度文件上的蒙特卡洛模拟。

命令行选项

  • -i, --iterations <iterations>:指定要运行的迭代次数。必须至少为 100。默认值为 50,000。
  • -w, --workers <num_workers>:覆盖调度文件中指定的工作者数量。
  • -v, --version:打印版本信息。
  • -h, --help:打印帮助信息。

调度文件格式

该工具接受YAML或JSON格式的调度文件。以下是一个YAML格式的示例

num_workers: 5 # for the purpose of scheduling simulation
estimate_confidence: 0.80 # confidence actuals will fall inside estimate bounds
tasks:
  - id: DesignPhase
    min_time: 1.5 # 1.5 days
    max_time: 3.5 # 3.5 days
    dependencies: []
  - id: ImplementationPhase
    min_time: 2.25 # 2.25 days
    max_time: 4.75 # 4.75 days
    dependencies: [DesignPhase]

此存储库包含JSONYAML格式的示例。

示例输出

该工具生成基于ASCII的累积分布函数(CDF)图,直观地表示项目持续时间和努力程度的分布

example output of mcps

项目详情

贡献

欢迎贡献!如果您想做出贡献,请Fork存储库并按您喜欢的进行修改。拉取请求热烈欢迎。

问题

如果您在使用此工具时遇到任何问题,请随时在存储库中提交问题。

致谢

此工具由Stephen Waits开发。欢迎提出建议和贡献!

许可证

本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。

依赖关系

~6.5MB
~131K SLoC