亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年07月22日 11:14:58   作者:常子Aka  
這篇文章主要介紹了Python動態(tài)規(guī)劃實現(xiàn)虛擬機部署的算法思想,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

聲明

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

題目描述

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

說明,n表示共有n條用戶報價申請,宿主機共有x個cpu和y GB的內(nèi)存;
以下n行,每行表示用戶申請的cpu和內(nèi)存數(shù),以及用戶報價的金額。

算法思想

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

測試結(jié)果

運行結(jié)果:

在這里插入圖片描述

源代碼

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

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

for i in range(a1):
    print("請輸入第",i+1,"個用戶的申請CPU個數(shù) 內(nèi)存容量 報價:")
    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動態(tài)規(guī)劃實現(xiàn)虛擬機部署的文章就介紹到這了,更多相關(guān)Python虛擬機部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 字符串split的用法分享

    python 字符串split的用法分享

    python 字符串的split方法是用的頻率還是比較多的。比如我們需要存儲一個很長的數(shù)據(jù),并且按照有結(jié)構(gòu)的方法存儲,方便以后取數(shù)據(jù)進行處理。當然可以用json的形式。但是也可以把數(shù)據(jù)存儲到一個字段里面,然后有某種標示符來分割
    2013-03-03
  • python 遍歷字符串(含漢字)實例詳解

    python 遍歷字符串(含漢字)實例詳解

    這篇文章主要介紹了python 遍歷字符串(含漢字)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 基于flask實現(xiàn)五子棋小游戲

    基于flask實現(xiàn)五子棋小游戲

    這篇文章主要為大家詳細介紹了基于flask實現(xiàn)五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Python文件如何引入?詳解引入Python文件步驟

    Python文件如何引入?詳解引入Python文件步驟

    我們整理了一篇關(guān)于引入Python文件的一個基礎(chǔ)知識點內(nèi)容,如果你是一個python的學習者,參考一下吧。
    2018-12-12
  • Python繪畫好看的星空圖

    Python繪畫好看的星空圖

    這篇文章主要介紹了Python繪畫好看的星空圖,文章內(nèi)容介紹詳細,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • 詳解PyQt5信號與槽的幾種高級玩法

    詳解PyQt5信號與槽的幾種高級玩法

    這篇文章主要介紹了詳解PyQt5信號與槽的幾種高級玩法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 親測解決tensorflow和keras版本不匹配的問題

    親測解決tensorflow和keras版本不匹配的問題

    這篇文章主要介紹了親測解決tensorflow和keras版本不匹配問題,完美解決:ImportError: No module named 'tensorflow.python.eager'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 編寫Python CGI腳本的教程

    編寫Python CGI腳本的教程

    這篇文章主要介紹了編寫Python CGI腳本的教程,CGI是Python和服務(wù)器軟件連接的接口,需要的朋友可以參考下
    2015-06-06
  • 在Django的視圖中使用數(shù)據(jù)庫查詢的方法

    在Django的視圖中使用數(shù)據(jù)庫查詢的方法

    這篇文章主要介紹了在Django的視圖中使用數(shù)據(jù)庫查詢的方法,是Python的Django框架使用的基礎(chǔ)操作,需要的朋友可以參考下
    2015-07-07
  • 在Python編程過程中用單元測試法調(diào)試代碼的介紹

    在Python編程過程中用單元測試法調(diào)試代碼的介紹

    這篇文章主要介紹了在Python編程過程中用單元測試法調(diào)試代碼的介紹,包括使用斷言等,有助于debug時的效率提升,需要的朋友可以參考下
    2015-04-04

最新評論