2024-BUAA-OO-Unit1总结

蔡华阳-22371270 学生 2024-03-23 10:58:31

Unit1

度量分析及代码规模

下图为最终迭代版本类的数量、类的行数和代码总行数:

主要是Mono类行数比较多,因为要实现相加和相乘,我使用的是枚举的方法,行数较多。

迭代开发的过程中,新增代码不多,主要源于第一次作业的架构可扩展性高。

经典OO度量

类Mono和Lexer的OCavg较高,Mono的WMC较高

类图

本人画的只是大体上的,具体Parser的toExpr还需要通过递归下降的方法实现,ToPoly也同理。

架构分析

整体架构比较清晰,迭代的过程中没有重构,如果出现新的因子,如exp,自定义函数,只需要添加一些共有方法,toPoly,derive等,第三次作业添加了derivative因子,思路还是没变,先将整个字符串变成expr,再变成poly进行运算,合并。

bug分析

 三次作业,其中第二次的强测错了特别多,主要是错在了输出exp因子上,由于我将exp的指数放在外面,最后输出的时候括号出现了问题。二是优化exp(0),我使用了replace函数将exp(0)变成1,最后输出可能会出现(1)^2这种形式,导致输出错误。

互测分析

第二次作业由于强测错了太多没有进入互测屋,而第一次和第三次同学们的代码都十分健壮,也没有测出来。

优化策略

合并同类项在将表达式化成多项式可以解决

输出层面的1*,^0,exp(0),单项式系数为零的情况,可以前两个可以通过replace简化输出,最后一个可以特判,exp(0)则需要将exp的指数乘到因子里面再进行replace。

心得体会

由于假期没预习,个人认为第一次作业难度比较大,不知道该如何实现分配律,后来知道了可以先将因子转化成多项式再进行乘法。

通过第二次的强测失利,我了解到了测试的重要性,第三次充分进行了测试,最后顺利通过。

通过第一单元的学习,我对面向对象编程有了更深的了解,对于不要重复造轮子也有了更深的认识,要善于运用方法,下一个单元的学习我会充分进行测试。

未来方向

在助教的耐心解答下,第一单元比较顺利,感谢助教~

...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文提出一种基于鱼鹰优化算法(OOA)优化的CNN-BiGUR-Attention混合模型,用于提升短期风电功率预测的精度与稳定性,采用Matlab实现代码仿真。该模型融合卷积神经网络(CNN)提取输入数据的局部空间特征,利用双向门控循环单元(BiGUR)捕捉风速、功率等时间序列的前后向动态依赖关系,并引入注意力机制自适应强化关键时间步的特征权重,从而增强模型对非平稳风电数据的表征能力;进一步,采用OOA算法对模型超参数进行全局寻优,有效提升模型收敛速度与泛化性能。研究基于实际风电场历史数据开展实验验证,结果表明,该方法相较传统模型在预测精度、鲁棒性和误差抑制方面表现更优,适用于高比例可再生能源接入背景下的电力系统调度需求。; 适合人群:从事新能源发电预测、电力系统优化调度、智能算法与深度学习融合应用等方向的科研人员及工程技术人员,尤其适合具备Matlab编程能力、熟悉时间序列建模与深度学习框架的研究者。; 使用场景及目标:①实现风电场短期功率高精度预测,支撑电网安全稳定调度与能量管理;②为深度学习模型结构设计与智能优化算法联合调参提供实践范例;③推动人工智能技术在可再生能源预测、智能电网运行等领域的落地应用。; 阅读建议:建议结合提供的Matlab代码深入理解CNN-BiGUR-Attention网络架构搭建、注意力机制实现方式及OOA优化流程,重点关注数据预处理、模型训练与参数调优细节,可通过替换不同风电数据集进行对比实验,进一步掌握模型迁移能力与适应性。

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧