解决设备选址问题

简介: 我们创建了一个新的快速启动方案,它扩展了 OptaPlanner 用例组合中的设施位置问题,并演示了如何使用新的 Java 本地堆栈 Quarkus 构建本地云应用程序

设施选址问题包括一组潜在的设施位置和一组需要由设施提供服务的消费点。目标是选择潜在设施地点的子集,尽量减少从消费者到其指定设施的距离之和,并尽量减少建立选定设施的总成本。

你可以在下面的图片中看到一个示例设施选址问题。蓝色圆圈代表消费者,灰色大头针代表潜在的设施位置。
facilityLocationProblemUninitialized.png

为了更好地理解这个问题,让我们用一个具体的用例来说明它。想象一下,你正在建立一个咖啡烘焙店网络,目标是在全国范围内提供咖啡。咖啡屋是消费者,咖啡屋是设施。

一家烘焙店的生产能力只能覆盖一定数量的咖啡店,所以你必须建立一定数量的烘焙店。你已经得到了一个地方的名单,你可以购买和经营一个烘焙。这些是你可以安置设施的潜在地点。每个地方都有一个不同的价格,你需要支付在那里开一个烘焙厂。价格代表设施建设成本。
image.png

挑战在于如何选择一系列可以购买的地方,如何通过选择更便宜的地方来尽量减少总的购买成本,同时尽量减少烘焙店和他们提供的咖啡馆之间的距离总和。

快速上手
工程项目结构
image.png

图2. Quickstart 项目结构

服务器端代码位于 src/main/java 目录中,被组织成四个包。

bootstrap 引导程序
生成一个随机的(但是可重复的)数据集,并在应用程序启动时用它填充存储库。

领域
包含 OptaPlanner 使用的域模型。@planningsolution、@planningentity 和 ConstraintProvider 在域包中。

持久性
负责持久化设施位置问题数据集。

restful
包含客户端代码用于启动和停止解决方案以及检索最佳解决方案的 restapi。

客户机代码位于 src/main/resources/META-INF/resources/目录中。它有一个包含基本 HTML 结构的 index. HTML 文件,并加载 app.js 文件,该文件调用服务器的 REST API,使网页动态。

规划领域模型
image.png

图3. 规划领域图
约束

约束是使用 Constraint Streams API 实现的。您可以在 org.acme.facilitylocation.domain 中找到它们。类。它定义了以下限制:

设施容量

如果总需求超过设施的能力,则处罚分配给设施的消费者的需求的严格限制。

软约束,惩罚安装成本使用的设施位置。

远程办公设备

消费者与其指定设施之间的距离的软约束。

请注意,有两个软约束彼此“竞争”,因为它们影响相同的分数水平。您可以通过调整 org.acme.facilitylocation.domain 中的约束权重来控制每个约束如何影响分数。简化位置/约束/配置。你对一个约束施加的重量越多,当它被破坏时,它对分数的影响就越大,而且 OptaPlanner 试图避免它的次数也就越多。

@ConstraintConfiguration
public class FacilityLocationConstraintConfiguration {

...
@ConstraintWeight(FACILITY_SETUP_COST)
HardSoftLongScore facilitySetupCost = HardSoftLongScore.ofSoft(2);
@ConstraintWeight(DISTANCE_FROM_FACILITY)
HardSoftLongScore distanceFromFacility = HardSoftLongScore.ofSoft(5);

}

使用约束权重在最小化消费者到设施的距离和最小化总安装成本之间找到一个平衡。如果你过分强调距离限制,最终可能会使用不必要的昂贵设施。如果你过于看重安装成本限制,那么从设施到消费者的服务车辆可能会花费太多的时间旅行。

平衡解决方案
image.png

图4. 平衡的解决方案

这个快速启动应用程序的屏幕截图显示了一个平衡的解决方案。注意在设施和总距离上花费的总设置成本,并将这些值与其他解决方案进行比较,其中您只对其中一个软约束施加了极大的权重。

优先考虑最小的安装成本
image.png

图5. 解决方案集中在最小的安装成本

我们选择了最便宜的设施位置,它们被利用到100% 的能力,所以我们使用最少数量的设施,可以服务所有的消费者。

距离也是最小的,但距离约束的权重是可以忽略的相比,安装成本约束,所以它不影响选择设施位置。您可以通过将设置成本作为中等约束,而将距离约束留在较低的、柔软的级别上来实现相同的结果。

最小距离优先
image.png
https://www.optaplanner.org/blog/2020/10/09/facilityLocationProblemPriorityDistance.png
图6. 最小距离的解决方案

消费者被分配到最近的设施,只有很少的关注设施成本和利用效率。如果你仔细观察,你会发现有些地方距离可以缩短得更多。这只是一个确定距离约束权重的问题。

快速启动

上手实践启动一个项目:

Git clone https://github.com/kiegroup/optaplanner-quickstarts.

Https://github.com/kiegroup/optaplanner-quickstarts.

Descend into the directory quarkus-facility-location.

下载到目录 quarkus-facility-location。

运行 mvn quarkus: dev。

在你的浏览器中打开 网址 http://localhost:8080,点击 Solve 按钮。

目录
相关文章
|
6月前
|
传感器 监控 算法
【计算巢】无线传感器网络(WSN)在智能城市中的应用
【6月更文挑战第3天】智能城市中的无线传感器网络(WSN)在交通监控、环境监测、能源管理和公共安全等领域发挥关键作用。通过模拟代码展示了传感器收集环境数据的过程。尽管面临部署成本、网络安全和数据处理挑战,但WSN为城市发展带来巨大潜力,随着技术进步,将在智能城市中创造更多便利与改善。
91 3
【计算巢】无线传感器网络(WSN)在智能城市中的应用
|
6月前
|
传感器 人工智能 运维
智慧电厂转动设备的“非停监测”及算法应用
转动设备故障预测技术在智慧电厂中至关重要,防止非计划停机能避免经济损失和安全风险。结合传统数学模型与AI大数据分析,通过高精度传感器实时监测设备参数,利用智能算法精准预测异常,提前预警潜在故障。AI驱动的模型不仅能识别已知故障,还能预测未知问题,优化维护决策,减少停机时间,降低成本,增强可再生能源设施的运维效率,推动绿色能源转型。
|
7月前
|
传感器 监控 物联网
LabVIEW使用ZigBee无线传感器开发住宅负载电力应用
LabVIEW使用ZigBee无线传感器开发住宅负载电力应用
35 2
|
7月前
|
传感器 智能硬件
智能家电设备供电
智能家电设备供电
65 4
|
传感器 数据采集 存储
无人机无线传感器网络中的节能数据采集(Matlab代码实现)
无人机无线传感器网络中的节能数据采集(Matlab代码实现)
111 0
|
传感器 数据采集 安全
振弦传感器智能化:电子标签模块
稳控科技研发并批量生产的振弦采集模块解决了传感器由模拟信号直接转变为数字信号的难题。近年来,振弦传感器为适应用户需求,不断迭代更新技术,使学习和使用成本非常低,且带来方便快捷的体验效果。
振弦传感器智能化:电子标签模块
|
7月前
一款充电桩解决方案设计
一、基本的概述 项目由IP6536提供两路5V 1.5A 的USB充电口,IP6505提供一路最大24W的USB快充口支持QC3.0 / DCP / QC2.0 / MTK PE1.1 / PE2.0 / FCP / SCP / AFC / SFCP的快充协议,电池充电由type-C输入经过IP2326输出最高15W快充对电池进行充电,N32G430K8Q7用于屏幕驱动,三路USB,快充协议检测,12V输出,电池电量的电压电流检测,接线柱输出12V最高10A,供电方式:电池供电 /DC口供电(最高15V)由DC供电时必须把电池断开。 二、硬件设计部分 老马家的保护板,40¥买的电动车电池
|
监控 算法 芯片
锂离子电池充电管理芯片应用
基本概述 TP4054是一个完善的单片锂离子电池恒流/恒压线性电源管理芯片。 更值得一提的是,TP4054专门设计适用于USB的供电规格。得益于内部的MOSFET结构,在应用上不需要外部电阻和阻塞二极管。在高能量运行和高外围温度时,热反馈可以控制充电电流以降低芯片温度。 充电电压被限定在4.2V,充电电流通过外部电阻调节。在达到目标充电电压后,当充电电流降低到设定值的1/10时,TP4054就会自动结束充电过程。TP4054还可被设置于停止工作状态,使电源供电电流降到25μA。 TP4054芯片具有CC/CV模式,可以更好地对锂离子电池进行充电管理和保护,同时能够起到很好的充电与
175 1
|
传感器 监控 算法
无线传感器:智能家居监控系统设计
无线传感器:智能家居监控系统设计
337 0
|
传感器 存储 安全
水库大坝隧道安全监测通用的无线解决方案详解
在水库安全监测的项目,由于监测点比较分散,电源布线不方便,没有外接供电,也不愿意使用太阳能电板增加成本还有担心被偷盗等问题,这个项目年限4年,需要低功耗、内置电池的采集仪;从最开始的NLM511T采集仪升级到电池容量大的无线NLM611T采集仪,很好地解决了电源的问题。NLM611T是防水插头,中间空心,采购的单通道,为了保障设备防水性能,经沟通设备外壳只开了一个传感器接头孔。根据我们的需求定制这个监测设备,这是一个很好的使用体验。