?A機器人扔瓶子
機器人扔瓶子大賽 由瓶子引發的科技狂歡TsinghuaJoking-CSDN博客
https://blog.csdn.net/zhuoqingjoking97298/article/details/112610921?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161982743916780274163045%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161982743916780274163045&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-112610921.first_rank_v2_pc_rank_v29&utm_term=%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%89%94%E7%93%B6%E5%AD%90&spm=1018.2226.3001.4187
其實不管怎么去設計機器人,設計的結果就是出手后的重心速度運動方向、主軸豎直方向的夾角、加速度和向心加速度,向心加速度這里又要分出手時旋轉中心是瓶口還是瓶底,一般是瓶口,瓶子不是圓球,質量分布不一樣,讓它以精準的姿態落在平臺上,需要考慮流體動力學、拋射物體運動、向心力、重力等因素,平臺與機器人出手高度差自行設定,如果是考慮空瓶,就不用考慮流體力學,就是簡單的一個拋物線和是否在觸碰平臺時瓶身的主軸是否近似平臺的垂線,這里的近似有一個容差范圍,一般不會超過最高點到落地點直線與豎直方向上的夾角,如果是要考慮瓶內裝了多少質量的水,在拋物程序中,向心加速度會動態改變,重心也會實時發生變化,在液體在瓶內下落程序也伴隨著總質量的相對減少,本題程式設計可以寫一個啟發式演算法,自變數為出手時的重心速度方向豎直方向上的夾角和加速度、主軸豎直方向的夾角、向心加速度四個指標,目標函式就是最后落地主軸豎直方向上的夾角,求最小,約束條件有各自變數范圍和落地后主軸豎直方向上的夾角容差,平臺高度,機器人到平臺中心距離等自行設定,本題思路是優化,但是主體還是拋物仿真,相關角動量守恒、流體力學請參閱專業文獻,求解程序就按每單位時間點的狀態去推演瓶子的狀態引數(例如向心加速度、重心位置、重心速度大小和方向以及加速度等)就可以了,時間間隔可以設為0.01-0.05s,
B建立新冠病毒群體免疫屏障
先說說全球實時資料,給兩個網址
https://ourworldindata.org/coronavirus-data?country=
紅圈部分可以選擇國家,然后點擊下載,google瀏覽器親測可下載


如果上個網址不行,可以嘗試下面這個網址,雖然不支持資料下載,但是可以直接通過matlab或者python直接讀取靜態網頁資料,然后通過正則運算式處理下,打開右邊網頁代碼方式,右鍵-檢查/審查元素,點擊右上方小箭頭指向資料,后邊會直接找到對應的代碼段,看下對應的字串,用正則表達讀取出資料就行


這道題用SIR就行,考不考慮隔離已經對于美國來說不存在了,用SEIR模型也可以,但是意義不是很大,下面是我做過的新冠疫情一些案例,案例程式請私信微信公眾號后臺或者加q群322273643
這道題中說到的免疫屏障疫苗最終呈現就是降低感染率,病毒變異則是增加感染率,降低治愈率,這些通過設定程序引數在模型中體現就可以,疫苗接種率的作用,可以通過設定不同接種率,體現出對感染率的影響,做個靈敏度分析;在此基礎上考慮病毒變異,前者是降低感染率,后者則是直接影響到疫苗的作用效果,疫苗作用效果就是降低感染率,病毒的變異一方面折損疫苗對降低感染率和提高治愈率的影響,一方面直接增加病毒的感染率,免疫屏障和物理隔離對于整個社會的代價及收益的異同,這里對社會的影響主要還是經濟的影響,可以到金十資料網上下載實時的經濟資料,量化經濟水平,然后利用目前疫情狀況(選出疫情比較重要的指標)求與經濟水平的關系式,然后在與采取免疫屏障和物理隔離后預估的疫情情況去計算出改善后的經濟水平,前后對比下,說一下免疫屏障和物理隔離措施是有用的就可以了,第一問的話就用全球疫情來做分析,第三問在單獨做美國疫情的分析,
第二問免疫屏障主要看的是接種率,去查一下看有沒有城市一直在公布接種率的就選哪個城市,這里的免疫屏障,以目前中國疫情狀況,本地感染的基本沒有,主要是外來輸入病例,外來病例可能會帶有變異病毒,這道題沒有具體的思路可以說,可以這么來做,當(1-接種率)<感染率*(1+變異率),構建類似的公式即可,最后給出一個時間結果就行
第三問就用第一問的模型,模型中的引數就通過美國疫情資料去求,然后隨時間推演美國疫情的發展,特別注意疫苗是在某個時刻加入進去的,疫苗接種對感染率和治愈率的影響也是從此刻開始的,



C布線問題
先說下問題背景,一個電子零部件可以有很多層電路板疊加一起的,只要能連通相應介面即可,一二問主要有一下三種連接方式:直接連接、一次轉彎連接、多次轉彎連接

C題就說說程式設計思路吧,每個問都是約束條件不一樣而已,C題是優化設計問題,但是用優化演算法做的意義也不是很大,但可以湊字數

1.一塊電路板上會有數條連線,切記這里可不是對各連線分組哈,自變數通過randperm產生上述連線的依次排布,這里的序列和遺傳演算法的染色體比較相似,可以直接嵌套遺傳演算法,只不過要更改下交叉變異函式,這是自定義函式案例,參考下,用randperm函式產生M個個體,
function x=jiaocha(x,a)
if nargin < 2
a=0.3;%未設定交叉率則默認為0.3
end
y=x(end:-1:1);
b=randperm(length(x));
if rand<a %隨機1/3個位置進行交叉互換
x(b(1:fix(length(x)/3)))=y(b(1:fix(length(x)/3)));
end
function selchrom=bianyi(selchrom,n,a)
if nargin < 3
a=0.5;%未設定變異率則默認為0.5
end
for i=1:length(selchrom)
if rand<a
b=randi(n);
c=find(selchrom==b);
d=selchrom(i);
selchrom(i)=b;
selchrom(c)=d;
end
end
2.對每個個體的線路進行排布
構造有向矩陣,初始矩陣都是1,圖1可以看作是7*7矩陣
While 直到所有線路都已安排,否則:
for回圈(執行k次模擬排布,直到下一組初始和終止埠無法安排則終止,保留當前結果,初始化矩陣[更換一張新的電路板])
按照序列依次選出需要連接的初始和終止埠
每個個體會從隨機從三種連接方式選出一種,通過的整列位置改為1(第一問是不允許交叉點,如果是允許一個交叉點,那么就把初始矩陣賦值為2)
無法安排下一埠組合則終止回圈
記錄當前電路板排布
end并選出排布埠組合最多的排布結果
end并記錄使用電路板數
保存每個個體結果
3.按正常遺傳交叉變異程序
后面的問題就是在上述設計思路上添加約束條件,程式不難,外回圈為遺傳演算法,內回圈則是進行k次蒙特卡洛實驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282835.html
標籤:AI
