国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Multi-Agent的股票市場(chǎng)分布式仿真方法

      文檔序號(hào):6549482閱讀:236來(lái)源:國(guó)知局
      基于Multi-Agent的股票市場(chǎng)分布式仿真方法
      【專利摘要】本發(fā)明涉及分布式仿真技術(shù),為提供一種分布式環(huán)境中基于Multi-Agent思想的股票市場(chǎng)仿真方法,仿真方法中包括仿真方法模塊組成、仿真調(diào)度和同步策略、仿真通信策略、交易中心運(yùn)行邏輯以及主體Agent運(yùn)行邏輯。該方法專用于股票市場(chǎng)仿真,具有易用性、高并發(fā)性、運(yùn)行穩(wěn)定性。本發(fā)明采取的技術(shù)方案是,基于Multi-Agent的股票市場(chǎng)分布式仿真方法,包括交易中心、消息分發(fā)中心、主體Agent;交易中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),消息分發(fā)中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),Agent均勻部署在剩余節(jié)點(diǎn)。本發(fā)明主要應(yīng)用于分布式仿真。
      【專利說(shuō)明】基于Mult1-Agent的股票市場(chǎng)分布式仿真方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及分布式仿真技術(shù),具體講,涉及基于Mult1-Agent (多主體)的股票市場(chǎng)分布式仿真方法。
      技術(shù)背景
      [0002]隨著SF1-ASM的問(wèn)世以及復(fù)雜系統(tǒng)理論的發(fā)展,行為經(jīng)濟(jì)學(xué)成為研究經(jīng)濟(jì)和金融問(wèn)題的一種新型手段,行為金融學(xué)依賴于計(jì)算機(jī)仿真,需要計(jì)算機(jī)仿真方法的支持,SF1-ASM,全稱為 The Santa Fe Institute Artificial Stock Market,是一個(gè)被公認(rèn)的多主體仿真平臺(tái),由圣達(dá)菲研究所開(kāi)發(fā)維護(hù)的人工股票市場(chǎng),采用了 Mult1-Agent的思想仿真復(fù)雜適應(yīng)系統(tǒng),SF1-ASM之后又出現(xiàn)了如SWARM、Repast, MASON、Ascape、StarLogo等復(fù)雜系統(tǒng)仿真平臺(tái),SWARM是由圣達(dá)菲研究所開(kāi)發(fā)維護(hù)的另一個(gè)人工股票市場(chǎng),使用Object-c編寫(xiě),Repast是一個(gè)開(kāi)源的復(fù)雜系統(tǒng)仿真平臺(tái),MASON的全稱是Mult1-Agent Simulator OfNeighborhoods,由美國(guó)喬治梅森大學(xué)的演化計(jì)算實(shí)驗(yàn)室和喬治梅森大學(xué)的社會(huì)復(fù)雜性研究中心共同開(kāi)發(fā)和維護(hù)的多主體仿真平臺(tái),Ascape是用于開(kāi)發(fā)和分析主體仿真模型的開(kāi)源軟件框架,StarLogo是由麻省理工學(xué)院的媒體實(shí)驗(yàn)室和教育工程共同維護(hù)開(kāi)發(fā)的多主體仿真平臺(tái)。這些平臺(tái)所采用的仿真方法大抵都是基于Mult1-Agent思想,不同之處在于其架構(gòu)不同,Agent調(diào)度方法不同,Agent之間的關(guān)系定義不同,Π設(shè)計(jì)不同,相同之處在于他們都運(yùn)行在單機(jī)上,并且適用于一般性的復(fù)雜系統(tǒng),系統(tǒng)中沒(méi)有明顯的交易中心模塊,由于它們的通用性,金融研究者在使用的時(shí)候需要進(jìn)行大量的編碼才能使用這些通用的復(fù)雜系統(tǒng)仿真平臺(tái)改造成適用于金融市場(chǎng)的仿真平臺(tái),其次,隨著仿真規(guī)模的增大,單機(jī)平臺(tái)的仿真時(shí)間很長(zhǎng),而且,在單機(jī)上仿真時(shí),不能真實(shí)模擬出現(xiàn)實(shí)社會(huì)中投資者之間的完全并發(fā)關(guān)系,于是,金融研究者開(kāi)始尋求分布式金融系統(tǒng)仿真平臺(tái)?,F(xiàn)階段分布式復(fù)雜系統(tǒng)仿真平臺(tái)屈指可數(shù),主要有R印astHPC、D-MASON、ATOM等,其中ItepastHPC和D-MASON分別是Repast和MASON的集群版本,RepastHPC的仿真方法是對(duì)Itepast的仿真方法的擴(kuò)展,即在原本的仿真方法中加入了集群通信以及集群節(jié)點(diǎn)之間的同步策略,在Agent的調(diào)度時(shí),以節(jié)點(diǎn)為單位進(jìn)行調(diào)度,節(jié)點(diǎn)內(nèi)部的調(diào)度策略采用的是與Repast相同的方法,節(jié)點(diǎn)之間的通信采用的是MPI,即消息傳遞接口。D-MASON在節(jié)點(diǎn)內(nèi)部的調(diào)度、仿真等都與MASON無(wú)異,同R印astHPC—樣在節(jié)點(diǎn)之間加入了通信和同步,通信策略采用的是JMS協(xié)議,即Java消息服務(wù)。R印astHPC和D-MASON的問(wèn)題在于這兩中仿真方法都是一種通用型的復(fù)雜適應(yīng)系統(tǒng)仿真,股票市場(chǎng)同普通的復(fù)雜適應(yīng)系統(tǒng)的差別在于股票市場(chǎng)存在一個(gè)或者多個(gè)交易中心,其與普通Agent的功能、適應(yīng)性、通信壓力等差別較大,無(wú)法直接適用于股票市場(chǎng)。ATOM的全稱是ArTificial Open Market,是一個(gè)開(kāi)源的專用于股票市場(chǎng)的分布式仿真平臺(tái),ATOM中的分布式主要用于將一個(gè)Agent的計(jì)算開(kāi)銷以及交易中心的計(jì)算開(kāi)銷分布到多個(gè)節(jié)點(diǎn)上運(yùn)行,其仿真方法中避免使用多線程或多進(jìn)程實(shí)現(xiàn)Agent的并發(fā)運(yùn)行,Agent行為由主程序按公平方式輪詢執(zhí)行,這種方式受限于單機(jī)平臺(tái)中“Round”的概念,并沒(méi)有真正實(shí)現(xiàn)Agent之間的并發(fā)性。
      【發(fā)明內(nèi)容】

      [0003]為克服現(xiàn)有仿真技術(shù)的不足,本發(fā)明旨在提供一種分布式環(huán)境中基于Mult1-Agent思想的股票市場(chǎng)仿真方法,仿真方法中包括仿真方法模塊組成、仿真調(diào)度和同步策略、仿真通信策略、交易中心運(yùn)行邏輯以及主體Agent運(yùn)行邏輯。該方法專用于股票市場(chǎng)仿真,具有易用性、高并發(fā)性、運(yùn)行穩(wěn)定性。本發(fā)明采取的技術(shù)方案是,基于Mult1-Agent的股票市場(chǎng)分布式仿真方法,包括交易中心、消息分發(fā)中心、主體Agent ;交易中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),消息分發(fā)中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),Agent均勻部署在剩余節(jié)點(diǎn);
      [0004]所述Agent是具有適應(yīng)能力、學(xué)習(xí)能力、主動(dòng)性等特性的獨(dú)立個(gè)體;
      [0005]所述交易中心接收所有Agent提交的股票訂單,并對(duì)這些訂單做撮合處理,同時(shí)將訂單撮合結(jié)果以及市場(chǎng)行情告知Agent ;Agent通過(guò)向交易中心提交訂單或者發(fā)送消息而影響交易中心的市場(chǎng)行情;所述交易中心還需要維護(hù)A-N表,以及控制輪次(Round)同
      I K
      少;
      [0006]所述消息分發(fā)中心用于轉(zhuǎn)發(fā)計(jì)算機(jī)節(jié)點(diǎn)之間的通信消息。
      [0007]所述Agent和Agent之間以及Agent和交易中心的交互采用集中式,并且所有的通信都是異步的;所述Agent部署在不同的節(jié)點(diǎn)之上,每一個(gè)用于部署Agent的節(jié)點(diǎn)都有
      一個(gè)控制線程-控制器(Controller) ,Controller需要負(fù)責(zé)調(diào)度Agent的運(yùn)行以及控制
      Agent之間的信息傳輸,同時(shí)每個(gè)節(jié)點(diǎn)上的Controller都需要存儲(chǔ)一份Agent和節(jié)點(diǎn)之間的對(duì)應(yīng)表,簡(jiǎn)稱:A-N表,A-N表用于記錄每個(gè)Agent被部署在哪個(gè)節(jié)點(diǎn)上,并且不同節(jié)點(diǎn)上的A-N表需要保證實(shí)時(shí)一致性,由所有節(jié)點(diǎn)上的Controller負(fù)責(zé)同步A-N表;
      [0008]所述Agent都是一個(gè)單獨(dú)的線程獨(dú)立運(yùn)行,所述Agent的調(diào)度是指Agent線程的調(diào)度,所有的Agent都受到其所在節(jié)點(diǎn)上的Controller的調(diào)度;每個(gè)節(jié)點(diǎn)上的Controller維持一個(gè)線程池;所述的調(diào)度共分兩種情形可供用戶選擇,一種調(diào)度策略是所有Agent按步運(yùn)行,此處的“步”稱為Round,—個(gè)或者多個(gè)Round組成一個(gè)時(shí)間段(Tick),記一個(gè)Tick中共有X個(gè)Round,X為一個(gè)定制的參數(shù),Agent在運(yùn)行結(jié)束第X個(gè)Round之后,需要阻塞等待其他Agent的第X個(gè)Round結(jié)束,即Agent之間的Round應(yīng)該同步;Agent的Round同步,需要保證I):每個(gè)節(jié)點(diǎn)運(yùn)行的Round—致;2)節(jié)點(diǎn)內(nèi)部所有Agent運(yùn)行的Round—致;仿真過(guò)程的全局Round由交易中心節(jié)點(diǎn)記錄和維護(hù),每個(gè)節(jié)點(diǎn)所有的Agent運(yùn)行完第X個(gè)Round之后,由Controller線程通知交易中心節(jié)點(diǎn),并且此節(jié)點(diǎn)阻塞,當(dāng)所有節(jié)點(diǎn)的Controller都運(yùn)行完X個(gè)Round之后,仿真進(jìn)入下一個(gè)運(yùn)行周期。
      [0009]所述交易中心的作用是對(duì)所有接收到的訂單進(jìn)行撮合處理,交易中心接收來(lái)自Agent的訂單消息,根據(jù)撮合機(jī)制對(duì)訂單進(jìn)行撮合處理,如果買(mǎi)或者賣訂單隊(duì)列中沒(méi)有能夠與其匹配的訂單,則依據(jù)撮合機(jī)制將訂單插入買(mǎi)或者賣訂單隊(duì)列;如果撮合成功,則根據(jù)買(mǎi)賣訂單的Agent ID將撮合價(jià)格、撮合數(shù)量、撮合時(shí)間等信息發(fā)送給相應(yīng)的Agent。
      [0010]與已有技術(shù)相比,本發(fā)明的技術(shù)特點(diǎn)與效果:
      [0011]本發(fā)明與現(xiàn)有仿真技術(shù)相比,是一個(gè)專用于股票市場(chǎng)的仿真方法,對(duì)于金融研究人員而言具有易用性;同時(shí)具有獨(dú)立的交易中心模塊,能夠承受大量Agent的并發(fā)訪問(wèn);仿真方法的調(diào)度和同步策略以Tick為同步單位,以Round為運(yùn)行單位,仿真粒度較細(xì),適用于更一般的仿真需求;仿真的通信策略具有異步性,仿真中的消息傳遞無(wú)需阻塞,與現(xiàn)實(shí)社會(huì)更相符,同時(shí)在一定程度上減少了系統(tǒng)仿真時(shí)間;結(jié)點(diǎn)內(nèi)部線程池的使用,使得節(jié)點(diǎn)負(fù)載減小。
      【專利附圖】

      【附圖說(shuō)明】
      [0012]圖1模塊和部署圖。
      [0013]圖2通信結(jié)構(gòu)圖。
      [0014]圖3節(jié)點(diǎn)內(nèi)部Agent的通信過(guò)程。
      [0015]圖4節(jié)點(diǎn)之間Agent的通信過(guò)程。
      [0016]圖5從Agent到交易中心的通信過(guò)程。
      [0017]圖6從交易中心到Agent的通信過(guò)程。
      [0018]圖7交易中心運(yùn)行邏輯圖。
      [0019]圖8Agent運(yùn)行邏輯圖。
      【具體實(shí)施方式】
      [0020]本發(fā)明提出的分布式股票市場(chǎng)仿真方法,基于Mult1-Agent建模,包括交易中心、異步消息分發(fā)中心和Agent三大模塊,通過(guò)Agent和Agent之間、Agent和交易中心之間的相互通信和相互作用仿真股票市場(chǎng),其中涉及到了 Agent的調(diào)度方法,Agent之間以及Agent和交易中心的同步方法,分布式系統(tǒng)中Agent之間的通信方法。
      [0021 ] 所述仿真方法可分為三大模塊——Agent、交易中心、消息分發(fā)中心。
      [0022]所述Agent是具有適應(yīng)能力、學(xué)習(xí)能力、主動(dòng)性等特性的獨(dú)立個(gè)體,Agent能夠在不斷的與環(huán)境的交互作用和學(xué)習(xí)中變得智能化,所述Agent具有自治性、社會(huì)能力和反應(yīng)能力。所述自治性是指Agent在運(yùn)行時(shí)不直接由人或者第三方控制,它對(duì)自己的行為和內(nèi)部狀態(tài)有一定的控制權(quán);所述社會(huì)能力即通信能力,即Agent能夠通過(guò)某種Agent通信語(yǔ)言或者通信方式,與其它Agent進(jìn)行信息交換;所述反應(yīng)能力,是指Agent對(duì)環(huán)境具有感知能力,并且能夠通過(guò)自己的行為對(duì)環(huán)境做出反應(yīng),股票市場(chǎng)中某一個(gè)Agent所在的環(huán)境是指交易中心和其他Agent組成的整體,Agent通過(guò)向其他Agent發(fā)送消息以及向交易中心提交訂單來(lái)影響環(huán)境。股票市場(chǎng)中,所有的投資者都可以看成是一個(gè)單獨(dú)的Agent,如果研究者希望在市場(chǎng)中添加券商、銀行等角色,這些也可以當(dāng)作Agent對(duì)待,不同的是這些不同類型的Agent的行為不同,自治性不同。
      [0023]所述交易中心相當(dāng)于現(xiàn)實(shí)股票市場(chǎng)中的交易所,交易中心需要接收所有Agent提交的股票訂單,并對(duì)這些訂單做撮合處理,同時(shí)將訂單撮合結(jié)果以及市場(chǎng)行情告知Agent。所述撮合機(jī)制包括常用的連續(xù)競(jìng)價(jià)撮合機(jī)制、集合競(jìng)價(jià)撮合機(jī)制、瓦爾拉斯雙向拍賣機(jī)制等,在實(shí)際仿真中采用哪種交易機(jī)制取決于仿真方法的使用者。所述交易中心相當(dāng)于所有Agent存在的環(huán)境,Agent通過(guò)向交易中心提交訂單或者發(fā)送消息而影響交易中心的市場(chǎng)行情。所述交易中心還需要維護(hù)A-N表,以及控制仿真過(guò)程的Round同步等。
      [0024]所述異步消息分發(fā)中心用于轉(zhuǎn)發(fā)計(jì)算機(jī)節(jié)點(diǎn)之間的通信消息?!爱惒健笔侵?消息的源線程將消息發(fā)送給異步消息分發(fā)中心之后不用阻塞等待消息的目標(biāo)線程接收,因?yàn)橄⒌脑淳€程無(wú)法預(yù)知目標(biāo)線程何時(shí)接收消息,異步消息分發(fā)中心能夠保證消息的可靠傳輸。[0025]所述仿真方法,在部署時(shí),交易中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),消息分發(fā)中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),Agent均勻部署在剩余節(jié)點(diǎn)。
      [0026]所述Agent和Agent之間以及Agent和交易中心的交互采用集中式,并且所有的通信都是異步的。所述Agent部署在不同的節(jié)點(diǎn)之上,每一個(gè)用于部署Agent的節(jié)點(diǎn)都有
      一個(gè)控制線程-ControIler, Controller需要負(fù)責(zé)調(diào)度Agent的運(yùn)行以及控制Agent之
      間的信息傳輸,同時(shí)每個(gè)節(jié)點(diǎn)上的Controller都需要存儲(chǔ)一份Agent和節(jié)點(diǎn)之間的對(duì)應(yīng)表(簡(jiǎn)稱:A-N表),A-N表用于記錄每個(gè)Agent被部署在哪個(gè)節(jié)點(diǎn)上,并且不同節(jié)點(diǎn)上的A-N表需要保證實(shí)時(shí)一致性,由所有節(jié)點(diǎn)上的Controller負(fù)責(zé)同步A-N表,交易中心節(jié)點(diǎn)沒(méi)有額外的Controller,交易中心自己就是一個(gè)Controller,消息分發(fā)中心節(jié)點(diǎn)無(wú)需保存A-N表,且不需要ContiOller。所述節(jié)點(diǎn)之間的消息通信都需要經(jīng)過(guò)分發(fā)中心進(jìn)行轉(zhuǎn)發(fā)。所述消息傳遞可分為三種狀況:同一個(gè)節(jié)點(diǎn)內(nèi)Agent之間的消息傳遞;不同的節(jié)點(diǎn)之間Agent的消息傳遞;Agent和交易中心的消息傳遞。對(duì)Agent而言,消息的格式為〈源Agent ID,消息內(nèi)容,目標(biāo)Agent ID>, Agent發(fā)出的所有消息都需要先轉(zhuǎn)發(fā)給Agent所在節(jié)點(diǎn)的Controller,然后Controller根據(jù)A-N表判斷源Agent和目標(biāo)Agent是否處于同一個(gè)節(jié)點(diǎn),若處于同一個(gè)節(jié)點(diǎn),ControIIer直接將消息轉(zhuǎn)發(fā)給目標(biāo)Agent,如果源Agent和目標(biāo)Agent不是處于同一個(gè)節(jié)點(diǎn),則Controller首先根據(jù)A-N表查找到目標(biāo)Agent所在的節(jié)點(diǎn)ID,接著將消息格式改變?yōu)椤丛垂?jié)點(diǎn)ID,源Agent ID,消息內(nèi)容,目標(biāo)Agent ID,目標(biāo)節(jié)點(diǎn)ID>,然后將消息轉(zhuǎn)發(fā)到消息分發(fā)中心,消息分發(fā)中心根據(jù)目標(biāo)節(jié)點(diǎn)ID轉(zhuǎn)發(fā)給相應(yīng)節(jié)點(diǎn)的Controller,再由目標(biāo)Controller轉(zhuǎn)發(fā)給目標(biāo)節(jié)點(diǎn)。Agent和交易中心之間的消息在添加源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)信息之后經(jīng)過(guò)消息分發(fā)中心轉(zhuǎn)發(fā)給目標(biāo)Agent或者交易中心。
      [0027]所述Agent和Agent之間的通信并不是無(wú)規(guī)則的、隨機(jī)的通信,所有的Agent組成一個(gè)通信網(wǎng)絡(luò),通信網(wǎng)絡(luò)在每個(gè)Agent節(jié)點(diǎn)都存儲(chǔ)一份,由每個(gè)節(jié)點(diǎn)上的Controller負(fù)責(zé)維護(hù)和保持同步和更新,以保證各個(gè)節(jié)點(diǎn)上的網(wǎng)絡(luò)實(shí)時(shí)一致性。所述通信網(wǎng)絡(luò)亦是一個(gè)社交網(wǎng)絡(luò),表現(xiàn)出Agent之間的社會(huì)關(guān)系,所述的網(wǎng)絡(luò)可以是規(guī)則網(wǎng)絡(luò)也可以是隨機(jī)網(wǎng)絡(luò)、小世界網(wǎng)絡(luò)、無(wú)標(biāo)度網(wǎng)絡(luò)或其他類型的復(fù)雜網(wǎng)絡(luò)。
      [0028]所述Agent都是一個(gè)單獨(dú)的線程獨(dú)立運(yùn)行,所述Agent的調(diào)度是指Agent線程的調(diào)度,所有的Agent都受到其所在節(jié)點(diǎn)上的Controller的調(diào)度。每個(gè)節(jié)點(diǎn)上的Controller維持一個(gè)線程池。所述的調(diào)度共分兩種情形可供用戶選擇,一種調(diào)度策略是所有Agent按步運(yùn)行,此處的“步”稱為Round,一個(gè)或者多個(gè)Round組成一個(gè)Tick,即一個(gè)Tick可以只有I個(gè)Round,也可以有多個(gè)Round,記一個(gè)Tick中共有X個(gè)Round,X為一個(gè)可以定制的參數(shù),Agent在運(yùn)行結(jié)束第X個(gè)Round之后,需要阻塞等待其他Agent的第X個(gè)Round結(jié)束,即Agent之間的Tick應(yīng)該同步。Agent的Tick同步,需要保證I):每個(gè)節(jié)點(diǎn)運(yùn)行的Tick 一致;2)節(jié)點(diǎn)內(nèi)部所有Agent運(yùn)行的Tick 一致。仿真過(guò)程的全局Tick由交易中心節(jié)點(diǎn)記錄和維護(hù),每個(gè)節(jié)點(diǎn)所有的Agent運(yùn)行完第X個(gè)Round之后,由ControIler線程通知交易中心節(jié)點(diǎn),并且此節(jié)點(diǎn)阻塞,當(dāng)所有節(jié)點(diǎn)的Controller都運(yùn)行完X個(gè)Round之后,仿真進(jìn)入下一個(gè)運(yùn)行Tick。Agent在一個(gè)Round中可能買(mǎi)賣或者撤單,可能依據(jù)網(wǎng)絡(luò)向其他Agent發(fā)送消息,亦可能不采取動(dòng)作,具體是否采取動(dòng)作可以由金融研究者根據(jù)金融模型定制。Round是Agent調(diào)度運(yùn)行的最小單元,Tick是Agent同步的最小單元,一個(gè)Tick中可以只有一個(gè)Round,亦可以有多個(gè)Round。另一種調(diào)度策略不需要保證Agent之間的Tick具有同步關(guān)系,每個(gè)Agent各自運(yùn)行自己的Tick,無(wú)需等待其他Agent,也無(wú)需Controller去同步Tick。
      [0029]為使本發(fā)明技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步詳細(xì)描述。
      [0030]一、部署
      [0031]參見(jiàn)圖1。仿真方法共分為三大部分,Agent、消息分發(fā)中心和交易中心,部署時(shí),交易中心和消息分發(fā)中心分別單獨(dú)部署在一個(gè)節(jié)點(diǎn),Agent均勻部署在剩余節(jié)點(diǎn),每一個(gè)Agent節(jié)點(diǎn)還需一個(gè)Controller線程。
      [0032]二、通信
      [0033]參見(jiàn)圖2、圖3、圖4、圖5和圖6。圖2描述的是整個(gè)仿真的通信結(jié)構(gòu),圖2中包括的元素有:Agent、Controller、社交網(wǎng)絡(luò)(即Network)、A_N表、異步消息分發(fā)中心、交易中心。其中,異步消息分發(fā)中心和交易中心分別位于單獨(dú)的節(jié)點(diǎn)之上,剩余節(jié)點(diǎn)均勻部署Agent,并且每個(gè)Agent節(jié)點(diǎn)都有一個(gè)Controller線程,Controller的功能包括:調(diào)度本節(jié)點(diǎn)上面的Agent ;存儲(chǔ)和維護(hù)A-N表;存儲(chǔ)和維護(hù)Agent之間的網(wǎng)絡(luò)結(jié)構(gòu);轉(zhuǎn)發(fā)Agent消息;和交易中心共同實(shí)現(xiàn)仿真過(guò)程整體的Round同步。Network表述的是Agent之間的關(guān)聯(lián)關(guān)系,每個(gè)Controller均需要存儲(chǔ)一份Network,并且Controller負(fù)責(zé)對(duì)本節(jié)點(diǎn)上的Network進(jìn)行更新維護(hù),當(dāng)某一個(gè)Controller修改了網(wǎng)絡(luò)結(jié)構(gòu)之后,更改之后的網(wǎng)絡(luò)結(jié)構(gòu)需要同步到其他節(jié)點(diǎn),即Controller需要維持所有節(jié)點(diǎn)上的Network實(shí)時(shí)一致。A-N表與Network相似,A-N表用于描述Agent ID和節(jié)點(diǎn)ID的對(duì)應(yīng)關(guān)于,即通過(guò)A-N表可以知道某一個(gè)Agent位于哪一個(gè)節(jié)點(diǎn)上。每個(gè)Controller以及交易中心均需要存儲(chǔ)一份A-N表,并且共同維護(hù)所有節(jié)點(diǎn)上A-N表的實(shí)時(shí)一致性。異步消息分發(fā)中心負(fù)責(zé)轉(zhuǎn)發(fā)來(lái)自Controller和交易中心的消息。仿真方法的通信共有四種類型:節(jié)點(diǎn)內(nèi)部Agent的通信,節(jié)點(diǎn)間Agent的通信,Agent向交易中心的通信以及交易中心向Agent的通信。
      [0034]節(jié)點(diǎn)內(nèi)部Agent的通信過(guò)程參見(jiàn)圖3, Agent a需要向Agent b發(fā)送消息,Agent a首先將消息〈a,消息內(nèi)容,b>發(fā)送給Controller, a表示源Agent a的ID, b表示目標(biāo)Agentb的ID,消息到達(dá)Controller之后,Controller需要先去查找A-N表,確認(rèn)目標(biāo)Agent b所在的節(jié)點(diǎn),如果Agent b位于本節(jié)點(diǎn),則直接將消息<a,消息內(nèi)容,b>移交給Agent b。
      [0035]節(jié)點(diǎn)間Agent的通信過(guò)程參見(jiàn)圖4, Agent a需要向Agent b發(fā)送消息,Agent a首先將消息〈a,消息內(nèi)容,b>發(fā)送給Agent a所在節(jié)點(diǎn)的Controller, Controller需要先去查找A-N表,確認(rèn)目標(biāo)Agent b所在的節(jié)點(diǎn),如果Agent b不在本節(jié)點(diǎn),則將消息〈節(jié)點(diǎn)1,a,消息內(nèi)容,b,節(jié)點(diǎn)2>轉(zhuǎn)發(fā)到異步消息分發(fā)中心,其中“節(jié)點(diǎn)I”表示源Agent a所在的節(jié)點(diǎn),“節(jié)點(diǎn)2”表示目標(biāo)Agent b所在的節(jié)點(diǎn),然后異步消息分發(fā)中心根據(jù)接收到的消息的目標(biāo)節(jié)點(diǎn)將消息轉(zhuǎn)發(fā)給目標(biāo)節(jié)點(diǎn)的Controller,即圖4中的第4步,目標(biāo)Controller接收到消息之后將消息<a,消息內(nèi)容,b>移交給目標(biāo)Agent b,至此通信完成。
      [0036]Agent向交易中心的通信過(guò)程參見(jiàn)圖5, Agent a需要向交易中心發(fā)送消息<a,消息內(nèi)容,交易中心ID>,消息首先被發(fā)送到Agent a所在節(jié)點(diǎn)的Controller, Controller再將消息〈節(jié)點(diǎn)1,a,消息內(nèi)容,交易中心ID,交易中心節(jié)點(diǎn) > 轉(zhuǎn)發(fā)給異步消息分發(fā)中心,異步消息分發(fā)中心再將消息轉(zhuǎn)發(fā)給交易中心即可。
      [0037]交易中心向Agent的通信過(guò)程參見(jiàn)圖6,交易中心需要向Agent a發(fā)送消息,交易中心首先需要將去查A-N表,以確定目標(biāo)Agent a所在的節(jié)點(diǎn),然后交易中心將消息〈交易中心節(jié)點(diǎn),交易中心ID,消息內(nèi)容,a,節(jié)點(diǎn)1>轉(zhuǎn)發(fā)給異步消息分發(fā)中心,消息分發(fā)中心根據(jù)接收到消息的目標(biāo)節(jié)點(diǎn)將消息轉(zhuǎn)發(fā)給目標(biāo)節(jié)點(diǎn)的Controller,最后Controller再將消息〈交易中心ID,消息內(nèi)容,a>移交給目標(biāo)Agent a。
      [0038]Agent的通信不是無(wú)限制無(wú)規(guī)律的,只有相互關(guān)聯(lián)的Agent才可以通信。Agent之間的關(guān)聯(lián)關(guān)系由Network定義。
      [0039]三、Agent調(diào)度
      [0040]所述Agent都是一個(gè)單獨(dú)的線程獨(dú)立運(yùn)行,Agent的調(diào)度是指Agent線程的調(diào)度,所有的Agent都受到其所在節(jié)點(diǎn)上的Controller的調(diào)度。每個(gè)節(jié)點(diǎn)上的Controller維護(hù)一個(gè)線程池。所述的調(diào)度共分兩種情形可供用戶選擇,一種調(diào)度策略是所有Agent按步運(yùn)行,此處的“步”稱為Round,一個(gè)或者多個(gè)Round組成一個(gè)Tick,即一個(gè)Tick可以只有I個(gè)Round,也可以有多個(gè)Round,記一個(gè)Tick中共有X個(gè)Round, X為一個(gè)可以定制的參數(shù),Agent在運(yùn)行完第X個(gè)Round之后,需要阻塞等待其他Agent的第X個(gè)Round結(jié)束,即Agent之間的Tick應(yīng)該同步。Agent的Tick同步,需要保證I):每個(gè)節(jié)點(diǎn)運(yùn)行的Tick 一致;2)節(jié)點(diǎn)內(nèi)部所有Agent運(yùn)行的Tick 一致。仿真過(guò)程的全局Tick由交易中心節(jié)點(diǎn)記錄和維護(hù),每個(gè)節(jié)點(diǎn)所有的Agent運(yùn)行完第X個(gè)Round之后,由Controller線程通知交易中心節(jié)點(diǎn),并且此節(jié)點(diǎn)阻塞,當(dāng)所有節(jié)點(diǎn)的Controller都運(yùn)行完X個(gè)Round之后,仿真進(jìn)入下一個(gè)運(yùn)行Tick。Agent在一個(gè)Round中可能買(mǎi)賣或者撤單,可能依據(jù)網(wǎng)絡(luò)向其他Agent發(fā)送消息,亦可能不采取動(dòng)作,具體是否采取動(dòng)作可以由金融研究者根據(jù)金融模型定制。Round是Agent調(diào)度運(yùn)行的最小單元,Tick是Agent同步的最小單元,一個(gè)Tick中可以只有一個(gè)Round,亦可以有多個(gè)Round。另一種調(diào)度策略不需要保證Agent之間的Tick具有同步關(guān)系,每個(gè)Agent各自運(yùn)行自己的Tick,無(wú)需等待其他Agent,也無(wú)需Controller去同步Tick。
      [0041]四、交易中心運(yùn)行邏輯
      [0042]所述交易中心的作用是對(duì)所有接收到的訂單進(jìn)行撮合處理。參見(jiàn)圖7,交易中心維護(hù)一個(gè)線程池和三個(gè)隊(duì)列一買(mǎi)訂單隊(duì)列、賣訂單隊(duì)列、未處理消息隊(duì)列,每個(gè)隊(duì)列都可能有多個(gè)線程同時(shí)訪問(wèn),所以需要對(duì)隊(duì)列進(jìn)行加鎖操作。當(dāng)交易中心接收到來(lái)自Agent的訂單消息時(shí),先從線程池中取一個(gè)線程,然后將此消息交由此線程去執(zhí)行,如果線程池中無(wú)空閑線程,則將消息添加到未處理消息隊(duì)列,消息執(zhí)行線程執(zhí)行完畢之后主動(dòng)從未處理消息隊(duì)列中取出消息繼續(xù)執(zhí)行。消息執(zhí)行線程處理消息時(shí),首先根據(jù)撮合機(jī)制對(duì)訂單消息進(jìn)行撮合處理,如果買(mǎi)或者賣訂單隊(duì)列中沒(méi)有能夠與其匹配的訂單,則依據(jù)撮合機(jī)制(如連續(xù)競(jìng)價(jià)機(jī)制的價(jià)格優(yōu)先時(shí)間優(yōu)先原則)將訂單插入買(mǎi)或者賣訂單隊(duì)列;如果撮合成功,則根據(jù)買(mǎi)賣訂單的AgentID將撮合價(jià)格、撮合數(shù)量、撮合時(shí)間等信息發(fā)送給相應(yīng)的Agent。
      [0043]五、Agent運(yùn)行邏輯
      [0044]Agent運(yùn)行邏輯依賴于Round和金融模型,在一個(gè)Round中Agent需要做出哪些行為,由微觀金融模型確定。Agent的適應(yīng)能力、學(xué)習(xí)能力、主動(dòng)性體現(xiàn)在兩個(gè)方面,一是Agent在每一個(gè)Round的投資決策算法,一般是遺傳算法、強(qiáng)化學(xué)習(xí)算法、神經(jīng)網(wǎng)絡(luò)算法等智能算法;二是Agent與環(huán)境的交互,Agent通過(guò)與其他Agent以及交易中心的交互而獲悉整個(gè)市場(chǎng)的交易狀態(tài),從而主動(dòng)調(diào)整投資決策算法,趨利避害,實(shí)現(xiàn)對(duì)環(huán)境的適應(yīng)。Agent的運(yùn)行邏輯可以參考圖8,但不限于圖8,Agent的運(yùn)行邏輯依賴于金融研究者的Agent模型。
      【權(quán)利要求】
      1.一種基于Mult1-Agent的股票市場(chǎng)分布式仿真方法,其特征是,包括交易中心、消息分發(fā)中心、主體Agent ;交易中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),消息分發(fā)中心單獨(dú)部署在一個(gè)節(jié)點(diǎn),Agent均勻部署在剩余節(jié)點(diǎn); 所述Agent是具有適應(yīng)能力、學(xué)習(xí)能力、主動(dòng)性等特性的獨(dú)立個(gè)體; 所述交易中心接收所有Agent提交的股票訂單,并對(duì)這些訂單做撮合處理,同時(shí)將訂單撮合結(jié)果以及市場(chǎng)行情告知Agent ;Agent通過(guò)向交易中心提交訂單或者發(fā)送消息而影響交易中心的市場(chǎng)行情;所述交易中心還需要維護(hù)A-N表,以及控制輪次(Round)同步; 所述消息分發(fā)中心用于轉(zhuǎn)發(fā)計(jì)算機(jī)節(jié)點(diǎn)之間的通信消息。
      2.如權(quán)利要求1所述的基于Mult1-Agent的股票市場(chǎng)分布式仿真方法,其特征是,所述Agent和Agent之間以及Agent和交易中心的交互采用集中式,并且所有的通信都是異步的;所述Agent部署在不同的節(jié)點(diǎn)之上,每一個(gè)用于部署Agent的節(jié)點(diǎn)都有一個(gè)控制線程-控制器(Controller) ,Controller需要負(fù)責(zé)調(diào)度Agent的運(yùn)行以及控制Agent之間的信息傳輸,同時(shí)每個(gè)節(jié)點(diǎn)上的Controller都需要存儲(chǔ)一份Agent和節(jié)點(diǎn)之間的對(duì)應(yīng)表,簡(jiǎn)稱:A-N表,A-N表用于記錄每個(gè)Agent被部署在哪個(gè)節(jié)點(diǎn)上,并且不同節(jié)點(diǎn)上的A-N表需要保證實(shí)時(shí)一致性,由所有節(jié)點(diǎn)上的Controller負(fù)責(zé)同步A-N表; 所述Agent都是一個(gè)單獨(dú)的線程獨(dú)立運(yùn)行,所述Agent的調(diào)度是指Agent線程的調(diào)度,所有的Agent都受到其所在節(jié)點(diǎn)上的Controller的調(diào)度;每個(gè)節(jié)點(diǎn)上的Controller維持一個(gè)線程池;所述的調(diào)度共分兩種情形可供用戶選擇,一種調(diào)度策略是所有Agent按步運(yùn)行,此處的“步”稱為Round,一個(gè)或者多個(gè)Round組成一個(gè)時(shí)間段(Tick),記一個(gè)Tick中共有X個(gè)Round,X為一個(gè)定制的參數(shù),Agent在運(yùn)行結(jié)束第X個(gè)Round之后,需要阻塞等待其他Agent的第X個(gè)Round結(jié)束,即Agent之間的Round應(yīng)該同步;Agent的Round同步,需要保證I):每個(gè)節(jié)點(diǎn)運(yùn)行的Round —致;2)節(jié)點(diǎn)內(nèi)部所有Agent運(yùn)行的Round —致;仿真過(guò)程的全局Round由交易中心節(jié)點(diǎn)記錄和維護(hù),每個(gè)節(jié)點(diǎn)所有的Agent運(yùn)行完第X個(gè)Round之后,由Controller線程通知交易中心節(jié)點(diǎn),并且此節(jié)點(diǎn)阻塞,當(dāng)所有節(jié)點(diǎn)的Controller都運(yùn)行完X個(gè)Round之后,仿真進(jìn)入下一個(gè)運(yùn)行周期。
      3.如權(quán)利要求1所述的基于Mult1-Agent的股票市場(chǎng)分布式仿真方法,其特征是,所述交易中心的作用是對(duì)所有接收到的訂單進(jìn)行撮合處理,交易中心接收來(lái)自Agent的訂單消息,根據(jù)撮合機(jī)制對(duì)訂單進(jìn)行撮合處理,如果買(mǎi)或者賣訂單隊(duì)列中沒(méi)有能夠與其匹配的訂單,則依據(jù)撮合機(jī)制將訂單插入買(mǎi)或者賣訂單隊(duì)列;如果撮合成功,則根據(jù)買(mǎi)賣訂單的AgentID將撮合價(jià)格、撮合數(shù)量、撮合時(shí)間等信息發(fā)送給相應(yīng)的Agent。
      【文檔編號(hào)】G06Q40/04GK104008504SQ201410261446
      【公開(kāi)日】2014年8月27日 申請(qǐng)日期:2014年6月12日 優(yōu)先權(quán)日:2014年6月12日
      【發(fā)明者】于策, 陳祥, 王春玉, 吳虎統(tǒng), 李悅雷, 張小濤, 溫捷 申請(qǐng)人:天津大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1