• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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=0
    size_num=0
    money=0
    
    b1 = [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]=temp
    def 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动态规划实现虚拟机部署的文章就介绍到这了,更多相关Python虚拟机部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • java虚拟机JVM类加载机制原理(面试必问)
    • vmware虚拟机安装deepin20最全详细过程
    • Java虚拟机类加载器之双亲委派机制模型案例
    • 最新虚拟机VMware 14安装教程
    • java虚拟机中栈的运行知识点总结
    • Python使用oslo.vmware管理ESXI虚拟机的示例参考
    • Java虚拟机精选面试题20道
    • Java reservedcodecachesize虚拟机参数案例详解
    上一篇:python 多线程实现多任务的方法示例
    下一篇:Python中scrapy下载保存图片的示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python动态规划实现虚拟机部署的算法思想 Python,动态规划,实现,虚拟机,