Python动态规划实现虚拟机部署的方法
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"Python动态规划实现虚拟机部署的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2024年11月24日Python动态规划实现虚拟机部署的方法
本篇内容介绍了"Python动态规划实现虚拟机部署的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
题目描述
考虑到在虚拟机部署中资源提供商通常希望自己的收益最大化,现假设有一台宿主机,共有x个cpu和y GB的内存,用户可以采取自己报价的方式向资源提供商申请使用虚拟机资源,譬如说付w元申请a个cpu和b GB内存的一台虚拟机。请你设计一个算法,让资源提供商可以合理地安排虚拟机,使得自己的收益最大化。
输入:
n x y
2 4 200
4 2 150
…
说明,n表示共有n条用户报价申请,宿主机共有x个cpu和y GB的内存;
以下n行,每行表示用户申请的cpu和内存数,以及用户报价的金额。
算法思想
该问题为寻找全局最优解问题,采用动态规划的思想。找最大利益是最终的问题,可以将最大利益的子问题看做是已经报价的每个用户最大金额,并将其所要求的CPU数和内存数加入到总的需求总,与提供的CPU数和内存容纳进行对比。解决了目前最大报价的用户,下一个最大报价又可以看做是一个子问题,但CPU和内存容量需要减去已经分配的,如此反复,到CPU和内存容量不能满足任何一个用户要求为止,最优解便求得。
测试结果
运行结果:
源代码
import sys print("请输入申请虚拟机的用户个数,cpu个数,内存容量:")a = list(map(int, input().split())) # 用数组a来存储参与报价的用户的个数,云端要存储的cpu个数,容量大小 a1 = a[0] # 存储用户个数,要输入几行数据 a2 = a[1] # 存储cpu的个数 a3 = a[2] # 存储容量 b = []cpu_num=0size_num=0money=0b1 = [0]*a1 #数组b1存储用户报价 p1 = [0]*a1 #数组p1记录报价金额的位置for i in range(a1): print("请输入第",i+1,"个用户的申请CPU个数 内存容量 报价:") b.append(list(map(int, input().split())))for k in range(a1): b1[k] = b[k][2] p1[k] = k for i in range(0,a1-1): for j in range(1,a1-i): if b1[j]>b1[j-1]: temp=b1[j-1] b1[j-1]=b1[j] b1[j]=temp temp=p1[j-1] p1[j-1]=p1[j] p1[j]=tempdef Fun(i): global cpu_num,size_num,money cpu_num=cpu_num+b[p1[i]][0] size_num=size_num+b[p1[i]][1] money=money+b[p1[i]][2] if cpu_num>a2 or size_num>a3: money=money-b[p1[i]][2] cpu_num=cpu_num-b[p1[i]][0] size_num=size_num-b[p1[i]][1] for i in range(a1): Fun(i)print("最大化收益:",money)
"Python动态规划实现虚拟机部署的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
用户
内存
报价
最大
个数
容量
存储
问题
资源
输入
动态
规划
提供商
收益
数组
金额
方法
内容
利益
宿主
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
陈子豪我的世界服务器
网络安全课程都有什么
济南智恒网络技术有限公司
如何降低1U服务器的噪声
计算机资源管理器有没有数据库
数据库中对检索词精确检索
河南省网络安全案例
苏州阿里云服务器如何划分
tp5数据库记录转字符
网络技术与工作生活关系
商洛网络技术是什么
番禺网络安全建设公司
我的世界如何不被踢出服务器
熊出没拼图软件开发
密云区品质软件开发供应
泉州软件开发公司哪家好
数据库设计实例论文
软件开发完成后 材料
查询数据库表的列名和列说明
安丘软件开发培训
白帽子讲网络安全电子版
广东网络安全110启动
游戏软件开发需要什么东西
无主之地3无法与服务器建立连接
视频聊天 服务器
心得体会国家网络安全法
恩施软件开发制作
网络监控系统软件开发
魔兽各种服务器
数据库加密存储怎么解密