pymprog庫應用(四)值班問題

2021-09-01 23:22:40 字數 1352 閱讀 7777

from pymprog import *

# 資料

# 星期 \ 輪班

a = [

(1, 0, 0, 1, 1, 1, 1),

(1, 1, 0, 0, 1, 1, 1),

(1, 1, 1, 0, 0, 1, 1),

(1, 1, 1, 1, 0, 0, 1),

(1, 1, 1, 1, 1, 0, 0),

(0, 1, 1, 1, 1, 1, 0),

(0, 0, 1, 1, 1, 1, 1)

]# 需求人數

b = (20, 16, 13, 16, 19, 14, 12)

# 星期

c =

print("星期\輪班\n", a)

print("\n需求人數\n", b)

print("\n星期\n", c)

#模型及求解

begin('onduty')

x = var('x',len(a),kind=int) # 值班人數,決策變數

minimize(sum(x[i] for i in range(len(x))), '最少人數') # 目標函式

for i in range(len(x)): # 值班人數 >= 需求人數

sum(a[i][j]*x[j] for j in range(len(x))) >= b[i]

def report():

print("\n人員安排")

for i in range(len(x)):

if x[i].primal > 0.5:

print(c[i],":",int(x[i].primal))

print('最少人數:',int(vobj()))

solve()

report()

end()

星期\輪班

[(1, 0, 0, 1, 1, 1, 1), (1, 1, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 1, 1), (1, 1, 1, 1, 0, 0, 1), (1, 1, 1, 1, 1, 0, 0), (0, 1, 1, 1, 1, 1, 0), (0, 0, 1, 1, 1, 1, 1)]

需求人數

(20, 16, 13, 16, 19, 14, 12)

星期人員安排

星期一 : 8

星期二 : 2

星期四 : 6

星期五 : 3

星期六 : 3

最少人數: 22

pymprog庫應用(五)運輸問題

需要虛擬乙個銷地b4,可以理解為庫存。from pymprog import 資料 a a1 a2 a3 產地 b b1 b2 b3 b4 銷地 產地,銷地 運價 c 6 2,6 0 4,9 5,0 5 2,1 0 price dict for i in a for j in b price i,j...

資料庫原理及應用 四 資料庫管理系統

資料庫管理系統中非常重要的一部分。按照一定的規則將語句變化成關係代數以後進行優化 對代數優化後的查詢樹使用比較好的方法進行查詢。主要是對連線運算進行優化 備份 完整備份 差異備份 日誌 事務的特性由dbms負責維護,因此對於需要使用事務來進行執行的sql語句,我們要定義在事務中。如果沒有顯式地建立事...

資料庫技術應用的四個方向

資料庫技術發展和大多數領域發展一樣,必將是應用驅動和技術驅動相結合。傳統的關聯式資料庫,由於其自身的侷限性,在使用中受到了很多限制,在搜尋 多 企業內容管理 計算機輔助設計等方面,資料庫技術幾乎很少涉足,如能在以下4個方面完善資料庫技術,資料庫將獲取更大市場。方向1.實現非結構化資料管理 如果誰能控...