中文名 | 窗時(shí)排序 | 外文名 | window scheduling |
---|---|---|---|
所屬學(xué)科 | 管理科學(xué)技術(shù) | 公布時(shí)間 | 2016年 |
《管理科學(xué)技術(shù)名詞》第一版。 2100433B
交貨期不是一個(gè)點(diǎn)而是一個(gè)區(qū)間的排序。
擊【分部整理】,會(huì)顯示下方窗口,如圖一: 鉤選分部規(guī)則后點(diǎn)擊“執(zhí)行分部整理”即可。 點(diǎn)擊【分部整理】,會(huì)顯示下方窗口,如圖二: 點(diǎn)擊“執(zhí)行子目排序”即可
使用08定額,建筑與裝飾最好分開(分兩個(gè)預(yù)算)做,就不會(huì)出現(xiàn)借用定額的代號(hào)了,直接點(diǎn)分部整理即可排序,如果不想分為兩個(gè)預(yù)算,裝飾部分可以按鼠標(biāo)右鍵插入分部輸入編號(hào)、分部名稱,然后將該分部的子目用上下移...
你是說的定義構(gòu)件中的構(gòu)件排序吧,具體子類型是什么也搞不清,但排序最好是選擇【按子類型和名稱】排序最適當(dāng),我試過其它排序,混亂、不好使。
格式:pdf
大?。?span id="evattuu" class="single-tag-height">73KB
頁數(shù): 10頁
評(píng)分: 4.4
第 8 章 排序 1.選擇題 ( 1)從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較, 將其放入已排序序 列的正確位置上的方法,這種排序方法稱為( )。 A.歸并排序 B.冒泡排序 C.插入排序 D.選擇排序 答案: C ( 2)從未排序序列中挑選元素,并將其依次放入已排序序列(初始時(shí)為空)的一端的方 法,稱為( )。 A.歸并排序 B.冒泡排序 C.插入排序 D.選擇排序 答案: D ( 3)對(duì) n 個(gè)不同的關(guān)鍵字由小到大進(jìn)行冒泡排序,在下列( )情況下比較的次數(shù)最 多。 A.從小到大排列好的 B.從大到小排列好的 C.元素?zé)o序 D.元素基本有序 答案: B 解釋:對(duì)關(guān)鍵字進(jìn)行冒泡排序,關(guān)鍵字逆序時(shí)比較次數(shù)最多。 ( 4)對(duì) n 個(gè)不同的排序碼進(jìn)行冒泡排序, 在元素?zé)o序的情況下比較的次數(shù)最多為 ( )。 A. n+1 B. n C. n-1 D. n(n-1)/2 答案:
格式:pdf
大小:73KB
頁數(shù): 10頁
評(píng)分: 4.4
第 8 章 排序 1.選擇題 ( 1)從未排序序列中依次取出元素與已排序序列中的元素進(jìn)行比較, 將其放入已排序序 列的正確位置上的方法,這種排序方法稱為( )。 A.歸并排序 B.冒泡排序 C.插入排序 D.選擇排序 答案: C ( 2)從未排序序列中挑選元素,并將其依次放入已排序序列(初始時(shí)為空)的一端的方 法,稱為( )。 A.歸并排序 B.冒泡排序 C.插入排序 D.選擇排序 答案: D ( 3)對(duì) n 個(gè)不同的關(guān)鍵字由小到大進(jìn)行冒泡排序,在下列( )情況下比較的次數(shù)最 多。 A.從小到大排列好的 B.從大到小排列好的 C.元素?zé)o序 D.元素基本有序 答案: B 解釋:對(duì)關(guān)鍵字進(jìn)行冒泡排序,關(guān)鍵字逆序時(shí)比較次數(shù)最多。 ( 4)對(duì) n 個(gè)不同的排序碼進(jìn)行冒泡排序, 在元素?zé)o序的情況下比較的次數(shù)最多為 ( )。 A. n+1 B. n C. n-1 D. n(n-1)/2 答案:
第1章緒論 /
11排序問題的背景及描述 /
12現(xiàn)代排序 /
13算法中的幾個(gè)重要概念 /
14準(zhǔn)時(shí)排序及相關(guān)結(jié)果 /
15窗時(shí)排序及相關(guān)結(jié)果 /
16符號(hào)表示 /
17本書的貢獻(xiàn)與組織結(jié)構(gòu) /
第2章最小化提前/延誤的賦權(quán)工件個(gè)數(shù) /
21引言 /
22交貨期窗口的位置待定 /
23交貨期窗口的大小待定 /
24交貨期窗口的位置和大小均待定 /
25給定的交貨期窗口 /
26推廣到多臺(tái)平行機(jī) /
27結(jié)語 /
第3章最小化提前和延誤時(shí)間懲罰 /
31引言 /
32交貨期窗口給定 /
33交貨期窗口的位置待定 /
34多個(gè)綜合目標(biāo) /
35推廣到多臺(tái)機(jī)器 /
36結(jié)語 /
第4章有交貨期窗口的無界批處理 /
41批處理問題 /
42相關(guān)研究結(jié)果 /
43給定的交貨期窗口 /
44交貨期窗口的位置待定 /
45結(jié)語 /
第5章關(guān)于非準(zhǔn)時(shí)工件數(shù)的有界批處理 /
51問題描述 /
52最優(yōu)性質(zhì) /
生產(chǎn)調(diào)度是根據(jù)企業(yè)生產(chǎn)系統(tǒng)的生產(chǎn)目標(biāo)和環(huán)境狀態(tài),在盡可能滿足約束條件(如交貨期、工藝要求和路線、資源現(xiàn)狀)的前提下,按照工藝規(guī)程和計(jì)劃,通過下達(dá)生產(chǎn)計(jì)劃及調(diào)度指令對(duì)系統(tǒng)內(nèi)的可用資源進(jìn)行實(shí)時(shí)任務(wù)分配,以達(dá)到縮短產(chǎn)品的制造周期、減少在制品、降低庫存、提高生產(chǎn)資源的利用率及提高制造系統(tǒng)生產(chǎn)率等目的。
影響生產(chǎn)調(diào)度問題的因素很多,正常情況下有產(chǎn)品的投產(chǎn)期、交貨期(完成期)、生產(chǎn)能力、加工順序、加工設(shè)備和原料的可用性、批量大小、加工路徑、成本限制等,這些都是所謂的約束條件。有些約束條件是必須要滿足的,如交貨期、生產(chǎn)能力等,而有些達(dá)到一定的滿意度即可,如生產(chǎn)成本等。
為了避免儲(chǔ)存及隱藏的額外運(yùn)轉(zhuǎn)帶來的高費(fèi)用,例如,由于等待、傳遞、額外勞動(dòng)力、重加工及訂單改變等引起的效益損失,生產(chǎn)商不僅考慮延誤帶來的懲罰還必須顧及提前完工付出的費(fèi)用,這就是準(zhǔn)時(shí)排序問題。它限定工件的交貨期:如果工件在交貨期之前完工,會(huì)出現(xiàn)儲(chǔ)存費(fèi)和保管費(fèi)之類;而在交貨期之后完成,固然要科以罰款,則會(huì)產(chǎn)生延誤賠償甚至失去合作機(jī)會(huì)等損失。而準(zhǔn)時(shí)排序的目的就是要小化這些費(fèi)用之和,所以,在“準(zhǔn)時(shí)”概念中,盡可能使得工件的完工時(shí)間接近其交貨期或者提前和延誤的工件個(gè)數(shù)盡量少。因此,提前和延誤應(yīng)該盡可能地避免,這也使得以前討論的傳統(tǒng)性能函數(shù)無效。既然目標(biāo)函數(shù)是關(guān)于工件完工時(shí)間的非正則函數(shù),問題的研究相對(duì)比較困難。
現(xiàn)實(shí)中,供應(yīng)商和客戶在簽訂供應(yīng)合同時(shí),通常會(huì)指定一個(gè)交貨時(shí)間區(qū)間,如果工件在這個(gè)時(shí)間區(qū)間內(nèi)完成則被認(rèn)為是準(zhǔn)時(shí)的,不會(huì)招致任何處罰。它是將交貨期合理地設(shè)置成一個(gè)時(shí)間段,而不再是單個(gè)時(shí)間點(diǎn),這種排序稱為窗時(shí)排序。我們把這個(gè)時(shí)間區(qū)間稱為工件的交貨期窗口,該窗口的左端為早交貨期(或稱“交貨期窗口的位置”)、右端為晚交貨期。如果工件在窗時(shí)交貨期前完成,則必須被庫存,這種情況視為一個(gè)提前處罰。另外,如果工件在交貨期窗口后完成,根據(jù)合同中的規(guī)定,它將導(dǎo)致延遲懲罰。顯然,如果交貨期窗口較大則可以增加供應(yīng)商生產(chǎn)和輸送的靈活性。然而,設(shè)置大型的交貨期窗口和延遲工件完成時(shí)間都會(huì)降低供應(yīng)商的競(jìng)爭(zhēng)力和客戶服務(wù)水平。所以交貨期窗口的設(shè)置也經(jīng)常成為問題的目標(biāo)之一。
本書探討的內(nèi)容都是對(duì)經(jīng)典排序的突破,研究現(xiàn)代排序與準(zhǔn)時(shí)、窗時(shí)排序的結(jié)合應(yīng)用,目的是為了在新型排序環(huán)境下,使某個(gè)衡量函數(shù)大或者小,如提前時(shí)間、延誤時(shí)間、提前或延誤的工件個(gè)數(shù)及交貨期窗口的確定等 "
二叉排序樹(Binary Sort Tree:BST)
1、二叉排序樹的定義
二叉排序樹(Binary Sort Tree)又稱二叉查找(搜索)樹(Binary Search Tree)。其定義為:二叉排序樹或者是空樹,或者是滿足如下性質(zhì)的二叉樹:
①若它的左子樹非空,則左子樹上所有結(jié)點(diǎn)的值均小于根結(jié)點(diǎn)的值;
②若它的右子樹非空,則右子樹上所有結(jié)點(diǎn)的值均大于根結(jié)點(diǎn)的值;
③左、右子樹本身又各是一棵二叉排序樹。
上述性質(zhì)簡(jiǎn)稱二叉排序樹性質(zhì)(BST性質(zhì)),故二叉排序樹實(shí)際上是滿足BST性質(zhì)的二叉樹。
2、二叉排序樹的特點(diǎn)
由BST性質(zhì)可得:
(1) 二叉排序樹中任一結(jié)點(diǎn)x,其左(右)子樹中任一結(jié)點(diǎn)y(若存在)的關(guān)鍵字必小(大)于x的關(guān)鍵字。
(2) 二叉排序樹中,各結(jié)點(diǎn)關(guān)鍵字是惟一的。
注意:
實(shí)際應(yīng)用中,不能保證被查找的數(shù)據(jù)集中各元素的關(guān)鍵字互不相同,所以可將二叉排序樹定義中BST性質(zhì)(1)里的"小于"改為"小于等于",或?qū)ST性質(zhì)(2)里的"大于"改為"大于等于",甚至可同時(shí)修改這兩個(gè)性質(zhì)。
(3) 按中序遍歷該樹所得到的中序序列是一個(gè)遞增有序序列。
【例】下圖所示的兩棵樹均是二叉排序樹,它們的中序序列均為有序序列:2,3,4,5,7,8。
3、二叉排序樹的存儲(chǔ)結(jié)構(gòu)
typedef int KeyType; //假定關(guān)鍵字類型為整數(shù)
typedef struct node { //結(jié)點(diǎn)類型
KeyType key; //關(guān)鍵字項(xiàng)
InfoType otherinfo; //其它數(shù)據(jù)域,InfoType視應(yīng)用情況而定,下面不處理它
struct node *lchild,*rchild,*parent; //左右孩子指針
} BSTNode;
typedef BSTNode *BSTree; //BSTree是二叉排序樹的類型
二叉排序樹的基本操作(pascal):
1.中序遍歷所有元素
procedure tree_walk(x:longint);
begin
if x<>0 then
begin
tree_walk(left[x]);
write(key[x]);
tree_walk(right[x]);
end;
2.查找給定的元素
function tree_search(x,k:longint):longint;
begin
if (x=0) or (k=key[x]) then exit(x);
if k end; 非遞歸版本 function tree_search(x,k:longint):longint; begin while (x<>0) and (k<>key[x]) do begin if k end; exit(x); end; 3.查找最小元素 function tree_minimum(x:longint):longint; begin while left[x]<>0 do x:=left[x]; exit(x); end; 查找最大元素 function tree_maximum(x:longint):longint; begin while right[x]<>0 do x:=right[x]; exit(x); end; 4. 求后繼 function tree_successor(x:longint):longint; var y:longint; begin if right[x]<>0 then exit(tree_minimum(right[x]));//若右子樹不空,則返回右子樹中的最小值 y:=p[x];//若右子樹為空,則后繼y為x的最低祖先節(jié)點(diǎn),且y的左兒子也是x的祖先 while (y<>0) and (x=right[y]) do begin x:=y; y:=p[y]; end; exit(y);//注意,若y為0,則x無后繼 end; //注意,函數(shù)返回值為節(jié)點(diǎn)編號(hào),并不是節(jié)點(diǎn)本身的值 5.插入 procedure tree_insert(z:longint);//注意z為節(jié)點(diǎn)編號(hào),并非樹中的值 var x,y:longint; begin y:=0; x:=root; while x<>0 do//查找z的父節(jié)點(diǎn),y記錄 begin y:=x; if key[z] end; p[x]:=y; if y=0 then root:=z//若z為根節(jié)點(diǎn) else begin if key[z] end; end; 6.刪除 刪除操作是最麻煩的,分3種情況: (1)若z無子樹,則就刪除z節(jié)點(diǎn),更新p[z]的值為空 (2)若z有一個(gè)子樹,刪除z節(jié)點(diǎn),更新p[z]的值為z的兒子節(jié)點(diǎn),更新left[p[z]] 或 right[p[z]] (3)若z有兩棵子樹,先找到z的后繼y(后繼節(jié)點(diǎn)無左子樹,可證),刪除y節(jié)點(diǎn),更新p[y]與left[p[y]] 或 right[p[y]],最后用節(jié)點(diǎn)y的數(shù)據(jù)覆蓋z節(jié)點(diǎn) procedure tree_delete(z:longint); var x,y:longint; begin if (left[z]=0) or (right[z]=0) then y:=z else y:=tree_successor(z); if left[y]<>0 then x:=left[y] else x:=right[y]; if x<>0 then p[x]:=p[y]; if p[y]=0 then root:=x else begin if y=left[p[y]] then left[p[y]]:=x else right[p[y]]:=x; end; if z<>y then key[z]:=key[y]; end; 7.查找數(shù)中第k大元素 需要對(duì)每個(gè)節(jié)點(diǎn)新開一個(gè)域v[x],記錄該節(jié)點(diǎn)的有多少子節(jié)點(diǎn), 查找時(shí)分三種情況: (1)k=v[left[x]] 1 則當(dāng)前x節(jié)點(diǎn)為所求 (2)k<=v[left[x]] 則在左子樹中繼續(xù)查找 (3)k>v[left[x]] 1 則在右子樹中繼續(xù)查找,k更新為k-left[x]-1; function find(x,k:longint):longint; begin if v[left[x]] 1=k then exit(key[k]) else if v[left[x]]>=k then exit(find(left[x],k)) else exit(find(right[x],k-v[left[x]]-1)); end;