濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想

Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想

熱門(mén)標(biāo)簽:電銷(xiāo)機(jī)器人錄音要學(xué)習(xí)什么 煙臺(tái)電話外呼營(yíng)銷(xiāo)系統(tǒng) 長(zhǎng)春極信防封電銷(xiāo)卡批發(fā) 企業(yè)彩鈴地圖標(biāo)注 如何地圖標(biāo)注公司 上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 預(yù)覽式外呼系統(tǒng) 外賣(mài)地址有什么地圖標(biāo)注 銀川電話機(jī)器人電話

聲明

本文章為個(gè)人拙見(jiàn),僅僅提供參考,不一定正確,各位大佬可以發(fā)表自己的意見(jiàn)。

題目描述

考慮到在虛擬機(jī)部署中資源提供商通常希望自己的收益最大化,現(xiàn)假設(shè)有一臺(tái)宿主機(jī),共有x個(gè)cpu和y GB的內(nèi)存,用戶可以采取自己報(bào)價(jià)的方式向資源提供商申請(qǐng)使用虛擬機(jī)資源,譬如說(shuō)付w元申請(qǐng)a個(gè)cpu和b GB內(nèi)存的一臺(tái)虛擬機(jī)。請(qǐng)你設(shè)計(jì)一個(gè)算法,讓資源提供商可以合理地安排虛擬機(jī),使得自己的收益最大化。
輸入:
n x y
2 4 200
4 2 150

說(shuō)明,n表示共有n條用戶報(bào)價(jià)申請(qǐng),宿主機(jī)共有x個(gè)cpu和y GB的內(nèi)存;
以下n行,每行表示用戶申請(qǐng)的cpu和內(nèi)存數(shù),以及用戶報(bào)價(jià)的金額。

算法思想

該問(wèn)題為尋找全局最優(yōu)解問(wèn)題,采用動(dòng)態(tài)規(guī)劃的思想。找最大利益是最終的問(wèn)題,可以將最大利益的子問(wèn)題看做是已經(jīng)報(bào)價(jià)的每個(gè)用戶最大金額,并將其所要求的CPU數(shù)和內(nèi)存數(shù)加入到總的需求總,與提供的CPU數(shù)和內(nèi)存容納進(jìn)行對(duì)比。解決了目前最大報(bào)價(jià)的用戶,下一個(gè)最大報(bào)價(jià)又可以看做是一個(gè)子問(wèn)題,但CPU和內(nèi)存容量需要減去已經(jīng)分配的,如此反復(fù),到CPU和內(nèi)存容量不能滿足任何一個(gè)用戶要求為止,最優(yōu)解便求得。

測(cè)試結(jié)果

運(yùn)行結(jié)果:

源代碼

import sys  
print("請(qǐng)輸入申請(qǐng)?zhí)摂M機(jī)的用戶個(gè)數(shù),cpu個(gè)數(shù),內(nèi)存容量:")
a = list(map(int, input().split()))  # 用數(shù)組a來(lái)存儲(chǔ)參與報(bào)價(jià)的用戶的個(gè)數(shù),云端要存儲(chǔ)的cpu個(gè)數(shù),容量大小  
a1 = a[0]  # 存儲(chǔ)用戶個(gè)數(shù),要輸入幾行數(shù)據(jù)  
a2 = a[1]  # 存儲(chǔ)cpu的個(gè)數(shù)  
a3 = a[2]  # 存儲(chǔ)容量  
b = []
cpu_num=0
size_num=0
money=0

b1 = [0]*a1  #數(shù)組b1存儲(chǔ)用戶報(bào)價(jià)   
p1 = [0]*a1  #數(shù)組p1記錄報(bào)價(jià)金額的位置

for i in range(a1):
    print("請(qǐng)輸入第",i+1,"個(gè)用戶的申請(qǐng)CPU個(gè)數(shù) 內(nèi)存容量 報(bào)價(jià):")
    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)

到此這篇關(guān)于Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的文章就介紹到這了,更多相關(guān)Python虛擬機(jī)部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • java虛擬機(jī)JVM類(lèi)加載機(jī)制原理(面試必問(wèn))
  • vmware虛擬機(jī)安裝deepin20最全詳細(xì)過(guò)程
  • Java虛擬機(jī)類(lèi)加載器之雙親委派機(jī)制模型案例
  • 最新虛擬機(jī)VMware 14安裝教程
  • java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)
  • Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考
  • Java虛擬機(jī)精選面試題20道
  • Java reservedcodecachesize虛擬機(jī)參數(shù)案例詳解

標(biāo)簽:佳木斯 珠海 潮州 上饒 宜昌 湖北 盤(pán)錦 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想》,本文關(guān)鍵詞  Python,動(dòng)態(tài)規(guī)劃,實(shí)現(xiàn),虛擬機(jī),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    吉安市| 陆丰市| 庆安县| 师宗县| 九江市| 揭东县| 浠水县| 长兴县| 吉木乃县| 宾川县| 岳阳市| 贵定县| 永吉县| 历史| 长沙市| 崇信县| 新余市| 商水县| 拉孜县| 峨边| 浦城县| 雷州市| 毕节市| 万山特区| 阿克陶县| 达日县| 平南县| 大方县| 兴海县| 卓资县| 营山县| 麻阳| 海阳市| 资阳市| 原平市| 黄梅县| 淅川县| 阿合奇县| 武邑县| 东莞市| 囊谦县|