日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三村合建水厂问题研究

發布時間:2023/12/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三村合建水厂问题研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述:

A村、B村和C村都在河流(Y軸)的東面,A村在y=3.5 km的路旁,B村在y=2.5 km的路旁,C村在y=0.5 km的路旁,他們要在河邊合建一間水廠。請設計使水管總長最短的方案。


設計要求:

(1)使用matlab-GUI軟件編程實現;

(2)只在第一象限[0,4]×[0,4]范圍研究該問題;

(3)界面要有問題描述;

(4)輸入給定點A, B, C的坐標;

(5)輸出水廠和費爾馬點的坐標,水管總長和水管的布局圖。


參考界面:



Matlab程序下載:點擊打開鏈接

http://download.csdn.net/detail/softimite_zifeng/9679181


子豐的一些思路:

1. 本題的背景知識:費爾馬(Fermat)問題,斯坦納(Steiner)最短樹問題。你需要知道什么是三角形的Fermat點,如何求Fermat點,以及如果是哪個村莊如何建水廠(這就是個拓展了的Fermat問題)。你還需要知道什么是Steiner點,如何求Steiner點,以及一個Steiner最短樹問題需要添加幾個Steiner點。

注:如果需要相關的內容,可以和博主聯系。

2. Matlab-GUI設計:如何在圖中用鼠標拖動村莊(黑點)。其實拖動黑點可以簡單的理解為你在不停地擦去原來的點并在新的地方畫出新的點,這樣就能很容易設計出程序。需要使用WindowButtonDownFcn,WindowButttonMotionFcn和WindowButtonUpFcn這三個函數。其中WindowButtonDownFcn用于選中村莊,WindowButtonMotionFcn用于鼠標移動時擦除點和重新畫點,WindowButtonUpFcn用于停止鼠標移動時還繼續擦除點畫點。

3. 這個程序最難的部分還是設計求水廠和Steiner點的算法。由于本題的特殊性,Steiner點出現的情況其實只有幾種(共3大種類型),只需要根據這幾種情況設計出相應的算法,然后根據每種情況求出的總長,取出最短總長的那種情況即可。

Matlab程序下載:點擊打開鏈接

http://download.csdn.net/detail/softimite_zifeng/9679181

總結

以上是生活随笔為你收集整理的三村合建水厂问题研究的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。