陳彥吉的第一次作業

蓝色天空1412發表於2024-09-12
這個作業屬於哪個課程 https://edu.cnblogs.com/campus/zjlg/rjjc
這個作業的目標 向教師和助教介紹自己,闡述自己期望的課程收穫和扮演的課程實踐角色
姓名-學號 陳彥吉 2022329301139

一、自我介紹

(一)基本資訊

我叫陳彥吉,來自浙江台州,是2022級電氣工程及其自動化(2)班的一名學生,同時也是資訊科學與工程學院這個大家庭中的一份子。很慶幸自己能夠進入浙江理工大學就讀,並且結識了許多有趣可愛的同學、優秀傑出的學長學姐和一眾令人尊敬、師德高尚的教師們。當然,我也很榮幸這學期能夠選上楊磊老師的軟體技術基礎課並希望繼續跟隨楊老師不斷豐富自己的技能庫、拓寬自己的知識面。

(二)興趣愛好

我愛好廣泛,閒暇時喜歡玩遊戲、聽音樂、閱讀、探店以及鍛鍊身體,雖然很多運動諸如籃球、羽毛球、乒乓球、網球、游泳都有涉獵但沒一樣可以稱得上精通,所以我對於這點還是挺耿耿於懷的,不過也可以說自己的生活還是挺多姿多彩的。

陳彥吉的第一次作業
暑假在玩《黑神話悟空》
陳彥吉的第一次作業
在飯搭子劉靖宇推薦下閱讀的《霍亂時期的愛情》

陳彥吉的第一次作業
今年假期去上海探店吃的甜點
陳彥吉的第一次作業
在杭州阿里體育館辦的游泳VIP(雖然是被坑的)

(三)學習經歷

大學對我來說是一個能夠提供很多機會和資源的寶貴平臺,所以從大一入學到現在,參加過了很多競賽,比如數學競賽、數學建模競賽、機器人競賽等,跟著老師和學長學姐們學到了很多平時在課堂上學不到的知識,當然還有通宵能力(😀),這些大大小小的比賽不僅鍛鍊了我的腦力、體力,還鍛鍊了我的心理承受能力。

我和數模那些事

印象最深刻的一次比賽是2023年的全國大學生數學建模競賽,自己從0到1學了很多知識,包括論文寫作、Python和MATLAB程式設計、文獻檢索等,最後和兩位隊友一起奮戰了三天三夜寫出來一篇自我認為還不錯的論文,最後卻因為附錄沒有加上程式碼導致正文內容查重率超20%失去了評獎資格,當時因為這件事真的傷心了好久。好在後來自己重振旗鼓,和新的隊友一起在2023年9月份就開始準備2024年2月的美國大學生數學建模競賽,當時的比賽日期距離除夕夜很近,是在2月2日到2月6日,最後兩天我也是根本沒有睡覺,和隊友一起堅持完成了論文並在6號凌晨五點提交了論文,當論文被顯示成功送達至官方組委會的郵箱時感覺真的是如釋重負,早早地回去收拾好行李就在上午十一點坐動車回家了,記得6號那天的杭州還下起了小冰雹。2024年5月的勞動節假期迎來了美賽的開獎日期,好在這次的結果沒有辜負我們的努力,我們創造了學校自建校以來最好的一次成績,一起備賽的室友胡鑫宇獲得了最高獎項Outstanding(國家級特等獎),我和另一位21級電氣的孫司翰學長則都獲得了Meritorious獎項(國家級一等獎),興奮的我們在那天聚在一起開心了很久,激動和喜悅一直徘徊在我們的心中。

陳彥吉的第一次作業
一路走來的艱辛
陳彥吉的第一次作業
美賽隊伍大合影

美賽結束後,有一次學校的計算機學院組織了一次優秀學長面對面分享經驗的交流活動,我在好奇心的驅使下在這次經驗分享會中有幸結識了20級電腦科學與技術專業的張易誠學長,他本人曾經在2022年的國賽中獲得過國家級一等獎的殊榮,也是他讓我的最佳化程式設計能力更上一層樓,他毫無保留地教會了我如何使用MATLAB呼叫Gurobi求解器來解決最佳化問題,同時他還教會了我使用Python達到相同效果的另外一種方法,這些知識讓我受益匪淺,並且我也將其具體應用到了我編寫的程式碼之中,這裡找了一段分享出來給大家看看(寫得不是很好還請見諒)。

點選檢視我的MATLAB程式碼
clc; clear;
% 定義問題的規模
I = 57;  % 分揀中心數量
J = 30;     % 天數
K = 6;    % 班次

% 載入資料
load("Cijk.mat");

% 定義整數決策變數
x = intvar(I, J, K, 'full'); % 正式工人數
y = intvar(I, J, K, 'full'); % 臨時工人數

% 定義二進位制輔助變數
z = binvar(I, J, 'full');  % 每個中心和每天一個二進位制變數

% 目標函式:最小化總工人數
Objective = sum(sum(sum(x + y)));

% 新增約束
Constraints = [];
Constraints = [Constraints, x >= 0, y >= 0];

epsilon = 0.001;  % 定義一個小的正值用於確保y大於0
M = 1000;  % 一個大數,用於輔助實現邏輯約束

for i = 1:I
    for j = 1:J
        for k = 1:K
            % 基礎貨量需求約束
            Constraints = [Constraints, 200 * x(i, j, k) + 160 * y(i, j, k) >= Cijk(i, j, k)];
            % 對於每天的最後一個班次,檢查是否所有x的總和等於60
            if k == K
                % 正式工總數不超過60的約束
                Constraints = [Constraints, sum(x(i, j, :)) <= 60];
                % 新增約束,利用大M方法來模擬邏輯蘊含
                Constraints = [Constraints, sum(x(i, j, :)) - 60 <= M * (1 - z(i, j))];  % 如果sum(x) < 60,則z必須為0
                Constraints = [Constraints, 60 - sum(x(i, j, :)) <= M * z(i, j)];  % 如果sum(x) > 60,則z必須為1
                % 確保當z為1時,y可以是正數,否則為0
                for m = 1:K
                    Constraints = [Constraints, y(i, j, m) >= epsilon * z(i, j)];
                    Constraints = [Constraints, y(i, j, m) <= M * z(i, j)];
                end
            end
        end
    end
end

% 求解模型
options = sdpsettings('solver', 'gurobi');
sol = optimize(Constraints, Objective, options);

% 檢查解的狀態並輸出結果
if sol.problem == 0
    x_val = value(x);
    y_val = value(y);
    % 初始化表格資料陣列
    data = zeros(I * J * K, 5); % 分揀中心, 日期, 班次, 正式工, 臨時工
    entryIdx = 1;
    for i = 1:I
        for j = 1:J
            for k = 1:K
                data(entryIdx, :) = [i, j, k, x_val(i, j, k), y_val(i, j, k)];
                entryIdx = entryIdx + 1;
            end
        end
    end
    % 建立表格並儲存到Excel
    dataTable = array2table(data, 'VariableNames', {'Center', 'Day', 'Shift', 'RegularWorkers', 'TemporaryWorkers'});
    filename = 'test1.xlsx';
    writetable(dataTable, filename);
    disp(['Data exported to ', filename]);
else
    disp('Problem could not be solved.');
end
值得一提的是今年在網上結識了一位南昌大學電氣工程專業的研一新生,他的課題組研究方向是潮流計算以及無功最佳化,而我用自學的這些知識幫他解決了他所遇見的一系列難題,在得到感謝的同時我也不由得感嘆比賽所能教會我們的東西遠比我們想象的還要多得多,這也極大地鼓勵了我在浙理求學之路上繼續躬行不輟的決心。

成為小馬姐小弟中的一員

我也很幸運自己能夠在大一下成功轉到了自己期盼的電氣工程專業後,拜入了馬願謙老師的門下,有緣成為了小馬姐的小弟中的一員,於我而言她是我漫漫求學之路上的一盞明燈,她不僅是我的學業導師,更像是我的一位姐姐一般對我關心照顧,和她相處的過程中我沒有絲毫的壓力,能夠在她的陪伴和指導下繼續成長為更好的自己是我大學期間做過的最容易的事情,她的智慧與溫暖讓我受益匪淺,無論是在學習、研究還是日常生活中,我都能從她身上學到很多寶貴的品質:她的樂觀、堅毅、以及對他人的體貼關懷,都深深影響著我。正是在她的引導下,我逐漸找到了自己的方向,並有了更加明確的目標,每當我偶爾停歇下來回憶走過的這段求學之路時,都會心懷感激,慶幸能有她這樣的一位姐姐陪伴左右。是她教會我如何做一個更好的人,如何更有耐心地面對生活中的挑戰,能成為她的小弟,我感到無比榮幸,而我也將繼續努力,不辜負她對我的期望。未來無論遇到怎樣的挑戰,我都會銘記她的教誨,勇敢前行。

(四)自我評估

具備的專業知識和能力

  • 能用MATLAB和Python進行最佳化求解,例如結合Gurobi程式設計求解或是編寫一些簡單的啟發式演算法如:遺傳演算法(GA)、粒子群演算法(PSO)、模擬退火演算法(SA)。

  • 能夠實現一些簡單的機器學習和演算法搭建神經網路,曾經在伺服器上用YOLOv8實現過某類檢測識別專案。

  • 熟練使用Markdown語言在Typora上編寫Note來輔助學習。

  • 可以使用LaTex進行學術論文的規範寫作。

  • 學習並使用過Unreal Engine5進行一些特定場景的建模以及互動功能的開發。

  • 使用過51和32微控制器的C語言程式設計進行一些簡單課設的製作。

    陳彥吉的第一次作業
    目前學會的軟體

有興趣的技術方向

  • 人工智慧(AI)。
  • 電力電子技術(就業前景廣泛電氣專業方向)。
  • 網路安全技術。
  • 數字媒體技術。

自己缺少的能力

  • 接收理解能力較為薄弱,需要大量時間來理解。
  • 注意力無法堅持長時間集中,缺少專注度。

二、期待在課程中的收穫

我希望可以繼續跟隨楊磊老師和助教的腳步,在本次的軟體技術基礎課程中收穫到:

  1. 透過系統化的學習,掌握軟體專案開發的基本概念和核心技能,特別是對程式語言的深入理解和實踐操作的提升。
  2. 我希望能瞭解不同的軟體專案開發流程,逐步掌握從問題分析、查詢文獻、到最終解決的完整流程,提升自己的獨立思考能力。
  3. 我也希望能夠接觸到前沿的技術和理念,瞭解現代軟體專案開發的方法論。

就角色定位而言,我希望在課程的實踐專案中,嘗試扮演“技術支持者”或“學習推動者”的角色。一方面,我可以為團隊提供技術上的幫助,分享我在程式設計學習中積累的經驗;另一方面,我也希望透過不斷提問和與團隊成員互動,激發大家的思考和學習熱情,共同提高整體的技術水平。同時,在合作過程中,我會保持開放的態度,積極聽取他人的意見,不斷改進自己,力爭成為團隊中的可靠成員和有效溝通的橋樑。

相關文章