2个稳定版本

1.0.1 2022年3月6日
1.0.0 2021年8月26日

#541 in 科学

MIT许可证

355KB
10K SLoC

平滑在线凸优化

开发

测试

可以使用 cargo test 运行单元和集成测试。

持续集成

我们使用Clippy作为代码检查工具,以及使用rustfmt作为代码格式化工具,分别可以通过 cargo clippycargo fmt 运行。

Python绑定

可以使用Maturin为这个crate构建Python绑定。

  1. 创建虚拟环境:python3 -m venv venv
  2. 构建新的绑定:maturin develop

现在,绑定作为soco包可用。


lib.rs:

平滑在线凸优化算法

平滑在线凸优化(SOCO)是选择决策空间中的一些点,以最小化因选择一个点而支付的击中成本(该成本在每轮之间会改变),以及为在决策空间中的移动而支付的移动成本的问题。

因此,SOCO可以理解为具有额外平滑元素的在线凸优化。

本工作的一个特殊重点是将其应用于数据中心的动态规模调整。

论文演示文稿 (带有动画)文档

致谢

以下是我于TUM的本科毕业论文工作成果,在Prof. Dr. Susanne Albers的指导下完成,并由Jens Quedenfeld指导。

概述

实现可以分为三个主要部分。

  • 算法 - SOCO和相关问题的各种离线和在线算法的实现。 以下是已实现的算法的完整列表
  • 流式处理 - 用于实际中流式处理在线算法的工具。这包括一个TCP服务器,可以通过查询来依次运行在线算法的迭代。
  • 数据中心模型 - 为了动态调整数据中心的大小,这个实现包括了一个全面的数据中心成本模型。

为了达到最佳性能,所有内容都使用Rust实现,并且高度并行化。包括Python绑定,以便与流式处理数据中心模型组件交互。

依赖项

~20MB
~388K SLoC