srp阅读记录③

        前面看了那么多,终于来到具体问题的分析了。PROBLEM DEFINITION(问题定义)Ok,我们继续看一下这个问题是怎么建模的。太多公式了,还是直接贴图片吧。

        首先有M个仓库,仓库英文为depot所以就用了它的缩写D(是仓库的集合,里面包含了M个d仓库)。每个仓库都可以有一组无人机,定义为U(无人机的集合)。这里的M和K好像没详细解释啊,暂且任务为仓库的编号以及某个仓库编号下的无人机的编号吧。

        首先提到了一些约束条件:①无人机起飞后,必须返回仓库。②无人机可以自爱住宅楼上充电,提高运输效率。③每次只能携带一个包。④无人机的有效飞行距离将随着有效载荷的增加而减少。⑤不考虑无人机起降过程中的能耗。

        可以看出β是一个惩罚参数(这个应该可以自己设置的),而c为当前有效载荷权重(根据实际情况来的),cmax则是最大有效载荷权重,就是能允许你放多少(应该也是自己设置的)。

        每个客户视为任务,任务分成三类:DROP(掉包或者说交付包),PICKUP(捡包~),PD(我捡完包后掉包~,必须同时完成)。任务有三个属性:位置(location)、权重(weight)和类型(type)。

        

        这个问题在无向图上定义,V节点代表要在这完成某项任务,而E边则代表两个节点之间的距离。后面定义了一堆一堆的公式(呆住了。。):
        

这是论文对这些公式的解释:

        其中f(x)是目标,而其他的是约束条件,约束条件很多,逐条列举一下:

        目标(2)是使无人机总飞行距离和无人机发射次数的加权和最小化,其中𝛼和𝜆是代表成本相对关系的系数。(x[u,i,j]见文章的表述应该是发射次数吧,u代表无人机编号,i和j分别是两个节点,但是这里只有发射0次和1次)

        约束(3)定义了𝑥𝑢𝑖𝑗的结构域(翻译成取值域可能更好一些)。如果UAV𝑢有从𝑣𝑖到𝑣𝑗的路径,则为𝑥𝑢𝑖𝑗=1,否则等于0。

        约束(4)限制每架无人机,以确保飞行期间的飞行距离不超过当前有效载荷重量下的有效飞行距离ℎ。(这个可能是为了防止无人机损坏吧)

        约束条件(5)和(6)限制每个任务只完成一次,无人机必须在完成任务节点后离开任务节点。(这里i是其中某个节点,而j取自某个任务节点T,(5)代表发射一次,而(6)我认为说明要么同时为0,要么同时为1,也就是要么你不发射,要么你发射完就必须回来)

        约束(7)和(8)表示每架无人机必须从仓库起飞,最后返回仓库。

        此外,由于无人机一次只能携带一个包,有三个限制条件概述了无人机的一般飞行路线限制(这部分感觉有点奇怪啊,按道理说,DROP对应丢包或者交付delivery,应该是交付的任务,(9)应该是drop,而):

        约束(9)表示无人机必须完成来自仓库的包裹交付服务。表示无人机必须完成从任务节点到仓库的提货服务。

        约束(10)表示完成仅交付服务后,无人机可以进行下一个仅提货任务或返回仓库;

        约束(11)表示无人机必须完成从任务节点到仓库的提货服务。(改了一下顺序后,应该没问题了,我自己感觉=_=)。

        下面给了一个图更好地来理解这个问题:

        

        我直接开始机翻~:为了更好地理解这个问题,图1显示了一个有两个仓库的例子。有五个客户需要服务。其中,两个客户只需要送货(drop)服务,两个客户只需要接货(pickup)服务,一个客户同时需要接货和送货服务。两个仓库派出四架无人机来完成这些任务。绿线表示一架无人机从仓库1出发,完成一个拾取任务,然后返回仓库。蓝线表示无人机从仓库1出发,完成一个空投任务,并直接返回仓库1。橙色线表示一架无人机从仓库2出发,首先完成降落任务2,然后飞到下一个客户执行拾取任务,最后返回仓库。紫色的线表示从仓库2出发的无人机,将包裹交付给客户,取回客户想要取到的包裹,然后返回仓库。(这里我认为比较有意思的是PICKUP2和DROP2的任务,你在完成DROP后怎么知道要继续PICKUP还是返回仓库呢?这里也对应了约束条件(10))。这个问题留到后面看有无说明。

        OK!模型建完了,约束条件也有了。论文接下来就要来点真东西了!就是第3部分,提出的方法!这部分较长直接开个新篇~

在讨论 SRP(通常指服务定位协议,Service Location Protocol)和 `perObjectData` 时,需要明确这两个概念在特定上下文中的角色和用途。SRP 是一种用于网络中动态发现服务的协议,而 `perObjectData` 通常用于描述与特定对象相关联的数据,可能在实现某些 SRP 功能时用于存储或处理对象特定的信息。 ### SRP 协议概述 SRP(Service Location Protocol)是一种网络协议,旨在帮助客户端自动发现可用的服务实例。它广泛应用于企业网络中,使得设备可以动态地找到所需的网络服务,而无需手动配置。SRP 支持多种服务类型,并通过服务代理(SA)和用户代理(UA)之间的交互来完成服务的注册、查询和注销。 SRP 的基本操作包括: - **服务注册**:服务提供者向 SRP 服务器注册其提供的服务。 - **服务查询**:客户端向 SRP 服务器查询可用的服务。 - **服务注销**:当服务不再可用时,服务提供者会通知 SRP 服务器注销该服务。 ### `perObjectData` 的使用 在 SRP 的实现中,`perObjectData` 可能用于存储与特定服务实例或对象相关的数据。例如,在服务注册过程中,服务提供者可能会附带一些元数据,如服务的描述、版本、支持的协议等。这些信息可以被封装在 `perObjectData` 中,并在后续的服务查询和使用过程中被访问。 `perObjectData` 的设计允许开发者灵活地定义与对象相关的数据结构,这在实现复杂的 SRP 功能时非常有用。例如,当服务提供者注册一个服务时,它可以将 `perObjectData` 与服务实例关联,这样客户端在查询服务时可以获取这些附加信息,从而做出更明智的选择。 以下是一个简化的代码示例,展示了如何在 SRP 协议中使用 `perObjectData` 来存储服务实例的额外信息: ```c typedef struct { char* serviceName; int servicePort; char* serviceDescription; } ServiceMetadata; // 假设 SRP 服务实例结构体中包含 perObjectData typedef struct { char* serviceType; ServiceMetadata* perObjectData; } SRPServiceInstance; // 注册服务实例 void registerService(SRPServiceInstance* instance) { // 在这里执行服务注册逻辑 printf("Registering service: %s on port %d\n", instance->perObjectData->serviceName, instance->perObjectData->servicePort); } int main() { // 创建服务元数据 ServiceMetadata metadata = { .serviceName = "HTTP Server", .servicePort = 80, .serviceDescription = "Web Server for internal use" }; // 创建 SRP 服务实例并关联元数据 SRPServiceInstance serviceInstance = { .serviceType = "_http._tcp", .perObjectData = &metadata }; // 注册服务 registerService(&serviceInstance); return 0; } ``` 在这个示例中,`ServiceMetadata` 结构体被用作 `perObjectData`,它包含了服务的名称、端口和服务描述。通过这种方式,服务实例的额外信息可以在注册和查询过程中被传递和使用。 ### SRP 协议的实现注意事项 在实现 SRP 协议时,有几个关键点需要注意: - **服务发现的效率**:确保服务查询能够在合理的时间内完成,避免网络拥塞或延迟。 - **安全性**:SRP 协议本身不提供加密或身份验证机制,因此在安全性要求较高的环境中,可能需要额外的安全措施。 - **可扩展性**:设计 SRP 实现时应考虑未来可能的服务类型和数据结构扩展,确保系统能够适应新的需求。 ### 总结 SRP 协议为网络中的服务发现提供了一种标准化的方法,而 `perObjectData` 则为服务实例提供了灵活的数据存储机制。结合使用 SRP 和 `perObjectData` 可以增强服务发现的功能,使客户端能够获取更多关于服务实例的信息,从而做出更合适的选择[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值