主頁 > 知識庫 > Python動態(tài)規(guī)劃實現虛擬機部署的算法思想

Python動態(tài)規(guī)劃實現虛擬機部署的算法思想

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

聲明

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

題目描述

考慮到在虛擬機部署中資源提供商通常希望自己的收益最大化,現假設有一臺宿主機,共有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和內存數,以及用戶報價的金額。

算法思想

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

測試結果

運行結果:

源代碼

import sys  
print("請輸入申請?zhí)摂M機的用戶個數,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動態(tài)規(guī)劃實現虛擬機部署的文章就介紹到這了,更多相關Python虛擬機部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

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

標簽:佳木斯 珠海 潮州 上饒 宜昌 湖北 盤錦 西寧

巨人網絡通訊聲明:本文標題《Python動態(tài)規(guī)劃實現虛擬機部署的算法思想》,本文關鍵詞  Python,動態(tài)規(guī)劃,實現,虛擬機,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python動態(tài)規(guī)劃實現虛擬機部署的算法思想》相關的同類信息!
  • 本頁收集關于Python動態(tài)規(guī)劃實現虛擬機部署的算法思想的相關信息資訊供網民參考!
  • 推薦文章