版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于主體建模教程?1992-2023XJTechnologiesCompanyLtd.“://xjtek/“xjtek基于主體建模教程基于主體建模教程21992-2023XJTechnologies21992-2023XJTechnologies“://xjtek/“://xjtek版權(quán)全部?1992-2023XJTechnologies。保存全部權(quán)利。XJTechnologiesCompanyLtd“mailto:AnyLogic@xjtek“AnyLogic@xjtek“://xjtek/products/anylogic“://xjtek/products/anylogic基于主體建模教程名目\l“_TOC_250018“關(guān)于此教程 4\l“_TOC_250017“產(chǎn)品生命周期模型 5\l“_TOC_250016“創(chuàng)立一個(gè)工程 5\l“_TOC_250015“創(chuàng)立主體 6\l“_TOC_250014“定義主體特性 7\l“_TOC_250013“定義主體行為 11計(jì)數(shù)產(chǎn)品用戶(hù)數(shù) 14\l“_TOC_250012“配置模型 17\l“_TOC_250011“運(yùn)行模型 18\l“_TOC_250010“爭(zhēng)論此過(guò)程 18\l“_TOC_250009“考慮口碑的影響 21\l“_TOC_250008“參與產(chǎn)品消耗規(guī)律 24\l“_TOC_250007“創(chuàng)立空間模型 26\l“_TOC_250006“創(chuàng)立動(dòng)畫(huà) 29\l“_TOC_250005“擴(kuò)展的產(chǎn)品生命周期模型 37\l“_TOC_250004“廣告活動(dòng) 37\l“_TOC_250003“多產(chǎn)品集中 40\l“_TOC_250002“人群移動(dòng) 44\l“_TOC_250001“人群遷移 47\l“_TOC_250000“3.總結(jié) 51基于主體建模教程基于主體建模教程10101992-2023XJTechnologies“://xjtek/“://xjtek關(guān)于此教程AnyLogicTM支持多種不同的建模技術(shù)。本教程掩蓋了基于主體〔agent-based〕建模的步驟,基于主體的建模已經(jīng)成功地應(yīng)用于包括生態(tài)學(xué),社會(huì)學(xué),經(jīng)濟(jì)學(xué),交通模擬等等很多領(lǐng)域在內(nèi)的廣泛范圍。基于主體的建模用于對(duì)市場(chǎng)〔主體作為潛在客戶(hù),競(jìng)爭(zhēng)和供給鏈〔主體作為公司,人口〔主體作為家庭,個(gè)人,或選舉人〕等進(jìn)展建模?;谥黧w的建模允許在假定系統(tǒng)各AnyLogicTM是唯一允許使用主體創(chuàng)立柔性模型,并且主體在其環(huán)境中可以相互交互的仿真AnyLogiTM狀態(tài)圖statechar,同步和異步大事規(guī)劃。這一教程將簡(jiǎn)要向你介紹使用AnyLogicTM創(chuàng)立一個(gè)仿真模型的過(guò)程。其目的是向你介紹AnyLogicTM的用戶(hù)界面和其他很多主要特性。我們將創(chuàng)立一個(gè)簡(jiǎn)潔的示范實(shí)例——產(chǎn)品生命周期模型,此模型用于推想產(chǎn)品的銷(xiāo)售狀況。在第一節(jié)我們將創(chuàng)立經(jīng)典的Bass集中模型。然后我們通過(guò)考慮一些細(xì)節(jié)信息和向你介紹一些AnyLogicTM的高級(jí)特性來(lái)將此模型擴(kuò)展。請(qǐng)留意在如下文件夾中有一些文件供參考:Examples\AgentBasedModelingTutorialModels,這些文件中包括了本文所述編輯過(guò)程中的一些重要記錄。假設(shè)你在創(chuàng)立模型過(guò)程中遇到任何困難,或你期望將你的模型與參考文件相比較,你可以使用這些參考文件。你可以使用Start以翻開(kāi)這些例如。在你關(guān)閉你正在編輯的模型之后,Start將自動(dòng)消滅。產(chǎn)品生命周期模型在這一教程中我們將創(chuàng)立產(chǎn)品生命周期模型。這一模型描述了產(chǎn)品的集中過(guò)程。產(chǎn)品的潛在客戶(hù)會(huì)受到廣告和客戶(hù)〔那些已經(jīng)購(gòu)置了這種產(chǎn)品的人〕的口碑影響而購(gòu)置產(chǎn)品。創(chuàng)立一個(gè)工程首先,我們將為你的模型創(chuàng)立一個(gè)工程。創(chuàng)立一個(gè)工程點(diǎn)擊NewProject工具條按鈕。此時(shí)即消滅NewProject
話框。點(diǎn)擊ChooseLocation按鈕,然后掃瞄找到你期望保存你的工程文件的文件夾。tte。OK。此時(shí)即創(chuàng)立了一個(gè)工程。你可以看到構(gòu)造圖structure〕工作區(qū)中,Project窗口顯示于左側(cè)面板中,Properties窗口顯示于右側(cè)面板中。當(dāng)在一個(gè)工程中進(jìn)展工作之后,不要遺忘點(diǎn)擊Save以保存此工程。創(chuàng)立主體在創(chuàng)立基于主體的模型時(shí),你要做的第一件事情就是創(chuàng)立主體。主體是基于主體的模型的根本構(gòu)建模塊。基于主體的模型包括多個(gè)主體以及它們的環(huán)境。依據(jù)一個(gè)主體與哪些其他主體發(fā)生交互,每個(gè)主體都被賜予一系列規(guī)章;這些交互將產(chǎn)生整個(gè)系統(tǒng)的總體行為。在這一模型中,主體是人。為了在etclas
定義主體的內(nèi)部構(gòu)造,然后創(chuàng)立所需數(shù)量的類(lèi)實(shí)例,每一實(shí)例即代表一個(gè)主體。創(chuàng)立一個(gè)主體點(diǎn)擊NewActiveObjectClass工具條按鈕。在翻開(kāi)的對(duì)話框中,指定類(lèi)的名稱(chēng)efewclas。Person類(lèi)圖即自動(dòng)翻開(kāi)。這樣你就成功創(chuàng)立了一個(gè)類(lèi),此類(lèi)將定義主體的內(nèi)部構(gòu)造。現(xiàn)在向模型中參與主體。為將主體放置于模型環(huán)境中,你需要將建模主體〔人〕的對(duì)象封裝到建模環(huán)境的類(lèi)〔Main〕中去。將主體放置于環(huán)境中在Project窗口中雙擊Main工程,翻開(kāi)Main類(lèi)圖。將Person類(lèi)從Project窗口中拖動(dòng)到Main類(lèi)的構(gòu)造圖中。在頁(yè)面中,輸入對(duì)象的名稱(chēng)。Properties窗口的Replication象的數(shù)量rf。此時(shí)將自動(dòng)創(chuàng)立所指定數(shù)量的類(lèi)實(shí)例,每個(gè)實(shí)例代表一個(gè)主體。這樣我們就創(chuàng)立了所需數(shù)量的主體?,F(xiàn)在我們需要使用類(lèi)參數(shù)〔parameters〕和狀態(tài)圖〔statechart〕來(lái)定義主體屬性和行為。定義主體特性你可以使用類(lèi)參數(shù)〔parameter〕定義主體屬性。由于全部主體都是同一個(gè)活動(dòng)對(duì)象類(lèi)〔activeobjectclass〕的實(shí)例,因此對(duì)每個(gè)主體,其根本的內(nèi)部構(gòu)造是一樣的。類(lèi)參數(shù)允許為每個(gè)主體分別定義其屬性。定義個(gè)人的廣告建議性在Project窗口中,點(diǎn)擊Person工程。在Properties窗口,點(diǎn)擊NewParameter…按鈕。在翻開(kāi)的Parameter對(duì)話框中,設(shè)定參數(shù)屬性。轉(zhuǎn)變參數(shù)名稱(chēng)。在Name編輯框中輸入Ad_Effectiveness。定義參數(shù)數(shù)值。在Defaultvalue編輯框中,輸入0.011。你可以在Description編輯框中輸入對(duì)此參數(shù)的簡(jiǎn)短描述。輸入文本用于幫助向不生疏此模型的人進(jìn)展解釋。你可以看到在Parameters表格中參與了的參數(shù)。定義每人每年聯(lián)系的數(shù)目以同樣方法創(chuàng)立參數(shù)。輸入名稱(chēng):Contact_Rate。假定每人每年的聯(lián)系頻率為100。在Defaultvalue編輯框中,輸入100。1. 指定此人的說(shuō)服力,即其與別人的聯(lián)系中多大比例可以說(shuō)服其熟人來(lái)購(gòu)置此產(chǎn)品。定義個(gè)人的所說(shuō)服力將參數(shù)命名為Adoption_Fraction。設(shè)定參數(shù)值為0.015。創(chuàng)立附加參數(shù)在Project窗口中雙擊Person工程,翻開(kāi)Person類(lèi)圖。點(diǎn)擊NewVariable藍(lán)色圓圈。
工具條按鈕,然后點(diǎn)擊類(lèi)圖。此時(shí)圖中即消滅一個(gè)變量,顯示為Properties窗口中。你可以依據(jù)你的模型需求,調(diào)整元素屬性。請(qǐng)留意Properties窗口是上下文相關(guān)的——或在構(gòu)造圖中選定它。Properties窗口中,在Name編輯框中輸入model。定義變量類(lèi)型MaiMai是環(huán)境對(duì)象類(lèi)。指定參數(shù)的起始值。我們需要此變量以簡(jiǎn)化主體對(duì)環(huán)境的訪問(wèn)。創(chuàng)立變量isAdopter,并且此變量有如下屬性:這一變量將幫助我們了解此個(gè)人是現(xiàn)有客戶(hù)還是潛在客戶(hù)。定義主體行為主體行為通過(guò)狀態(tài)圖〔statechart〕定義。創(chuàng)立狀態(tài)圖ProjectPersonPerson類(lèi)圖。首先,點(diǎn)擊Statechart工具條按鈕,然后點(diǎn)擊類(lèi)圖。此時(shí)圖中即顯示狀態(tài)圖圖標(biāo)。雙擊此圖標(biāo)。即翻開(kāi)顯示如下?tīng)顟B(tài)圖的圖表。Propertiesadoption。F2鍵,將其重命名為PotentialAdopter。由于起始狀客戶(hù)。繪制如下的狀態(tài)圖。點(diǎn)擊State工具條按鈕,以參與更多狀態(tài),然后點(diǎn)擊PotentialAdopter狀態(tài)之下的狀A(yù)dopter。這樣在這一狀態(tài)變?yōu)榛顫姇r(shí),這個(gè)人即變?yōu)榭蛻?hù)。PotentialAdopterAdopterTransition
工具條按鈕,然后點(diǎn)擊上方狀態(tài)的邊緣,然后再點(diǎn)擊下方狀態(tài)的邊緣。在窗口中,從e下拉選單中選擇rt
Timeout數(shù)值。exponentialAnyLogicexponentialAnyLogicTMAnyLogicTM也供給了其他隨機(jī)數(shù)分布,如正態(tài)分布,均勻分布,三角分布等。請(qǐng)參考用戶(hù)手冊(cè)Users’Manu以了解全部這些隨機(jī)數(shù)發(fā)生器的細(xì)節(jié)描述。在M的類(lèi)參考手冊(cè)s〕中你可以查到發(fā)生函數(shù)及其參數(shù)信息。為翻開(kāi)AnyLogicTM用戶(hù)手冊(cè)或類(lèi)參考手冊(cè),請(qǐng)從Help菜單中選擇對(duì)應(yīng)菜單項(xiàng)。計(jì)數(shù)產(chǎn)品客戶(hù)模型的主要目的是爭(zhēng)論產(chǎn)品如何被承受經(jīng)購(gòu)置了我們的產(chǎn)品。我們創(chuàng)立兩個(gè)變量以計(jì)數(shù)產(chǎn)品的現(xiàn)有客戶(hù)和潛在客戶(hù)。創(chuàng)立變量ProjectMainMain類(lèi)圖。potential_adopters。adopters。修改狀態(tài)圖Projectadoptionadoption狀態(tài)圖。PotentialAdopterProperties〔Entryaction〕和離開(kāi)行為t。當(dāng)進(jìn)入此狀態(tài)時(shí),我們將用于計(jì)數(shù)潛在客戶(hù)的變量增加1。當(dāng)離開(kāi)此狀態(tài)時(shí),我們將此變量削減1。為確認(rèn)所作出的改動(dòng),我們調(diào)用環(huán)境對(duì)象的setModified函數(shù)。變量r標(biāo)明此人是否已經(jīng)購(gòu)置此產(chǎn)品〔假設(shè)是,則為,否則為。Adopter狀態(tài)的屬性。配置模型模型仿真有一系列特定的設(shè)定。一組模型的設(shè)定稱(chēng)之為一個(gè)試驗(yàn)t。你可以創(chuàng)立多個(gè)替代模型設(shè)定,然后只需轉(zhuǎn)變此模型的當(dāng)前試驗(yàn)即可轉(zhuǎn)變模型工作配置。Experiments工程之下。默認(rèn)狀況下即已創(chuàng)立一個(gè)試驗(yàn)并命名為默認(rèn)狀況下即已創(chuàng)立一個(gè)試驗(yàn)并命名為Simulation。這是一個(gè)簡(jiǎn)潔試驗(yàn)〔simple,供給了過(guò)程可視化的工具。在模型參數(shù)起重要作用,并且你需要分析這些參數(shù)如何影響模型行為,或你期望找到你的模型的最優(yōu)參數(shù)時(shí),你也可以使用多種其他類(lèi)型的試驗(yàn)〔如優(yōu)化,風(fēng)險(xiǎn)評(píng)估,變化測(cè)試。請(qǐng)查閱用戶(hù)手冊(cè)以了解更多細(xì)節(jié)信息。假設(shè)我們現(xiàn)在即運(yùn)行此模型,則它將無(wú)限期工作。由于我們只想觀看在用戶(hù)承受產(chǎn)品過(guò)程發(fā)生時(shí)模型行為是怎樣的,我們需要在系統(tǒng)到達(dá)平衡狀態(tài)時(shí)停頓此模型。在此模型中,超過(guò)8年購(gòu)置過(guò)程將趨于平穩(wěn)。由于在此模型中一個(gè)單位模型時(shí)間對(duì)應(yīng)于一年,因此我們需要8個(gè)單位時(shí)間之后停頓模型。設(shè)置模型停頓條件在Project窗口中,點(diǎn)擊Simulation試驗(yàn)工程。在Properties窗口的Additional 項(xiàng)卡中,選中Stopattime選框。在右側(cè)的編輯框中,輸入8。這一模型將在8個(gè)單位模型時(shí)間后停頓。運(yùn)行模型點(diǎn)擊Build工具條按鈕以建筑你的工程。假設(shè)你的工程中存在錯(cuò)誤,則此建筑操作失敗,顯示Output錯(cuò)誤的位置,然后改正此錯(cuò)誤。在工程成功建立之后,你可以通過(guò)點(diǎn)擊Run工具條按鈕以開(kāi)頭運(yùn)行此模型。到這里,AnyLogicTM的編輯器模式中工作。模型開(kāi)頭運(yùn)行之后,即切換到查看器模式。在查看器模式中,你可以把握模型執(zhí)行,查看圖表,動(dòng)態(tài)轉(zhuǎn)變參數(shù),等等。爭(zhēng)論此過(guò)程AnyLogicTM圖表〔chart〕以對(duì)所考察過(guò)程的動(dòng)態(tài)行為進(jìn)展?fàn)幷摗N覀儗?chuàng)立一個(gè)圖表以顯示客戶(hù)數(shù)目如何變化。創(chuàng)立圖表點(diǎn)擊Step工具欄按鈕以預(yù)備運(yùn)行模型。點(diǎn)擊NewChart 工具條按鈕。此時(shí)即消滅一個(gè)圖表窗口。選擇需要在圖表中顯示的變量。右鍵點(diǎn)擊圖表窗口,從彈出菜單中選擇ChartSetup此ChartSetup對(duì)話框。變量,以將其參與到圖表中。用類(lèi)似方法參與變量root.adopters。。配置圖表點(diǎn)擊Step工具欄按鈕以預(yù)備運(yùn)行模型。右鍵點(diǎn)擊圖表窗口,從彈出菜單中選擇ChartOptions…在消滅的對(duì)話框中設(shè)定圖表的時(shí)間范圍。現(xiàn)在點(diǎn)擊Restart以重開(kāi)頭模型,然后點(diǎn)擊Run。圖表中顯示了變量potential_adoptersadopters隨著仿真過(guò)程如何變化。廣告在每段時(shí)期內(nèi)引發(fā)固定比例的潛在客戶(hù)人群進(jìn)展購(gòu)置。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle1-Simplemodel.alp.考慮口碑的影響在當(dāng)前模型中,人們購(gòu)置產(chǎn)品的緣由只是由于受到廣告的影響。實(shí)際上,廣告效應(yīng)只有在該產(chǎn)品剛剛投放到市場(chǎng)時(shí)才起主要作用。隨時(shí)間推移,人們購(gòu)置產(chǎn)品的緣由更多是由于受到已經(jīng)購(gòu)置此產(chǎn)品的熟人的影響。為考慮口碑的影響,我們應(yīng)略微修改我們的模型。修改狀態(tài)圖Projectadoptionadoption狀態(tài)圖。向AdopterTransition狀態(tài)的任一邊。
工具條按鈕,然后點(diǎn)擊Adopter將此轉(zhuǎn)變?cè)O(shè)置為發(fā)生于指定的延時(shí)之后。此轉(zhuǎn)變模擬一個(gè)人如何說(shuō)服其熟人來(lái)購(gòu)置該產(chǎn)品率。指定轉(zhuǎn)變的行為n:發(fā)生。信號(hào)大事通過(guò)調(diào)用狀態(tài)圖的信號(hào)大事通過(guò)調(diào)用狀態(tài)圖的fireEvent函數(shù)來(lái)產(chǎn)生;你可以在類(lèi)參考手冊(cè)的StatechartBase類(lèi)頁(yè)面中找到對(duì)這個(gè)方法的描述。PotentialAdopterAdopter狀態(tài)的轉(zhuǎn)變。這一轉(zhuǎn)變模擬了由于口碑影響而帶來(lái)的產(chǎn)品購(gòu)置。當(dāng)信號(hào)大事發(fā)生后這一轉(zhuǎn)變也將發(fā)生。e組合框中選擇fsignalt然后指定l的類(lèi)型。點(diǎn)擊Run工具條按鈕以開(kāi)頭運(yùn)行模型。你將看到如以以下圖表:你可以看到一條經(jīng)典的S形集中曲線——這一過(guò)程與傳染病集中過(guò)程類(lèi)似。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle2-Wordofmouth.alp.參與產(chǎn)品消耗規(guī)律此產(chǎn)品的重復(fù)購(gòu)置。我們將通過(guò)假定客戶(hù)在其購(gòu)置的第一件產(chǎn)品被丟棄或消耗之后變?yōu)闈撛诳蛻?hù)來(lái)建模重復(fù)購(gòu)置行為。首先,我們定義平均產(chǎn)品壽命時(shí)間。定義產(chǎn)品的平均壽命時(shí)間ProjectMainMain類(lèi)圖。Discard_Time參數(shù)。假定我們的產(chǎn)品的平均活潑使用時(shí)間為1年。將此參數(shù)設(shè)置為全局。修改狀態(tài)圖Projectadoptionadoption狀態(tài)圖。AdopterPotentialAdopter狀態(tài)的轉(zhuǎn)變。設(shè)置此轉(zhuǎn)變的如下屬性:這樣我們就完成了替代產(chǎn)品購(gòu)置的建模。點(diǎn)擊Run后爭(zhēng)論圖中的產(chǎn)品集中過(guò)程。
工具條按鈕以開(kāi)頭運(yùn)行模型,然你可以看到在此模型中未到達(dá)市場(chǎng)飽和。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle3-Replacementpurchases.alp.創(chuàng)立空間模型現(xiàn)在我們期望將我們的模型擴(kuò)展到空間,在模型空間中定義人的地點(diǎn)。定義人的地點(diǎn)ProjectPersonPerson類(lèi)圖。創(chuàng)立實(shí)數(shù)類(lèi)型〔real〕xy。為這兩個(gè)參數(shù)設(shè)置一樣的起始值。uniform0300之間的隨機(jī)位置。創(chuàng)立函數(shù)以計(jì)算人們之間的距離在Project窗口,右鍵點(diǎn)擊Person工程,然后從彈出菜單中選擇NewMathematicalFunction。Properties窗口中,將函數(shù)類(lèi)型〔Functiontype〕real。定義參數(shù),以將另一個(gè)人的位置坐標(biāo)傳遞給此函數(shù)。指定函數(shù)表達(dá)式。函數(shù)函數(shù)sqrt是AnyLogicTM預(yù)定義的函數(shù)。AnyLogicTM供給了一系列常用函數(shù)如sin,cos,exp等,你可以在你的表達(dá)式中使用這些函數(shù)。在輸入表達(dá)式時(shí),你可以使用函數(shù)向?qū)А瞡d,在此向?qū)е腥款A(yù)定義函數(shù)和變量都列出供選擇。為翻開(kāi)函數(shù)向?qū)Вc(diǎn)擊表達(dá)式〔Expression〕框中你期望插入函數(shù)名稱(chēng)的位置,然后點(diǎn)擊FunctionWizard按鈕。滾動(dòng)向?qū)Я斜恚业侥闼璧暮瘮?shù)名稱(chēng),然后雙擊它。為了解關(guān)于函數(shù)及其參數(shù)的細(xì)節(jié)描述,請(qǐng)參考用戶(hù)手冊(cè)和類(lèi)參考手冊(cè)〔為了解關(guān)于函數(shù)及其參數(shù)的細(xì)節(jié)描述,請(qǐng)參考用戶(hù)手冊(cè)和類(lèi)參考手冊(cè)〔查看Func類(lèi)頁(yè)面。修改狀態(tài)圖Projectadoptionadoption狀態(tài)圖。點(diǎn)擊r狀態(tài)的內(nèi)部轉(zhuǎn)變,然后轉(zhuǎn)變此轉(zhuǎn)變的行為?,F(xiàn)在人們將只與其鄰居發(fā)生聯(lián)系。開(kāi)頭運(yùn)行模型,測(cè)試其行為。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle4-Spatialmodel.alp.創(chuàng)立動(dòng)畫(huà)AnyLogicTM允許創(chuàng)立可以在模型仿真過(guò)程中轉(zhuǎn)變參數(shù)的可交互動(dòng)畫(huà)。首先,創(chuàng)立驅(qū)動(dòng)我們的主體所需的變量。創(chuàng)立變量ProjectPersonPerson類(lèi)圖。colorColor。ColorJavaTM類(lèi),它包含了預(yù)定義的顏色如黑色,白色,青色,紫紅色,紅色,等等;這個(gè)類(lèi)也允許你創(chuàng)立自定義顏色。這一變量將定義動(dòng)畫(huà)中的主體外形顏色。AnyLogicTM動(dòng)畫(huà)使用動(dòng)畫(huà)圖表繪制。創(chuàng)立一個(gè)動(dòng)畫(huà)圖表1. ProjectMain工程,然后從彈出菜單中選擇NewAnimation…在翻開(kāi)的對(duì)話框中,為模型動(dòng)畫(huà)輸入一個(gè)名稱(chēng):Animation。動(dòng)畫(huà)編輯器〔animationeditor〕窗口將自動(dòng)翻開(kāi)。動(dòng)畫(huà)圖表中的點(diǎn)狀框指示了動(dòng)畫(huà)畫(huà)框區(qū)域。只在此畫(huà)框中繪制動(dòng)畫(huà)。動(dòng)畫(huà)圖表中的點(diǎn)狀框指示了動(dòng)畫(huà)畫(huà)框區(qū)域。只在此畫(huà)框中繪制動(dòng)畫(huà)。為查看預(yù)定義的顏色列表以及Color 類(lèi)供給允許你自定義顏色的方法,請(qǐng)翻開(kāi)“://java.sun/j2se/1.4.2/docs/api/java/awt/Color.html或查看你本地安裝的“://java.sun/j2se/1.4.2/docs/api/java/awt/Color.html或查看你本地安裝的javaTM文檔。編輯動(dòng)畫(huà)畫(huà)框. 移動(dòng)畫(huà)框,使其坐標(biāo)為-20,-2,然后轉(zhuǎn)變其大小為,。你可以通過(guò)轉(zhuǎn)變畫(huà)框的你可以通過(guò)轉(zhuǎn)變畫(huà)框的X,Y,Height,Weight屬性,或拖動(dòng)圖形手柄〔鼠標(biāo)光標(biāo)位置顯示于狀態(tài)條上〕來(lái)移動(dòng)任一動(dòng)畫(huà)畫(huà)框和轉(zhuǎn)變其大小?,F(xiàn)在我們將繪制如以以下圖所示的動(dòng)畫(huà)。我們期望在動(dòng)畫(huà)中顯示我們所在區(qū)域的居民。我們將用不同顏色的點(diǎn)顯示產(chǎn)品現(xiàn)有客戶(hù)和潛在客戶(hù)。拖動(dòng)exploredarea動(dòng)畫(huà)的限制框點(diǎn)擊Rectangle 工具條按鈕。在圖中點(diǎn)擊-10,-1〕點(diǎn),然后按下鼠標(biāo)鍵,移動(dòng)鼠標(biāo)到,0圖中的實(shí)心矩形相像。現(xiàn)在繪制一個(gè)形體,例如小矩形,以標(biāo)明動(dòng)畫(huà)中有一個(gè)主體。繪制主體點(diǎn)擊Rectangle工具條按鈕。在屬性窗口中,指定此矩形的名稱(chēng)。設(shè)置此矩形的大小。指定此圖形的數(shù)目。我們需要為每個(gè)主體都繪制一個(gè)矩形。為此我們調(diào)用我們需要為每個(gè)主體都繪制一個(gè)矩形。為此我們調(diào)用size函數(shù),以返回多重people所含有的元素?cái)?shù)目——即是我們模型中的主體數(shù)目。在動(dòng)畫(huà)中定義形體位置。依據(jù)其依據(jù)其x和y變量的值,對(duì)每一個(gè)主體分別定義其動(dòng)畫(huà)形體的坐標(biāo)。主體也agentObject.item(index)agentObject是建模主體的對(duì)象名稱(chēng)。使用如下表達(dá)式定義形體的顏色。這一表達(dá)式檢測(cè)一個(gè)人是否為顧客〔即檢測(cè)isAdopter參數(shù)值。客戶(hù)將用藍(lán)色點(diǎn)表示,潛在客戶(hù)用灰色點(diǎn)表示?,F(xiàn)在我們向動(dòng)畫(huà)中參與一些標(biāo)記,以爭(zhēng)論多少人已經(jīng)購(gòu)置了我們的產(chǎn)品。參與潛在客戶(hù)標(biāo)記點(diǎn)擊BarIndicator工具條按鈕。在區(qū)域的限制框中點(diǎn)擊正確位置,以將標(biāo)記放置于動(dòng)畫(huà)中。PropertiesGeneral頁(yè)面中,輸入標(biāo)記的大小:PropertiesBarIndicator頁(yè)面,選擇你期望用這個(gè)標(biāo)記標(biāo)明的變量。設(shè)置最大顯示值Maxvalu,轉(zhuǎn)變數(shù)值顏色ecolo,并去除wscale選框。參與客戶(hù)標(biāo)志右鍵點(diǎn)擊繪制的標(biāo)記,從彈出菜單中選擇Copy。右鍵點(diǎn)擊圖表,從彈出菜單中選擇Paste。的標(biāo)記即消滅于圖中。將此標(biāo)記放置于潛在用戶(hù)標(biāo)記的右邊。Valuecolor。向標(biāo)記參與描述標(biāo)簽點(diǎn)擊Text工具條按鈕。點(diǎn)擊左邊的標(biāo)登記方,將標(biāo)簽放置于圖中。PropertiesTextText編輯框PotentialAdopters。轉(zhuǎn)變文字字體。在Font局部,點(diǎn)擊Choose按鈕,在彈出的對(duì)話框中設(shè)置字體為T(mén)imesNewRoman8號(hào)。Adopters放置于右邊的標(biāo)登記方?,F(xiàn)在我們將通過(guò)參與轉(zhuǎn)變產(chǎn)品的平均壽命時(shí)間的控件,使動(dòng)畫(huà)變得可交互。參與控件點(diǎn)擊Slider工具條按鈕。點(diǎn)擊圖中的標(biāo)記,將滑塊放置于圖中。PropertiesGeneral頁(yè)面中,輸入控件的大?。篜ropertiesSlider頁(yè)面,選擇需要把握的變量。指定最小和最大值。在動(dòng)畫(huà)中放置三個(gè)標(biāo)簽:DiscardTime——放置于滑塊下方;0.5——放置于滑塊左邊緣四周;2.5——放置于滑塊右邊緣四周?,F(xiàn)在我們期望爭(zhēng)論一個(gè)較長(zhǎng)時(shí)間段內(nèi)的集中過(guò)程,因此將模型設(shè)置為無(wú)限期工作。移除模型停頓條件ProjectSimulation試驗(yàn)工程。PropertiesAdditionalStopattime選框。這樣我們就完成了創(chuàng)立動(dòng)畫(huà)?,F(xiàn)在你可以通過(guò)點(diǎn)擊Run你可以看到如以以下圖所示的動(dòng)畫(huà)。
工具條按鈕以開(kāi)頭運(yùn)行模型。為增加動(dòng)畫(huà)速度,請(qǐng)關(guān)閉其他窗口:繪圖窗口和根模型對(duì)象窗口。為在運(yùn)行時(shí)獲得更好的圖像,你可以翻開(kāi)抗鋸齒〔為在運(yùn)行時(shí)獲得更好的圖像,你可以翻開(kāi)抗鋸齒〔anti-aliasing〕模式,該模式默認(rèn)狀況下被關(guān)閉以加快模型執(zhí)行速度。翻開(kāi)抗鋸齒〔anti-aliasing〕點(diǎn)擊AnimationSettings選項(xiàng)。
工具條按鈕。在消滅的對(duì)話框中,選擇Enableanti-aliasing為調(diào)整執(zhí)行速度,使用工具條上的Decreasemodelspeed 按鈕和Increasemodelspeed按鈕。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle5-Animation.alp.擴(kuò)展的產(chǎn)品生命周期模型本章我們通過(guò)考慮細(xì)節(jié)信息和向你介紹一些AnyLogic的高級(jí)特性來(lái)擴(kuò)展我們的模型。廣告活動(dòng)至此,廣告對(duì)我們的模型的影響被認(rèn)為是恒定的。實(shí)際上,商家都會(huì)周期性地進(jìn)展廣告活動(dòng)以促進(jìn)在特定地區(qū)的產(chǎn)品銷(xiāo)售。我們期望在我們的模型中考慮這個(gè)因素。創(chuàng)立變量在Project窗口中雙擊Main工程,翻開(kāi)Main類(lèi)圖。,類(lèi)型為實(shí)數(shù)rea。,類(lèi)型為實(shí)數(shù)rea。,類(lèi)型為實(shí)數(shù)rea。設(shè)置起始值為:-。,類(lèi)型為實(shí)數(shù)rea。設(shè)置起始值為:。我們需要使用變量adTime以記載上次廣告活動(dòng)進(jìn)展的時(shí)間,用變量adX和adY記載上次促銷(xiāo)區(qū)域中心的坐標(biāo)位置,用變量adRange記載該區(qū)域的半徑。于大事規(guī)劃。創(chuàng)立定時(shí)器在Project窗口中雙擊Main工程,翻開(kāi)Main類(lèi)圖。點(diǎn)擊Timer工具條按鈕,然后點(diǎn)擊類(lèi)圖。命名此定時(shí)器為adTimer。我們需要一個(gè)周期重復(fù)計(jì)時(shí)的定時(shí)器,因此選擇Cyclic選項(xiàng)。定義定時(shí)器的定時(shí)值。定義定時(shí)器的到時(shí)行為?!仓付ò霃降膱A之內(nèi)模擬其購(gòu)置產(chǎn)品活動(dòng)的轉(zhuǎn)變發(fā)生。由于現(xiàn)在購(gòu)置產(chǎn)品使用定時(shí)器建模,我們應(yīng)移除用于模擬由廣告引起的產(chǎn)品購(gòu)置的狀態(tài)圖轉(zhuǎn)變。修改狀態(tài)圖在Project窗口中雙擊adoption工程,翻開(kāi)adoption狀態(tài)圖。點(diǎn)擊從PotentialAdopter狀態(tài)到Adopter狀態(tài)的轉(zhuǎn)變〔即定時(shí)值為exponential(adEffect)的轉(zhuǎn)變鍵將其刪除?,F(xiàn)在我們應(yīng)對(duì)動(dòng)畫(huà)進(jìn)展一些細(xì)小改動(dòng)。我們期望使用淡紫色圓標(biāo)明促銷(xiāo)區(qū)域。繪制圓在Project窗口中雙擊animation工程,翻開(kāi)動(dòng)畫(huà)圖。點(diǎn)擊Oval工具條按鈕,然后點(diǎn)擊animation圖。設(shè)置如下外形屬性。圓形位置用adX和adY之后的0.2個(gè)單位模型時(shí)間內(nèi),此圓形才可見(jiàn)。點(diǎn)擊Properties窗口的Oval選項(xiàng)卡,然后定義此圓的半徑為前述定義的adRange變量。點(diǎn)擊Run工具條按鈕以開(kāi)頭運(yùn)行模型。此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\ProductLifeCycle6-Advertisingcampaigns.alp.多產(chǎn)品集中上述建立的模型只爭(zhēng)論了單個(gè)產(chǎn)品的集中狀況?,F(xiàn)在我們期望改進(jìn)我們的模型,使之能夠同時(shí)爭(zhēng)論兩個(gè)不同產(chǎn)品的集中狀況。首先,創(chuàng)立一個(gè)變量用于定義當(dāng)前被廣告的產(chǎn)品類(lèi)型。創(chuàng)立附加參數(shù)在Project窗口中雙擊Main工程,翻開(kāi)Main類(lèi)圖。創(chuàng)立參數(shù)adColor,類(lèi)型為Color?,F(xiàn)在我們應(yīng)對(duì)動(dòng)畫(huà)進(jìn)展一些細(xì)小改動(dòng)。我們期望用顏色區(qū)分不同產(chǎn)品,將一件產(chǎn)品的客戶(hù)標(biāo)記為藍(lán)色點(diǎn),另一件產(chǎn)品的客戶(hù)標(biāo)記為紅色點(diǎn)。促銷(xiāo)區(qū)域頁(yè)將使用該被廣告的產(chǎn)品的顏色標(biāo)記。修改動(dòng)畫(huà)在Project窗口中雙擊animation工程,翻開(kāi)animation圖。〔FillColr為adColor。修改主體的動(dòng)畫(huà)外形。在動(dòng)畫(huà)圖中點(diǎn)擊agentShapeFillcolor屬性中,輸入people.item(index).color——假設(shè)一個(gè)人是潛在客戶(hù),則為灰色;假設(shè)他是某個(gè)產(chǎn)品的客戶(hù),則為紅色或藍(lán)色?,F(xiàn)在我們應(yīng)修改模擬廣告活動(dòng)的定時(shí)器的到時(shí)行為。修改定時(shí)器的到時(shí)行為在Project窗口中雙擊Main工程,翻開(kāi)Main類(lèi)圖。點(diǎn)擊構(gòu)造圖中的adTimer圖標(biāo)。修改定時(shí)器的到時(shí)行為。參與如下黑體所示的代碼行。adX=uniform(adRange,300-adRange);adY=uniform(adRange,300-adRange);adTime=getTime;adColor=uniform>0.5?Color.blue:Color.red;for(inti=0;i<people.size;i++){Personp=people.item(i);if(p.distance(adX,adY)<adRange)p.adoption.fireEvent(adColor);}我們的兩個(gè)產(chǎn)品都將以一樣時(shí)間間隔進(jìn)展促銷(xiāo)。修改狀態(tài)圖在Project窗口中雙擊adoption工程,翻開(kāi)adoption狀態(tài)圖。繪制如下的狀態(tài)圖。參與一個(gè)復(fù)合狀態(tài),此狀態(tài)包括狀態(tài)圖中的兩個(gè)現(xiàn)有狀態(tài)。將此狀態(tài)設(shè)置為初始。參與一個(gè)初始狀態(tài)指針,并將其指向此狀態(tài)。點(diǎn)擊初始狀態(tài)指針〔le
工具條按鈕,然后在圖中點(diǎn)擊此狀態(tài)上方一點(diǎn)點(diǎn),然后點(diǎn)擊此狀態(tài)的邊界。刪除從PotentialAdopter狀態(tài)到Adopter狀態(tài)的轉(zhuǎn)變。修改Adopter狀態(tài)內(nèi)部轉(zhuǎn)變的行為。輸入p.adoption.fireEvent(color); 替換掉p.adoption.fireEvent(“buy”);參與一個(gè)從復(fù)合狀態(tài)到Adopter狀態(tài)的轉(zhuǎn)變。設(shè)置此轉(zhuǎn)變的如下屬性:點(diǎn)擊以選擇PotentialAdopter狀態(tài)。向該狀態(tài)的進(jìn)入行為〔Entryaction〕中參與代碼行:color=Color.lightGray;點(diǎn)擊Run況。
工具條按鈕以開(kāi)頭運(yùn)行模型。上述建立的模型爭(zhēng)論了兩個(gè)不同產(chǎn)品的集中情此處可用的參考模型在Examples\AgentBasedModelingTutorialModels \ProductLifeCycle7-Multipleproducts.alp.人群移動(dòng)在當(dāng)前模型中,人都固定于預(yù)先定義的地點(diǎn)。然而,我們期望使我們的模型更為真實(shí),即使人能夠在該區(qū)域中四處移動(dòng)。創(chuàng)立附加參數(shù)在Project窗口中雙擊Person工程,翻開(kāi)Person類(lèi)圖。和,類(lèi)型為實(shí)數(shù)rea。對(duì)這兩個(gè)參數(shù),指定一樣的起始值:,類(lèi)型為實(shí)數(shù)rea。指定如下的起始值:我們將使用定時(shí)器來(lái)建模人的移動(dòng)。創(chuàng)立定時(shí)器在Project窗口中雙擊Person工程,翻開(kāi)Person類(lèi)圖。點(diǎn)擊Timer工具條按鈕,然后點(diǎn)擊類(lèi)圖。命名此計(jì)時(shí)器為moveTimer。我們需要一個(gè)周期重復(fù)計(jì)時(shí)的定時(shí)器,因此選擇Cyclic選項(xiàng)。定義定時(shí)器的定時(shí)值。定義定時(shí)器的到時(shí)行為。在定時(shí)器到時(shí)時(shí),當(dāng)前的模型時(shí)間,通過(guò)函數(shù)getTime返回,即被存儲(chǔ)于變量tmoved中。變量oldx和oldy存儲(chǔ)了當(dāng)前主體的坐標(biāo)x和y0到300150。定義函數(shù)以平滑移動(dòng)動(dòng)畫(huà)。在Project窗口,右鍵點(diǎn)擊Person工程,然后從彈出菜單中選擇NewAlgorithmicFunction。定義函數(shù)體:同樣方法定義算法函數(shù)animationY?,F(xiàn)在我們需要對(duì)動(dòng)畫(huà)作出一些修改。修改主體的動(dòng)畫(huà)外形。在Project窗口中雙擊animation工程,翻開(kāi)動(dòng)畫(huà)圖。點(diǎn)擊動(dòng)畫(huà)圖中的agentShape矩形,設(shè)定如下屬性:Run觀看人們?cè)趫D中區(qū)域內(nèi)走動(dòng)。
此處可用的參考模型在Examples\AgentBasedModelingTutorialModels\Pr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境電商平臺(tái)100%股權(quán)出讓協(xié)議3篇
- 2024某書(shū)法家與某拍賣(mài)行之間關(guān)于書(shū)法作品拍賣(mài)之合作協(xié)議
- 廣西桂林市2025年中考語(yǔ)文模擬試題三套【附參考答案】
- 18書(shū)湖陰先生壁 說(shuō)課稿-2024-2025學(xué)年六年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 2024年運(yùn)動(dòng)場(chǎng)地使用權(quán)轉(zhuǎn)讓合同
- 16《朱德扁擔(dān)》第一課時(shí) 說(shuō)課稿-2024-2025學(xué)年語(yǔ)文二年級(jí)上冊(cè)統(tǒng)編版
- 2024文化墻環(huán)保材料供應(yīng)及安裝一體化工程合同3篇
- 2024年通信行業(yè)保密合同精簡(jiǎn)版范文版
- 2024浴池租賃合同-溫泉度假村合作管理服務(wù)協(xié)議3篇
- 2024某電商平臺(tái)與某物流公司關(guān)于2024年物流服務(wù)合同
- 小學(xué)語(yǔ)文作業(yè)分層設(shè)計(jì)分析
- 讀者文章匯總 讀者文摘100篇
- 現(xiàn)代文閱讀之散文
- 山東省濟(jì)南市高職單招2022-2023學(xué)年醫(yī)學(xué)綜合真題及答案
- 配色技術(shù)員工作計(jì)劃工作總結(jié)述職報(bào)告PPT模板下載
- 挖掘機(jī)、裝載機(jī)檢驗(yàn)報(bào)告完整
- 小學(xué)科學(xué)三年級(jí)上冊(cè)期末考試質(zhì)量分析
- 從業(yè)人員在安全生產(chǎn)方面的權(quán)利和義務(wù)
- Architecture-古希臘古羅馬建筑英文版
- 一年級(jí)語(yǔ)文教學(xué)工作總結(jié)優(yōu)秀4篇
- YY 0286.1-2019專(zhuān)用輸液器第1部分:一次性使用微孔過(guò)濾輸液器
評(píng)論
0/150
提交評(píng)論