2个稳定版本
1.0.1 | 2022年3月6日 |
---|---|
1.0.0 | 2021年8月26日 |
#541 in 科学
355KB
10K SLoC
平滑在线凸优化
开发
测试
可以使用 cargo test
运行单元和集成测试。
持续集成
我们使用Clippy作为代码检查工具,以及使用rustfmt作为代码格式化工具,分别可以通过 cargo clippy
和 cargo fmt
运行。
Python绑定
可以使用Maturin为这个crate构建Python绑定。
- 创建虚拟环境:
python3 -m venv venv
- 构建新的绑定:
maturin develop
现在,绑定作为soco
包可用。
lib.rs
:
平滑在线凸优化算法
平滑在线凸优化(SOCO)是选择决策空间中的一些点,以最小化因选择一个点而支付的击中成本(该成本在每轮之间会改变),以及为在决策空间中的移动而支付的移动成本的问题。
因此,SOCO可以理解为具有额外平滑元素的在线凸优化。
本工作的一个特殊重点是将其应用于数据中心的动态规模调整。
致谢
以下是我于TUM的本科毕业论文工作成果,在Prof. Dr. Susanne Albers的指导下完成,并由Jens Quedenfeld指导。
概述
实现可以分为三个主要部分。
- 算法 - SOCO和相关问题的各种离线和在线算法的实现。 以下是已实现的算法的完整列表。
- 流式处理 - 用于实际中流式处理在线算法的工具。这包括一个TCP服务器,可以通过查询来依次运行在线算法的迭代。
- 数据中心模型 - 为了动态调整数据中心的大小,这个实现包括了一个全面的数据中心成本模型。
为了达到最佳性能,所有内容都使用Rust实现,并且高度并行化。包括Python绑定,以便与流式处理和数据中心模型组件交互。
依赖项
~20MB
~388K SLoC