【组合优化】基于CHHO的QoS感知的web服务组合优化【Matlab代码22#】

news2024/11/26 4:48:23

文章目录

    • 【可更换其他算法,`获取资源`请见文章第7节:资源获取】
    • 1. Web服务
    • 2. QoS感知的Web服务组合
    • 3. 改进后的CHHO算法
      • 3.1 原始HHO算法
      • 3.2 CHHO算法
    • 4. 优化目标
    • 5. 部分代码展示
    • 6. 仿真结果展示
    • 7. 资源获取


【可更换其他算法,获取资源请见文章第7节:资源获取】


1. Web服务

Web 服务是一种跨编程语言和跨操作系统平台的远程调用技术。在Web服务中,统一称非功能属性集合是服务的服务质量(Quality-of-service,QoS)。常用的QoS属性值有:价格、响应时间、延迟时间、可靠性、可用性、吞吐量等。

2. QoS感知的Web服务组合

首先介绍两个概念:服务组合结构聚合QoS值

服务组合结构:目前主要包含四种基本的服务组合结构,分别是顺序结构、并行结构、选择结构和循环结构,如图1所示。
在这里插入图片描述

图1 四种服务组合结构的示意图

(1)顺序结构:严格按顺序执行,先执行 T i T_{i} Ti,再执行 T i + 1 T_{i+1} Ti+1
(2)选择结构:所有处于选择结构中的所有服务执行概率的总和值为1。
(3)并行结构:所有的服务同时执行,只有当所有的服务都同时执行后,服务流程才算结束。
(4)循环结构:一个或者多个服务被连续执行多次,直到满足一定的跳出条件。

聚合QoS值:PQoS是服务组合的聚合QoS值,它也是一个非功能质量属性集合,包括价格、响应时间、可靠性和可用性等不同的质量指标。QoS属性的内在物理含义决定了它们在不同的服务组合结构(顺序、选择、并行和循环)中具有不同的叠加方法。聚合QoS的计算方法具有结构的相关性。

例如,对于响应时间的QoS属性,顺序结构的组合服务是严格按照前后依此的执行模式,因此顺序结构下响应时间的聚合 QoS 值通过累加求和得到;而在并行结构的服务组合中,聚合响应时间的 QoS 值为并行分支中服务响应时间的最大值。
在这里插入图片描述

图2 几个典型的QoS属性的聚合函数

3. 改进后的CHHO算法

3.1 原始HHO算法

原始哈里斯鹰算法,可以参考HHO算法介绍。

3.2 CHHO算法

本文的CHHO算法将Logistic混沌映射与原始哈里斯鹰算法结合所得到。
Logistic映射是混沌映射的典型代表,它的数学形式比较简单,其表达式如下:
Y n + 1 ( t ) = b Y n ( 1 − Y n ) Y_{n+1}(t)=bY_{n}(1-Y_{n}) Yn+1(t)=bYn(1Yn)

式中, Y n ∈ [ 0 , 1 ] Y_{n}\in [0,1] Yn[0,1] a ∈ [ 0 , 4 ] a\in [0,4] a[0,4]为Logistic参数。当 a a a接近4时, Y Y Y的取值范围是越接近平均地分布到整个 [ 0 , 1 ] [0,1] [0,1]区域。

4. 优化目标

本文web服务组合优化的目标是找到一组满足用户全局约束(响应时间和延迟时间最小)并最大化聚合QoS性能的抽象服务组合。因此,我们可以将其建模为混合整数规划问题。数学描述如下:
在这里插入图片描述

5. 部分代码展示

N=30; % 种群数量
T=50; % 最大迭代次数

abstract_service_num=5;  % 任务数 
concrete_service_num=70; % 每个任务可选的服务数

QWS2data=dividing_data(concrete_service_num,abstract_service_num,s1data);% rand dataset

% Runnpaoing the preprocessing method of Fuzzy Optimal Continuity Construction (FOCC). 
Preprocessing_QWS2data=pre_FOCC(QWS2data,4,1);  % FOCC(refer to Section.III.C)

% Running CHHO.
[Rabbit_Location,Rabbit_Energy,Rabbit_value,Curve]=CHHO(N,T,concrete_service_num,abstract_service_num,Preprocessing_QWS2data);

% print result
figure
plot(Curve,'r-')
xlabel('迭代次数');
ylabel('最优QoS值');
title('基于CHHO算法的QoS感知的web服务组合寻优')
legend('CHHO')

disp('The QoS values of best composition service [Response Time,Latency]:');
disp('Note:These values have been standardized(bigger is better).');
display(num2str(Rabbit_value));
display(['The csQos_fitness of best composition service by CHHO is: ', num2str(Rabbit_Energy)]);

6. 仿真结果展示

在这里插入图片描述
在这里插入图片描述

7. 资源获取

A资源获取说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

rpc与grpc学习记录

文章目录 1、RPC2、gRPC多线程pythongrpc代码1、安装python需要的库:2、grpc编程步骤3、Demo13.1、编写 .proto文件,定义接口和数据类型3.2、编译 .proto文件生成存根文件3.3、编写服务器端代码:3.4、编写客户端代码:3.5、测试 1、…

docker操作2

docker操作2 文章目录 docker操作2启动新容器配置新的容器后要做的操作进入Docker容器可以显示图片的容器镜像pull 网络镜像 日志停止与删除停止删除删除image报错 在容器和宿主机之间拷贝数据创建命令别名查看docker运行容器的ipdocker image保存与导入保存image导入image 打标…

CMake的应用与实践

CMake 简介 CMake是什么? 全称 Cross Platform Make,起初为了跨平台需求,而后不断完善并广泛使用一款优秀的工程构建工具 特点和优势 开放源代码,具有BSD许可跨平台,支持Linux,Mac和Windows等不同操作系…

【C生万物】 字符串内存函数篇 (上)

欢迎来到 Claffic 的博客 💞💞💞 👉 专栏:《C生万物 | 先来学C》👈 前言: 过了指针这个坎后,下一步就是C语言中关于字符的处理,这一期来讲…

chatgpt赋能Python-python5个一行

Python: 5行代码改变世界 Python是一种高级编程语言,以其简单易学的特性而闻名。Python的发明者Guido van Rossum在1980年代末和1990年代初创造了Python,旨在创建一种语言,既易于理解又易于使用。如今,Python已经成为了最受欢迎的…

【离散数学】陪集和拉格朗日定理编程题

1:编写一个程序能够计算有限群G的子群H的左陪集 输入一个n阶有限群G的二元运算表及相关的子群,输出其左陪集。 (注意:按照表头元素顺序计算每个陪集,下图为G的二元运算表示例) 样例1: 输入&…

干货 | 利用SPSS进行高级统计分析第三期

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 在本期中,我们继续为大家介绍如何利用SPSS进行:单因素方差分析、多因素方差分析、重复测量方差分析等。 1. 单因素方差分析【组间实验单一因变量;进行差…

iptables防火墙中的SNAT和DNAT

SNAT的原理和应用 SNAT 应用环境∶局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) SNAT原理∶修改数据包的源地址。 SNAT转换前提条件∶ 局域网各主机已正确设置IP地址、子网掩码、默认网关地址Linux网关开启IP路由转发…

游资92科比到底牛在哪里?

昨天一天时间把92科比之前的一个帖子全部看完,从科比对情绪周期的把握来看那简直总结的已经是标准答案了,那么为何92科比公布了答案,还是有很多人“痛苦”的做不到? 这个问题我觉得跟退学炒股是一样的,退学先解决了小…

springcloud-alibaba (03)sentinel下载安装

Sentinel 一,下载安装💠二,编写脚本🧿三,启动sentinel💎四,Win-访问控制台✨ 在Linux中下载安装Spring Cloud Alibaba Sentinel,可以按照以下步骤进行操作: 一&#xff0…

Python常见面试题. Python中的解包操作及其应用场景

这是个简单的知识点,但有的同学并不理解 unpacking解包 解,对应的是*或者**,也有自动解包之说 包对应的可迭代对象 Python助学大礼包点击跳转获取 目录 一、自动解包二、数据过多的解包*三、星号在函数中的使用四、两个星号的解包五、场…

Lesson13---人工神经网络(2)

13 人工神经网络(2) 多层神经网络-非线性分类问题多层神经网络的损失函数不是凸函数,很难计算解析解通常采用梯度下降法,得到数据解,梯度下降法可以用来求解函数极值问题 批量梯度下降随机梯度下降小批量梯度下降 1…

[Nacos] Nacos Client获取所有服务和定时更新Client端的注册表 (三)

文章目录 1.Nacos Client获取所有服务1.1 Client如何获取所有服务1.2 Client获取服务方法getServices()详解 2.Nacos定时更新Client端的注册表2.1 Nacos和Eureka定时更新Client端的注册表的区别2.2 Client定时更新本地服务过程2.3 updateServiceNow方法解析2.4 定时更新本地注册…

DrissionPage学习(一)

一、下载适合mac环境的chromedriver.exe 1.查找chrome浏览的版本 方法二:查看chrome版本信息 2.确定版本后在下载chrome对应的chromedriver.exe 下载地址:http://chromedriver.storage.googleapis.com/index.html 3.在文件夹中找到下载的文件chro…

MyBatis-Plus or() equls() 连用的格式为 a AND (b OR c)

正确示范: userInterfaceQueryWrapper.and(qw -> qw .eq("status", UserInterfaceInfoStatusEnum.OFFLINE) .or() .eq("status", UserInterfaceInfoStatusEnum.TRYOUT));错误示范: userInterfaceQueryWrapper.eq("status&…

分布式项目10.jsonp 使用js中script的属性src进行服务器之间的访问

一般使用ajax来访问不同服务器的数据&#xff0c;可行吗&#xff1f; 做个实验&#xff1a; 第一步&#xff1a;在本服务器中使用ajax技术访问本服务器数据 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>测试JSON跨域…

NFT游戏Mythical Beings将参加NFT Polygon 在线展会

Mythical Beings神秘生物是由Tarasca Art & Games 开发的基于区块链的卡牌收集游戏。游戏中每张卡牌所拥有的属性和背后的故事都是独一无二的&#xff0c;Mythical Beings不仅具有游戏属性&#xff0c;还兼具故事的传承。 作为一款跨链Polygon的NFT游戏&#xff0c;Mythic…

Transformer架构解析

1.Transformer架构图 本文主要来自&#xff1a;http://nlp.seas.harvard.edu/annotated-transformer/#hardware-and-schedule 论文地址: https://arxiv.org/pdf/1810.04805.pdf 1.1 Transformer模型的作用 基于seq2seq架构的transformer模型可以完成NLP领域研究的典型任务,…

ThinkPHP6模型中的获取器,修改器及搜索器的简单使用

ThinkPHP6模型中的获取器&#xff0c;修改器及搜索器的简单使用 1. 获取器2. 修改器3. 搜索器 1. 获取器 获取器的作用是对模型实例的&#xff08;原始&#xff09;数据做出自动处理。一个获取器对应模型的一个特殊方法&#xff08;该方法必须为public类型&#xff09;&#x…

MySQL(用户管理)

文章目录 1 用户1.1 用户信息1.2 创建用户1.3 删除用户1.4 修改用户密码 2 数据库的权限2.1 给用户授权2.2 回收权限 1 用户 1.1 用户信息 MySQL中的用户&#xff0c;都存储在系统数据库mysql的user表中 host&#xff1a; 表示这个用户可以从哪个主机登陆&#xff0c;如果是l…