(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf_第1页
(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf_第2页
(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf_第3页
(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf_第4页
(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(企业管理专业论文)面向动态调度的智能物流运输模型研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向动态调度的智能物流运输模型研究 1 面向动态调度的智能物流运输模型研究 摘 要 在传统的静态运输调度问题中,各种信息在运输调度前是已知的, 这些信息不随时间的推移而变化,这并不符合现实中快递业务、电子商 务等涉及到的物流运输活动现状。实际上,在运输调度前相关信息并不 完全知道,而且随着时间的推移,信息也会发生变化,在这种情况下动 态运输调度是必须的。 近年来 it、通讯技术的发展以及物流设备设施的改进使得解决动态 运输调度问题有了可能。多智能体技术的发展和广泛应用为解决动态运 输调度问题提供了新的思路。 本文在静态运输调度问题的基础上, 研究探讨了动态运输调度问题, 并引入多智能体系统技术,建立了解决此类问题的智能物流运输模型。 本文在详细研究动态运输调度问题动态性和周期性指标的基础上,界定 出一类适合于多智能体技术解决的动态运输调度问题扩展了的动态 运输调度问题。接下来,针对扩展了的动态运输调度问题,引入多智能 体系统技术,建立了智能物流运输模型,对模型的详细框架、思想和算 法等进行了研究。最后的实例分析表明,面向动态调度的智能物流运输 模型能较好地解决扩展了的动态运输调度问题,提高运输调度的效率。 关键字 动态运输调度,多智能体,物流,apriori 方法 面向动态调度的智能物流运输模型研究 2 the research on intelligent logistic transport model for dynamic vehicle scheduling problem abstract comparing on the static vehicle scheduling problem (svsp), the research analyzed the dynamic vehicle scheduling problem (dvsp) and addressed the intelligent logistic transport model (iltm) based on multi-agent system. in svsp, the all relative information should be identified and they should not change in the vehicle scheduling process. but it is not true in the express business, e-commerce etc. there, not all relative information can be known and they will change in the vehicle scheduling process. it is called dvsp. now, the development of logistic equipment declare_dynamic(ccustomerlocation) / field/param data /afx_field(ccustomerlocation, crecordset) cstring m_id; long m_x; long m_y; /afx_field / overrides / classwizard generated virtual function overrides /afx_virtual(ccustomerlocation) public: virtual cstring getdefaultconnect(); / default connection string virtual cstring getdefaultsql(); / default sql for recordset virtual void dofieldexchange(cfieldexchange* pfx); / rfx support /afx_virtual / implementation #ifdef _debug virtual void assertvalid() const; virtual void dump(cdumpcontext #endif ; /afx_insert_location / microsoft visual c+ will insert additional declarations immediately before the previous line. #endif / !defined(afx_customerlocation_h_55974664_7e2a_4e69_96ac_62e0440c50d4_included_ ) (2) customerlocation.cpp / customerlocation.cpp : implementation file / #include stdafx.h #include virtualrouting.h #include customerlocation.h #ifdef _debug #define new debug_new #undef this_file 面向动态调度的智能物流运输模型研究 48 static char this_file = _file_; #endif / / ccustomerlocation implement_dynamic(ccustomerlocation, crecordset) ccustomerlocation:ccustomerlocation(cdatabase* pdb) : crecordset(pdb) /afx_field_init(ccustomerlocation) m_id = _t(); m_x = 0; m_y = 0; m_nfields = 3; /afx_field_init m_ndefaulttype = dynaset; cstring ccustomerlocation:getdefaultconnect() return _t(odbc;dsn=data); cstring ccustomerlocation:getdefaultsql() return _t(customerlocation); void ccustomerlocation:dofieldexchange(cfieldexchange* pfx) /afx_field_map(ccustomerlocation) pfx-setfieldtype(cfieldexchange:outputcolumn); rfx_text(pfx, _t(id), m_id); rfx_long(pfx, _t(x), m_x); rfx_long(pfx, _t(y), m_y); /afx_field_map / / ccustomerlocation diagnostics #ifdef _debug void ccustomerlocation:assertvalid() const crecordset:assertvalid(); void ccustomerlocation:dump(cdumpcontext #endif /_debug (3) virtualroutingdlg.h / cvirtualroutingdlg dialog class cvirtualroutingdlg : public cdialog / construction public: bool match(cstring inputid,routarray* area); void group(routarray* orirout,temparray* routlet); bool dismatch(cstring oriid,routarray* region); void costsaving(idarray* beginid,routarray* pinput,routarray* poutput,int i); void delspot(cstring iddel,routarray* group); 面向动态调度的智能物流运输模型研究 49 float compute(routarray* r_pinput); void nearest(int x,int y,routarray* r_pregion,idarray* i_presult); float lengthc10; float lengtha10; cstring routc10; cstring routa10; cresultc* m_presultc; cresulta* m_presulta; routarray* m_pinitcust; temparray* m_ptempcust; routarray* m_proutc; routarray* m_prouta; routarray* m_porigrout; ccustomerlocation* m_pcusloc; routarray* query; cvirtualroutingdlg(cwnd* pparent = null); / standard constructor cvirtualroutingdlg(); / dialog data /afx_data(cvirtualroutingdlg) enum idd = idd_virtualrouting_dialog ; /afx_data / classwizard generated virtual function overrides /afx_virtual(cvirtualroutingdlg) protected: virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support /afx_virtual / implementation protected: hicon m_hicon; / generated message map functions /afx_msg(cvirtualroutingdlg) virtual bool oninitdialog(); afx_msg void onsyscommand(uint nid, lparam lparam); afx_msg void onpaint(); afx_msg hcursor onquerydragicon(); virtual void oncancel(); afx_msg void oninputdata(); afx_msg void onrun(); /afx_msg declare_message_map() ; /afx_insert_location / microsoft visual c+ will insert additional declarations immediately before the previous line. #endif / !defined(afx_virtualroutingdlg_h_1bf17eb5_32aa_4a26_b068_ed181d13d7dc_included _) (4) virtualroutingdlg.cpp / virtualroutingdlg.cpp : implementation file / #include stdafx.h #include virtualrouting.h #include virtualroutingdlg.h #ifdef _debug #define new debug_new #undef this_file static char this_file = _file_; #endif / / caboutdlg dialog used for app about 面向动态调度的智能物流运输模型研究 50 class caboutdlg : public cdialog public: caboutdlg(); / dialog data /afx_data(caboutdlg) enum idd = idd_aboutbox ; /afx_data / classwizard generated virtual function overrides /afx_virtual(caboutdlg) protected: virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support /afx_virtual / implementation protected: /afx_msg(caboutdlg) /afx_msg declare_message_map() ; caboutdlg:caboutdlg() : cdialog(caboutdlg:idd) /afx_data_init(caboutdlg) /afx_data_init void caboutdlg:dodataexchange(cdataexchange* pdx) cdialog:dodataexchange(pdx); /afx_data_map(caboutdlg) /afx_data_map begin_message_map(caboutdlg, cdialog) /afx_msg_map(caboutdlg) / no message handlers /afx_msg_map end_message_map() / / cvirtualroutingdlg dialog cvirtualroutingdlg:cvirtualroutingdlg(cwnd* pparent /*=null*/) : cdialog(cvirtualroutingdlg:idd, pparent) int i; m_pcusloc=new ccustomerlocation; m_presulta=new cresulta; m_presultc=new cresultc; query=new routarray; m_pinitcust=new routarray; m_porigrout=new routarray; m_prouta=new routarray; m_proutc=new routarray; m_ptempcust=new temparray; query-len=0; m_pinitcust-len=0; m_porigrout-len=0; 面向动态调度的智能物流运输模型研究 51 m_prouta-len=0; m_proutc-len=0; m_ptempcust-len=0; for(i=0;iidseqi.x=0; query-idseqi.y=0; m_pinitcust-idseqi.id=_t(); m_pinitcust-idseqi.x=0; m_pinitcust-idseqi.y=0; m_porigrout-idseqi.id=_t(); m_porigrout-idseqi.x=0; m_porigrout-idseqi.y=0; m_prouta-idseqi.id=_t(); m_prouta-idseqi.x=0; m_prouta-idseqi.y=0; m_proutc-idseqi.id=_t(); m_proutc-idseqi.x=0; m_proutc-idseqi.y=0; m_ptempcust-idseqi.id=_t(); m_ptempcust-idseqi.x=0; m_ptempcust-idseqi.y=0; m_ptempcust-idseqi.near.id=_t(); m_ptempcust-idseqi.near.x=0; m_ptempcust-idseqi.near.y=0; /afx_data_init(cvirtualroutingdlg) /afx_data_init / note that loadicon does not require a subsequent destroyicon in win32 m_hicon = afxgetapp()-loadicon(idr_mainframe); void cvirtualroutingdlg:dodataexchange(cdataexchange* pdx) cdialog:dodataexchange(pdx); ddx_text(pdx,idc_customer1,query-idseq49.x); ddx_text(pdx,idc_customer2,query-idseq0.x); ddx_text(pdx,idc_customer3,query-idseq1.x); ddx_text(pdx,idc_customer4,query-idseq2.x); ddx_text(pdx,idc_customer5,query-idseq3.x); ddx_text(pdx,idc_customer6,query-idseq4.x); ddx_text(pdx,idc_customer7,query-idseq5.x); ddx_text(pdx,idc_customer8,query-idseq6.x); ddx_text(pdx,idc_customer9,query-idseq7.x); ddx_text(pdx,idc_customer10,query-idseq8.x); ddx_text(pdx,idc_customer11,query-idseq9.x); ddx_text(pdx,idc_customer12,query-idseq10.x); ddx_text(pdx,idc_customer13,query-idseq11.x); 面向动态调度的智能物流运输模型研究 52 ddx_text(pdx,idc_customer14,query-idseq12.x); ddx_text(pdx,idc_customer15,query-idseq13.x); ddx_text(pdx,idc_customer16,query-idseq14.x); ddx_text(pdx,idc_customer17,query-idseq15.x); ddx_text(pdx,idc_customer18,query-idseq16.x); ddx_text(pdx,idc_customer19,query-idseq17.x); ddx_text(pdx,idc_customer20,query-idseq18.x); ddx_text(pdx,idc_customer21,query-idseq19.x); ddx_text(pdx,idc_customer22,query-idseq20.x); ddx_text(pdx,idc_customer23,query-idseq21.x); ddx_text(pdx,idc_customer24,query-idseq22.x); ddx_text(pdx,idc_customer25,query-idseq23.x); ddx_text(pdx,idc_customer26,query-idseq24.x); ddx_text(pdx,idc_customer27,query-idseq25.x); ddx_text(pdx,idc_customer28,query-idseq26.x); ddx_text(pdx,idc_customer29,query-idseq27.x); ddx_text(pdx,idc_customer30,query-idseq28.x); ddx_text(pdx,idc_customer31,query-idseq29.x); ddx_text(pdx,idc_customer32,query-idseq30.x); ddx_text(pdx,idc_customer33,query-idseq31.x); ddx_text(pdx,idc_customer34,query-idseq32.x); ddx_text(pdx,idc_customer35,query-idseq33.x); ddx_text(pdx,idc_customer36,query-idseq34.x); ddx_text(pdx,idc_customer37,query-idseq35.x); ddx_text(pdx,idc_customer38,query-idseq36.x); ddx_text(pdx,idc_customer39,query-idseq37.x); ddx_text(pdx,idc_customer40,query-idseq38.x); ddx_text(pdx,idc_customer41,query-idseq39.x); ddx_text(pdx,idc_customer42,query-idseq40.x); ddx_text(pdx,idc_customer43,query-idseq41.x); ddx_text(pdx,idc_customer44,query-idseq42.x); ddx_text(pdx,idc_customer45,query-idseq43.x); ddx_text(pdx,idc_customer46,query-idseq44.x); ddx_text(pdx,idc_customer47,query-idseq45.x); ddx_text(pdx,idc_customer48,query-idseq46.x); ddx_text(pdx,idc_customer49,query-idseq47.x); ddx_text(pdx,idc_customer50,query-idseq48.x); ddx_text(pdx,idc_customery1,query-idseq49.y); ddx_text(pdx,idc_customery2,query-idseq0.y); ddx_text(pdx,idc_customery3,query-idseq1.y); ddx_text(pdx,idc_customery4,query-idseq2.y); ddx_text(pdx,idc_customery5,query-idseq3.y); ddx_text(pdx,idc_customery6,query-idseq4.y); ddx_text(pdx,idc_customery7,query-idseq5.y); ddx_text(pdx,idc_customery8,query-idseq6.y); ddx_text(pdx,idc_customery9,query-idseq7.y); ddx_text(pdx,idc_customery10,query-idseq8.y); ddx_text(pdx,idc_customery11,query-idseq9.y); ddx_text(pdx,idc_customery12,query-idseq10.y); ddx_text(pdx,idc_customery13,query-idseq11.y); ddx_text(pdx,idc_customery14,query-idseq12.y); ddx_text(pdx,idc_customery15,query-idseq13.y); ddx_text(pdx,idc_customery16,query-idseq14.y); ddx_text(pdx,idc_customery17,query-idseq15.y); ddx_text(pdx,idc_customery18,query-idseq16.y); ddx_text(pdx,idc_customery19,query-idseq17.y); ddx_text(pdx,idc_customery20,query-idseq18.y); ddx_text(pdx,idc_customery21,query-idseq19.y); ddx_text(pdx,idc_customery22,query-idseq20.y); ddx_text(pdx,idc_customery23,query-idseq21.y); ddx_text(pdx,idc_customery24,query-idseq22.y); ddx_text(pdx,idc_customery25,query-idseq23.y); 面向动态调度的智能物流运输模型研究 53 ddx_text(pdx,idc_customery26,query-idseq24.y); ddx_text(pdx,idc_customery27,query-idseq25.y); ddx_text(pdx,idc_customery28,query-idseq26.y); ddx_text(pdx,idc_customery29,query-idseq27.y); ddx_text(pdx,idc_customery30,query-idseq28.y); ddx_text(pdx,idc_customery31,query-idseq29.y); ddx_text(pdx,idc_customery32,query-idseq30.y); ddx_text(pdx,idc_customery33,query-idseq31.y); ddx_text(pdx,idc_customery34,query-idseq32.y); ddx_text(pdx,idc_customery35,query-idseq33.y); ddx_text(pdx,idc_customery36,query-idseq34.y); ddx_text(pdx,idc_customery37,query-idseq35.y); ddx_text(pdx,idc_customery38,query-idseq36.y); ddx_text(pdx,idc_customery39,query-idseq37.y); ddx_text(pdx,idc_customery40,query-idseq38.y); ddx_text(pdx,idc_customery41,query-idseq39.y); ddx_text(pdx,idc_customery42,query-idseq40.y); ddx_text(pdx,idc_customery43,query-idseq41.y); ddx_text(pdx,idc_customery44,query-idseq42.y); ddx_text(pdx,idc_customery45,query-idseq43.y); ddx_text(pdx,idc_customery46,query-idseq44.y); ddx_text(pdx,idc_customery47,query-idseq45.y); ddx_text(pdx,idc_customery48,query-idseq46.y); ddx_text(pdx,idc_customery49,query-idseq47.y); ddx_text(pdx,idc_customery50,query-idseq48.y); ddx_text(pdx,idc_routa1,routa0); ddx_text(pdx,idc_routa2,routa1); ddx_text(pdx,idc_routa3,routa2); ddx_text(pdx,idc_routa4,routa3); ddx_text(pdx,idc_routa5,routa4); ddx_text(pdx,idc_routa6,routa5); ddx_text(pdx,idc_routa7,routa6); ddx_text(pdx,idc_routa8,routa7); ddx_text(pdx,idc_routa9,routa8); ddx_text(pdx,idc_routa10,routa9); ddx_text(pdx,idc_routal1,lengtha0); ddx_text(pdx,idc_routal2,lengtha1); ddx_text(pdx,idc_routal3,lengtha2); ddx_text(pdx,idc_routal4,lengtha3); ddx_text(pdx,idc_routal5,lengtha4); ddx_text(pdx,idc_routal6,lengtha5); ddx_text(pdx,idc_routal7,lengtha6); ddx_text(pdx,idc_routal8,lengtha7); ddx_text(pdx,idc_routal9,lengtha8); ddx_text(pdx,idc_routal10,lengtha9); ddx_text(pdx,idc_routc1,routc0); ddx_text(pdx,idc_routc2,routc1); ddx_text(pdx,idc_routc3,routc2); ddx_text(pdx,idc_routc4,routc3); ddx_text(pdx,idc_routc5,routc4); ddx_text(pdx,idc_routc6,routc5); ddx_text(pdx,idc_routc7,routc6); ddx_text(pdx,idc_routc8,routc7); ddx_text(pdx,idc_routc9,routc8); ddx_text(pdx,idc_routc10,routc9); ddx_text(pdx,idc_routcl1,lengthc0); ddx_text(pdx,idc_routcl2,lengthc1); ddx_text(pdx,idc_routcl3,lengthc2); ddx_text(pdx,idc_routcl4,lengthc3); ddx_text(pdx,idc_routcl5,lengthc4); ddx_text(pdx,idc_routcl6,lengthc5); ddx_text(pdx,idc_routcl7,lengthc6); 面向动态调度的智能物流运输模型研究 54 ddx_text(pdx,idc_routcl8,lengthc7); ddx_text(pdx,idc_routcl9,lengthc8); ddx_text(pdx,idc_routcl10,lengthc9); /afx_data_map(cvirtualroutingdlg) /afx_data_map begin_message_map(cvirtualroutingdlg, cdialog) /afx_msg_map(cvirtualroutingdlg) on_wm_syscommand() on_wm_paint() on_wm_querydragicon() on_bn_clicked(idc_button1, oninputdata) on_bn_clicked(idok, onrun) /afx_msg_map end_message_map() / / cvirtualroutingdlg message handlers bool cvirtualroutingdlg:oninitdialog() cdialog:oninitdialog(); / add about. menu item to system menu. / idm_aboutbox must be in the system command range. assert(idm_aboutbox assert(idm_aboutbox appendmenu(mf_separator); psysmenu-appendmenu(mf_string, idm_aboutbox, straboutmenu); / set the icon for this dialog. the framework does this automatically / when the applications main window is not a dialog seticon(m_hicon, true); / set big icon seticon(m_hicon, false); / set small icon / todo: add extra initialization here m_pcusloc-open(); m_presulta-open(crecordset:dynaset); m_presultc-open(crecordset:dynaset); return true; / return true unless you set the focus to a control void cvirtualroutingdlg:onsyscommand(uint nid, lparam lparam) if (nid dlgabout.domodal(); else cdialog:onsyscommand(nid, lparam); / if you add a minimize button to your dialog, you will need the code below / to draw the icon. for mfc applications using the document/view model, / this is automatically done for you by the framework. void cvirtualroutingdlg:onpaint() if (isiconic() cpaintdc dc(this); / device context for painting sendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0); / center icon in client rectangle int cxicon = getsystemmetrics(sm_cxicon); int cyicon = getsystemmetrics(sm_cyicon); crect rect; getclientrect( int x = (rect.width() - cxicon + 1) / 2; int y = (rect.height() - cyicon + 1) / 2; / draw the icon dc.drawicon(x, y, m_hicon); else cdialog:onpaint(); / the system calls this to obtain the cursor to display while the user drags / the minimized window. hcursor cvirtualroutingdlg:onquerydragicon() return (hcursor) m_hicon; void cvirtualroutingdlg:oncancel() / todo: add extra cleanup here cdialog:oncancel(); cvirtualroutingdlg:cvirtualroutingdlg() m_pcusloc-close(); m_presulta-close(); m_presultc-close(); delete m_pcusloc; delete m_presulta; delete m_presultc; delete query; 面向动态调度的智能物流运输模型研究 56 delete m_pinitcust; delete m_porigrout; delete m_prouta; delete m_proutc; delete m_ptempcust; void cvirtualroutingdlg:oninputdata() int i=0; m_pcusloc-movefirst(); m_pcusloc-movenext(); while(!m_pcusloc-iseof() query-idseqi.id=m_pcusloc-m_id; query-idseqi.x=m_pcusloc-m_x; query-idseqi.y=m_pcusloc-m_y; i=i+1;query-len=i; m_pcusloc-movenext(); this-updatedata(false); / todo: add your control notification handler code here void cvirtualroutingdlg:onrun() int i; idarray* zero; idarray* temp; routarray* query1; routarray* m_pinitcust1; zero=new idarray; temp=new idarray; query1=new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论