这个作业属于哪个课程 | 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:Ifor j = 1:Jfor k = 1:K% 基础货量需求约束Constraints = [Constraints, 200 * x(i, j, k) + 160 * y(i, j, k) >= Cijk(i, j, k)];% 对于每天的最后一个班次,检查是否所有x的总和等于60if 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必须为0Constraints = [Constraints, 60 - sum(x(i, j, :)) <= M * z(i, j)]; % 如果sum(x) > 60,则z必须为1% 确保当z为1时,y可以是正数,否则为0for m = 1:KConstraints = [Constraints, y(i, j, m) >= epsilon * z(i, j)];Constraints = [Constraints, y(i, j, m) <= M * z(i, j)];endendendend
end% 求解模型
options = sdpsettings('solver', 'gurobi');
sol = optimize(Constraints, Objective, options);% 检查解的状态并输出结果
if sol.problem == 0x_val = value(x);y_val = value(y);% 初始化表格数据数组data = zeros(I * J * K, 5); % 分拣中心, 日期, 班次, 正式工, 临时工entryIdx = 1;for i = 1:Ifor j = 1:Jfor k = 1:Kdata(entryIdx, :) = [i, j, k, x_val(i, j, k), y_val(i, j, k)];entryIdx = entryIdx + 1;endendend% 创建表格并保存到ExceldataTable = array2table(data, 'VariableNames', {'Center', 'Day', 'Shift', 'RegularWorkers', 'TemporaryWorkers'});filename = 'test1.xlsx';writetable(dataTable, filename);disp(['Data exported to ', filename]);
elsedisp('Problem could not be solved.');
end
成为小马姐小弟中的一员
我也很幸运自己能够在大一下成功转到了自己期盼的电气工程专业后,拜入了马愿谦老师的门下,有缘成为了小马姐的小弟中的一员,于我而言她是我漫漫求学之路上的一盏明灯,她不仅是我的学业导师,更像是我的一位姐姐一般对我关心照顾,和她相处的过程中我没有丝毫的压力,能够在她的陪伴和指导下继续成长为更好的自己是我大学期间做过的最容易的事情,她的智慧与温暖让我受益匪浅,无论是在学习、研究还是日常生活中,我都能从她身上学到很多宝贵的品质:她的乐观、坚毅、以及对他人的体贴关怀,都深深影响着我。正是在她的引导下,我逐渐找到了自己的方向,并有了更加明确的目标,每当我偶尔停歇下来回忆走过的这段求学之路时,都会心怀感激,庆幸能有她这样的一位姐姐陪伴左右。是她教会我如何做一个更好的人,如何更有耐心地面对生活中的挑战,能成为她的小弟,我感到无比荣幸,而我也将继续努力,不辜负她对我的期望。未来无论遇到怎样的挑战,我都会铭记她的教诲,勇敢前行。
(四)自我评估
具备的专业知识和能力
-
能用MATLAB和Python进行优化求解,例如结合Gurobi编程求解或是编写一些简单的启发式算法如:遗传算法(GA)、粒子群算法(PSO)、模拟退火算法(SA)。
-
能够实现一些简单的机器学习和算法搭建神经网络,曾经在服务器上用YOLOv8实现过某类检测识别项目。
-
熟练使用Markdown语言在Typora上编写Note来辅助学习。
-
可以使用LaTex进行学术论文的规范写作。
-
学习并使用过Unreal Engine5进行一些特定场景的建模以及交互功能的开发。
-
使用过51和32单片机的C语言编程进行一些简单课设的制作。
目前学会的软件
有兴趣的技术方向
- 人工智能(AI)。
- 电力电子技术(就业前景广泛电气专业方向)。
- 网络安全技术。
- 数字媒体技术。
自己缺少的能力
- 接收理解能力较为薄弱,需要大量时间来理解。
- 注意力无法坚持长时间集中,缺少专注度。
二、期待在课程中的收获
我希望可以继续跟随杨磊老师和助教的脚步,在本次的软件技术基础课程中收获到:
- 通过系统化的学习,掌握软件项目开发的基本概念和核心技能,特别是对编程语言的深入理解和实践操作的提升。
- 我希望能了解不同的软件项目开发流程,逐步掌握从问题分析、查找文献、到最终解决的完整流程,提升自己的独立思考能力。
- 我也希望能够接触到前沿的技术和理念,了解现代软件项目开发的方法论。
就角色定位而言,我希望在课程的实践项目中,尝试扮演“技术支持者”或“学习推动者”的角色。一方面,我可以为团队提供技术上的帮助,分享我在编程学习中积累的经验;另一方面,我也希望通过不断提问和与团队成员互动,激发大家的思考和学习热情,共同提高整体的技术水平。同时,在合作过程中,我会保持开放的态度,积极听取他人的意见,不断改进自己,力争成为团队中的可靠成员和有效沟通的桥梁。