An abstract way to solve Luogu P1001

Abstract

本文使用多层感知器(Multilayer Perceptron)实现了计算加法的程序,通过了洛谷(Luogu)的题目 P1001 A+B Problem。

1. Introduction

多层感知器(Multilayer Perceptron,MLP)是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出数据集上。2021年5月,Google Brain提出带有门控机制的改进型gMLP架构,通过控制层间信息流提升了模型性能。基于gMLP框架,研究者开发出ECgMLP模型,首次将卷积操作嵌入门控MLP结构中,结合了全局信息处理和局部特征提取的优势。该架构通过上下文感知的门控机制动态调整特征重要性,在高分辨率病理图像分析中展现出特定优势,应用于癌症检测领域。

:::align{right}

------百度百科

:::

MLP(Multilayer Perceptron,多层感知器)是一种前馈神经网络,即其没有任何反馈。它拥有一个输入层,若干个隐层和一个输出层。输入通过输入层,通过矩阵操作和激活函数流向输出层,得出最终结果。训练一般使用反向传播(Back Propagation,BP)实现。

注意到神经网络比较万能,我们考虑用它解决 A+B problem。

2. Time Complexity Analysis

我们使用经典的 MLP 实现,使用若干个 batch,每个 batch 训练若干轮。

我们得到一种 O ( a b c ) + O ( 1 ) = O ( a b c ) O(abc)+O(1)=O(abc) O(abc)+O(1)=O(abc) 的算法,其中 a a a 是 batch 的数量, b b b 是每个 batch 的训练次数,而 c c c 是每个 batch 的大小。常数也不算大,大概就是 a b c = 3 × 10 5 abc=3\times 10^5 abc=3×105 都要跑约 650 m s 650\mathrm{ms} 650ms 的常数。

3. Implementation

没有隐层,损失函数用的 MSE,激活函数用的 f ( x ) = x f(x)=x f(x)=x,一共 30 30 30 个 batch,每个 batch 训 10 10 10 次,每个 batch 1000 1000 1000 个数据,学习率 0.01 0.01 0.01。输入是 − 1 ∼ 1 -1\sim 1 −1∼1 的实数,然后求结果就是除以 10 9 10^9 109 然后扔给 MLP 然后把结果乘 10 9 10^9 109 再四舍五入(注意不能用 int(x+0.5) 因为 int 是向零取整)。

AC 记录。你会发现代码中间有一些 #include,这是因为我把多文件直接展开成单文件了。

代码长度也就 28.29 K B 28.29\mathrm{KB} 28.29KB( 843 843 843 行),总时间也就 6.57 s 6.57\mathrm{s} 6.57s(没有进行任何优化......纯暴力),内存达到了整整 1.03 M B 1.03\mathrm{MB} 1.03MB。

4. Conclusion

我们发现 MLP 可以用来实现 A+B Problem,拿下了 AC(Accepted,即通过)的成绩。

References

相关推荐
richard_yuu几秒前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
没落之王13 分钟前
易学使者郑氏正脉郑冰推演马航事件
大数据·人工智能·算法·机器学习·可用性测试
yuhulkjv33514 分钟前
Grok鸿蒙版导出word格式的终极解法:AI导出鸭如何重构AI内容到文档的最后一公里
人工智能·ai·word·harmonyos·ai导出鸭
阿部多瑞 ABU32 分钟前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
xiezhr33 分钟前
开源两天 9.5 万 Star!DeepSeek Harness 到底是个啥?小白安装到实战一篇讲透
ai·github·ai agent·deepseek·deepseek harness
郝学胜-神的一滴36 分钟前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发
比奇堡裤头村37 分钟前
统计学习方法——决策树
算法·决策树·学习方法
tachibana237 分钟前
怎么让大模型同时给意图节点打分
大数据·人工智能·ai·大模型·llm·prompt
灵晔君1 小时前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法
a1122998211 小时前
GEO工具选型指南:对照2026新标准看落地能力
ai·工具