【移动应用开发技术】Python动态规划实现虚拟机部署的方法_第1页
【移动应用开发技术】Python动态规划实现虚拟机部署的方法_第2页
【移动应用开发技术】Python动态规划实现虚拟机部署的方法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Python动态规划实现虚拟机部署的方法

本篇内容介绍了“Python动态规划实现虚拟机部署的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让在下带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!考虑到在虚拟机部署中资源提供商通常希望自己的收益最大化,现假设有一台宿主机,共有x个cpu和yGB的内存,用户可以采取自己报价的方式向资源提供商申请使用虚拟机资源,譬如说付w元申请a个cpu和bGB内存的一台虚拟机。请你设计一个算法,让资源提供商可以合理地安排虚拟机,使得自己的收益最大化。输入:nxy2420042150…说明,n表示共有n条用户报价申请,宿主机共有x个cpu和yGB的内存;以下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=si

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论