LINGO教程(數(shù)據(jù)輸入輸出)PPT_第1頁(yè)
LINGO教程(數(shù)據(jù)輸入輸出)PPT_第2頁(yè)
LINGO教程(數(shù)據(jù)輸入輸出)PPT_第3頁(yè)
LINGO教程(數(shù)據(jù)輸入輸出)PPT_第4頁(yè)
LINGO教程(數(shù)據(jù)輸入輸出)PPT_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、LINGO軟件與外部文件的接口,通過(guò)文件輸入輸出數(shù)據(jù),通過(guò)文件輸入輸出數(shù)據(jù)可以將LINGO程序和程序處理的數(shù)據(jù)分離開(kāi)來(lái)。 “程序和數(shù)據(jù)的分離”是結(jié)構(gòu)化程序設(shè)計(jì)、面向?qū)ο缶幊痰幕疽蟆?實(shí)際問(wèn)題通常需要處理大規(guī)模的實(shí)際數(shù)據(jù),而這些數(shù)據(jù)通常都是在其它應(yīng)用系統(tǒng)中生成的,或者已經(jīng)存放在其它應(yīng)用系統(tǒng)中的某個(gè)文件或數(shù)據(jù)庫(kù)中。 LINGO計(jì)算的結(jié)果需要以文件方式提供給其它應(yīng)用系統(tǒng)使用。,通過(guò)WINDOWS剪貼板傳遞數(shù)據(jù) 通過(guò)文本文件傳遞數(shù)據(jù) 通過(guò)電子表格文件傳遞數(shù)據(jù) LINGO命令腳本文件,內(nèi)容提要,1. 通過(guò)WINDOWS剪貼板傳遞數(shù)據(jù),粘貼命令 ( Edit|Paste ) 特殊粘貼命令(Edit|P

2、aste Special ),粘貼命令 ( Edit|Paste ),將WORD文件或其他外部文件中的數(shù)據(jù)拷貝到Windows剪貼板 在LINGO程序中直接粘貼到需要的地方,步驟:,注意:,粘貼的數(shù)據(jù)保持了WORD表格的風(fēng)格,且LINGO能夠正常識(shí)別甚至編輯其字體等。 由于LINGO對(duì)集合的屬性是按列賦值的,所以在外部文件中的數(shù)據(jù)與實(shí)際需要復(fù)制的數(shù)據(jù)可能發(fā)生行列顛倒的情況,需進(jìn)行調(diào)整。 類似的方法也可以將LINGO程序中的數(shù)據(jù)復(fù)制到其他外部文件中。,特殊粘貼命令(Edit|Paste Special ),選擇特殊粘貼命令,則會(huì)出現(xiàn)“選擇性粘貼”對(duì)話框,請(qǐng)你選擇粘貼格式。,粘貼一個(gè)WORD對(duì)象,

3、雙擊時(shí)可以打開(kāi)WORD進(jìn)行編輯,將剪貼板中的內(nèi)容以圖形格式插入到LINGO模型中,效果與直接使用“Ctrl+V”的效果是一樣的,粘貼的是格式化的文本,選擇了“顯示為圖標(biāo)”選項(xiàng),則只顯示一個(gè)“文檔”圖標(biāo)而不顯示剪貼板中的具體內(nèi)容;,選擇“粘貼鏈接” 時(shí)會(huì)建立與原文件的鏈接,當(dāng)數(shù)據(jù)文件改變時(shí),LINGO中這部分的內(nèi)容也會(huì)隨之改變,粘貼純文本文件,不保留文本的格式信息,特殊粘貼命令(Edit|Paste Special ),在這種粘貼方式中,只有選擇 “多信息文本(RTF)”或“未格式化文本” ,才能正確輸入數(shù)據(jù); 其他兩種方式:WORD文檔和圖形,LINGO在運(yùn)行時(shí)完全將它們忽略掉; 選擇“粘貼鏈

4、接”建立鏈接關(guān)系后,可以隨時(shí)用“EDIT|LINKS”命令修改這個(gè)連接的屬性。 如果數(shù)據(jù)不是放在WORD文件,而是EXCEL電子表格文件或者其他應(yīng)用程序的文件,操作和結(jié)果與上面介紹的過(guò)程完全類似。,注意:,2. 通過(guò)文本文件傳遞數(shù)據(jù),通過(guò)文本文件輸入數(shù)據(jù) FILE(filename) 通過(guò)文本文件輸出數(shù)據(jù) TEXT(filename),通過(guò)文本文件輸入數(shù)據(jù),FILE函數(shù)通常可以在集合段和數(shù)據(jù)段使用,但不允許嵌套使用。 調(diào)用格式:FILE(filename) filename為存放數(shù)據(jù)的文件名(可以包含完整的路徑名,或表示在當(dāng)前目錄下尋找這個(gè)文件) 數(shù)據(jù)文件中記錄之間必須用“”分開(kāi),例:,MOD

5、EL: SETS: MYSET / FILE(myfile.ldt) / : FILE(myfile.ldt); ENDSETS MIN = SUM( MYSET( I): ORDERED( I) * COST( I); FOR( MYSET( I): ORDERED( I) NEED( I); ORDERED( I) SUPPLY( I); DATA: COST = FILE( myfile.ldt); NEED = FILE( myfile.ldt); SUPPLY = FILE( myfile.ldt); ENDDATA END,數(shù)據(jù)文件myfile.ldt的內(nèi)容:,Lingo程序exa

6、m0402.LG4 :,每調(diào)用一次FILE(myfile.ldt) 就輸入一個(gè)數(shù)據(jù)記錄,Seattle,Detroit,Chicago,Denver COST,NEED,SUPPLY,ORDERED 12,28,15,20 1600,1800,1200,1000 1700,1900,1300,1100,如輸入數(shù)據(jù)發(fā)生變化,則只要修改數(shù)據(jù)文件myfile.ldt中的內(nèi)容,程序不變,實(shí)現(xiàn)數(shù)據(jù)與程序分離,通過(guò)文本文件輸出數(shù)據(jù),TEXT函數(shù)通常只在數(shù)據(jù)段使用 調(diào)用格式:TEXT(filename) 它用于數(shù)據(jù)段中將解答結(jié)果送到文本文件filename中, 當(dāng)省略filename時(shí),結(jié)果送到標(biāo)準(zhǔn)的輸出設(shè)

7、備(通常就是屏幕) Filename可以使用相對(duì)路徑或絕對(duì)路徑,若文件已經(jīng)存在,則覆蓋原文件,例:,TEXT(exam0403.txt)=write(4* ,Value,12* ,Dual,13* , Decrease,8* ,Increase,newline(2); TEXT(exam0403.txt)=write(Variables:,newline(2); TEXT(exam0403.txt)=Ordered,DUAL(Ordered),RANGED(ordered), RANGEU(ordered); TEXT(exam0403.txt)=write(newline(1),NEED C

8、onstraints:,newline(2); TEXT(exam0403.txt)=CON1,DUAL(CON1), RANGED(CON1), RANGEU(CON1); TEXT(exam0403.txt)=write(newline(1),SUPPLY Constraints:, newline(2); TEXT(exam0403.txt)=CON2,DUAL(CON2), RANGED(CON2), RANGEU(CON2); TEXT(exam0403.txt)=write(newline(1),Final status for exam0403: ,status(), if(st

9、atus(), (Maybe Not Global Optimal), (Global Optimal),newline(1);,Lingo程序exam0403.LG4(部分) :,輸出表頭,并換行,輸出變量Ordered的最優(yōu)解、對(duì)偶價(jià)格、敏感性分析,根據(jù)status()的值輸出是否全局最優(yōu),函數(shù)RANGED, RANGEU輸出敏感性分析信息,但LINGO的缺省設(shè)置是不進(jìn)行敏感性分析的,因此,必須進(jìn)行設(shè)置,這個(gè)選項(xiàng)在OPTIONS|General Solver,3. 通過(guò)電子表格文件傳遞數(shù)據(jù),在LINGO中使用電子表格文件的數(shù)據(jù) 將LINGO模型嵌入、鏈接到電子表格文件中,在LINGO中使用

10、電子表格文件的數(shù)據(jù),實(shí)際應(yīng)用中,可能有大量數(shù)據(jù)是存放在各種電子表格中的(如EXCEL表格)。 LINGO系統(tǒng)與EXCEL文件傳遞數(shù)據(jù)的函數(shù)的一般用法是通過(guò)OLE函數(shù)。 調(diào)用格式: OLE(spreadsheet_file , range_name_list) 輸入數(shù)據(jù) :“屬性(或變量)=OLE(.)” 輸出數(shù)據(jù) :“OLE(.)=屬性(或變量)”,電子表格文件名,數(shù)據(jù)的單元范圍,例:,首先,建立相應(yīng)的EXCEL數(shù)據(jù)文件 mydata.xls ,并定義相應(yīng)的數(shù)據(jù)單元,數(shù)據(jù)單元定義方法:選擇EXCEL的菜單命令“插入|名稱|定義” ,才談出對(duì)話框中輸入單元名稱,MODEL: SETS: MYSE

11、T / OLE(mydata.xls,CITIES) / : COST,NEED,SUPPLY,ORDERED; ENDSETS MIN = SUM( MYSET( I): ORDERED( I) * COST( I); FOR( MYSET( I): CON1 ORDERED( I) NEED( I); CON2 ORDERED( I) SUPPLY( I); DATA: COST,NEED,SUPPLY = OLE(mydata.xls); OLE(mydata.xls,SOLUTION)=ORDERED; ENDDATA END,Lingo程序exam0404.LG4:,從文件mydat

12、a.xls的CITIES所指示的單元中取出數(shù)據(jù),作為集合MYSET的元素。,從文件mydata.xls中相應(yīng)單元給COST,NEED,SUPPLY賦值 。沒(méi)有指定單元時(shí),從與變量名相同的單元中賦值,將ORDERED的值輸出賦給mydata.xls文件中由SOLUTION指定的單元格,輸出總結(jié)報(bào)告,Export Summary Report - Transfer Method: OLE BASED Workbook: mydata.xls Ranges Specified: 1 SOLUTION Ranges Found: 1 Range Size Mismatches: 0 Values Tr

13、ansferred: 4,采用OLE方式傳輸數(shù)據(jù); EXCEL文件為mydata.xls; 指定的接收單元范圍為SOLUTION; 在mydata.xls正好找到一個(gè)名為SOLUTION的域名; 不匹配的單元數(shù)為0; 傳輸了4個(gè)數(shù)值。,LINGO與數(shù)據(jù)庫(kù)交換數(shù)據(jù),不同的數(shù)據(jù)庫(kù)有不同的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS:DataBase Management System) WINDOWS環(huán)境下可以用ODBC(Open DataBase Connectivity)進(jìn)行連接 LINGO中可以使用函數(shù)ODBC,格式為 :,ODBC(data_source, table_name, col_1, col_2 .

14、) 其中data_source是數(shù)據(jù)庫(kù)名, table_name是數(shù)據(jù)表名, col_1, col_2,.是數(shù)據(jù)列名(數(shù)據(jù)域名)。,將LINGO模型嵌入、鏈接到電子表格文件中,打開(kāi)EXCEL文件 菜單命令“插入|對(duì)象” 選擇“新建|LINDO Document”,建立一個(gè)空的LINGO文件對(duì)象,且在EXCEL中出現(xiàn)LINGO菜單 輸入LINGO 程序內(nèi)容,即可在EXCEL中運(yùn)行LINGO程序,雖然在EXCEL文件中嵌入了LINGO對(duì)象,但需要人工干預(yù)才能運(yùn)行這個(gè)對(duì)象。 若希望在EXCEL中自動(dòng)運(yùn)行一個(gè)LINGO程序 ,則需要將LINGO程序用命令腳本進(jìn)行描述,并需要用EXCEL的宏命令進(jìn)行調(diào)用

15、。,4. LINGO命令腳本文件,LINGO命令腳本文件是一個(gè)普通的文本文件,但是文件中的內(nèi)容是由一系列LINGO命令構(gòu)成的命令序列。 使用命令腳本文件,你可以同時(shí)運(yùn)行一系列的LINGO批處理命令。 命令腳本文件可用任何文本編輯器生成,也可以用LINGO新建文件(*.ltf文件)進(jìn)行編輯。,例如: 一家快餐公司有多家分店,每家分店都要確定每天所雇用的服務(wù)員的人數(shù)。每家分店的優(yōu)化模型的結(jié)構(gòu)本質(zhì)上是一樣的,只是具體數(shù)據(jù)不同。 我們可以把每個(gè)分店的人員需求數(shù)據(jù)存入各自的一個(gè)數(shù)據(jù)文件中,并建立一個(gè)統(tǒng)一的程序(命令腳本文件)逐個(gè)調(diào)用這些數(shù)據(jù)進(jìn)行求解,輸出結(jié)果。,分店AAA周一到周四每天至少需要50人,周

16、五至少80人,周六和周日至少90人; 分店BBB周一到周四每天至少需要80人,周五至少120人,周六和周日至少140人; 分店CCC周一到周四每天至少需要90人,周五至少120人,周六和周日至少150人。,3家分店(分別表示為AAA,BBB,CCC),! 開(kāi)始輸入關(guān)于員工聘用的優(yōu)化模型 MODEL: SETS: DAYS / MON TUE WED THU FRI SAT SUN/: REQUIRED, START; ENDSETS DATA: REQUIRED = FILE( AAA.LDT); ! 讀入需求數(shù)據(jù)REQUIRED; TEXT(F:lindolindo書(shū)ch04result/A

17、AA.TXT) = WRITE( 員 工 聘 用 計(jì) 劃 表, NEWLINE( 1); TEXT(F:lindolindo書(shū)ch04result/AAA.TXT) = WRITE( -, NEWLINE( 1); TEXT(F:lindolindo書(shū)ch04result/AAA.TXT) = WRITEFOR( DAYS(I):DAYS(I), (星期,I,): , 4* , FORMAT( START(I), 3.0f),NEWLINE(1) ); TEXT(F:lindolindo書(shū)ch04result/AAA.TXT) = WRITE( -, NEWLINE( 1); TEXT(F:l

18、indolindo書(shū)ch04result/AAA.TXT) = WRITE(6* , 合計(jì):, 6* , SUM( DAYS: START),NEWLINE( 1); ENDDATA MIN = SUM( DAYS( I): START( I); FOR( DAYS(J): SUM(DAYS(I) | I #LE# 5:START(WRAP(J - I + 1,7)=REQUIRED(J); FOR( DAYS: GIN( START); END GO ! 下面求解分店AAA的決策問(wèn)題 ALTER ALL AAABBB ! 下面轉(zhuǎn)向求解分店BBB的決策問(wèn)題 GO ALTER ALL BBBCCC ! 下面轉(zhuǎn)向求解分店CCC的決策問(wèn)題 GO SET TERSEO 0 ! 恢復(fù)參數(shù)(恢復(fù)以正常方式顯示解答結(jié)果),命令之間的說(shuō)明語(yǔ)句不需要以“;”結(jié)束;但在程序段中(即位于“MODEL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論