跳到主要内容
研究论文

伴随代码设计模式

出版:2019年7月30日出版历史
跳过抽象节

摘要

在过去的几十年里,伴随方法已经成为科学计算工具箱的基本组成部分。否则,大规模参数敏感性分析、不确定性量化和非线性优化在计算上就变得不可行。科学和工程中相关问题的伴随数学模型的符号推导及其实现与底层原始模型实现的一致性经常被证明是极具挑战性的。因此,可以观察到对算法伴随的兴趣增加。

伴随数值模拟程序的算法推导将面临的一些问题从泛函和数值分析转移到了计算机科学。它成为一项高度复杂的软件工程任务,需要软件分析、转换和优化方面的专业知识。尽管相当成熟的软件工具支持算法区分,但在针对非平凡的数值程序时,通常需要大量的用户干预。许多应用程序代码共享的大量模式导致重复的开发工作。本文介绍的伴随代码设计模式旨在通过从软件工程的角度改进形式化来减少这个问题。通过github提供全功能参考实现。

工具书类

  1. T.Albring、M.Sagebaum和N.R.Gauger。2015年,在不断发展的空气动力学设计框架中开发一致的离散伴随解算器。第16届AIAA/ISSMO多学科分析与优化会议(AIAA'15)论文集。谷歌学者谷歌学者
  2. J.Barhen和D.Reister。2003年。基于使用自动微分产生的灵敏度的不确定性分析。在《国际计算科学及其应用会议论文集》(ICCSA'03)(计算机科学讲义)中,V.Kumar、M.Gavrilova、C.Tan和P.L'Ecuyer(编辑),第2668卷。柏林施普林格,70-77。谷歌学者谷歌学者数字图书馆数字图书馆
  3. A.Baydin、B.Pearlmutter和A.Radul。2015.机器学习中的自动差异化:一项调查。CoRR abs/1502.05767(2015)。谷歌学者谷歌学者数字图书馆数字图书馆
  4. M.Beckers、V.Mosenkis和U.Naumann。2012.McCormick松弛次梯度的伴随模式计算。《算法微分的最新进展》(计算科学与工程讲义)。施普林格,103-113。谷歌学者谷歌学者
  5. B.Bell和J.Burke,2008年。隐函数和最优值的算法微分。《自动分化进展》,C.Bischof、M.Bücker、P.Hovland、U.Naumann和J.Utke(编辑)。施普林格,67-77。谷歌学者谷歌学者
  6. M.Berz、C.Bischof、G.Corliss和A.Griewank(编辑)。1996.计算微分:技术、应用和工具。宾夕法尼亚州费城SIAM。谷歌学者谷歌学者
  7. C.Bischof、M.Bücker、P.Hovland、U.Naumann和J.Utke(编辑)。2008年,《自动分化进展》。《计算科学与工程》讲义第64位。斯普林格出版社。谷歌学者谷歌学者数字图书馆数字图书馆
  8. C.Bischof、A.Carle、P.Khademi和A.Mauer。1996.ADIFOR 2.0:Fortran 77程序的自动区分。IEEE计算。科学。工程师。3, 3 (1996), 18--32.谷歌学者谷歌学者数字图书馆数字图书馆
  9. G.布赫。2004年,《面向对象的分析与设计及应用》(第三版)。Addison Wesley Longman Publishing Co.,Inc.,加利福尼亚州红木市。谷歌学者谷歌学者数字图书馆数字图书馆
  10. G.Booch、J.Rumbaugh和I.Jacobson。2005.统一建模语言用户指南(第二版)(Addison-Wesley对象技术系列)。Addison-Wesley Professional公司。谷歌学者谷歌学者数字图书馆数字图书馆
  11. M.Bücker、G.Corliss、P.Hovland、U.Naumann和B.Norris(编辑)。2006.自动区分:应用程序、理论和工具。《计算科学与工程》讲义第50名。斯普林格出版社。谷歌学者谷歌学者数字图书馆数字图书馆
  12. J.Bunch和J.Hopcroft。通过快速矩阵乘法进行三角分解和反演。数学。计算。28, 125 (1974), 231--236.谷歌学者谷歌学者交叉引用交叉引用
  13. J.汉堡。1939.说明湍流流体运动理论中出现的关系的数学示例。荷兰阿卡德米·范·韦滕斯查彭,阿夫德琳·纳图尔昆德2,17(1939),1-53。谷歌学者谷歌学者
  14. L.Capriotti和M.Giles。2012.算法区分:伴随希腊语变得简单。风险网(2012年)。谷歌学者谷歌学者
  15. B.克里斯蒂安森。1994年。反向累积和有吸引力的固定点。最佳方案。方法软件3,4(1994),311--326。谷歌学者谷歌学者交叉引用交叉引用
  16. G.Corliss、C.Faure、A.Griewank、L.Hascoöt和U.Naumann(编辑)。2002.算法的自动区分:从模拟到优化。斯普林格。谷歌学者谷歌学者数字图书馆数字图书馆
  17. M.Fagan和A.Carle。2005.通过使用配置文件驱动的检查点来减少反向模式内存需求。未来发电机计算。系统。21, 8 (2005), 1380--1390.谷歌学者谷歌学者数字图书馆数字图书馆
  18. S.Forth、P.Hovland、E.Phipps、J.Utke和A.Walther(编辑)。2012.算法区分的最新进展。计算科学与工程讲义,第87卷。柏林施普林格。谷歌学者谷歌学者数字图书馆数字图书馆
  19. E.Gamma、R.Helm、R.Johnson和J.Vlissides。设计模式:可重用面向对象软件的元素。Addison-Wesley Longman出版社,马萨诸塞州波士顿。谷歌学者谷歌学者数字图书馆数字图书馆
  20. A.Gebremedhin、F.Manne和A.Pothen。你的雅各布是什么颜色的?用于计算导数的图形着色。SIAM Rev.47,4(2005),629--705。谷歌学者谷歌学者数字图书馆数字图书馆
  21. R.Giering和T.Kaminski。1998年。伴随码构造方法。ACM事务处理。数学。软件24,4(1998),437--474。谷歌学者谷歌学者数字图书馆数字图书馆
  22. J.C.吉尔伯特。1992.自动微分和迭代过程。最佳方案。方法软件1(1992),13-21。谷歌学者谷歌学者交叉引用交叉引用
  23. 迈克·B·贾尔斯。2008.收集正向和反向模式算法微分的矩阵导数结果。《自动分化进展》,C.Bischof、M.Bücker、P.Hovland、U.Naumann和J.Utke(编辑)。施普林格,35-44岁。谷歌学者谷歌学者
  24. F.Gremse、A.Hoefter、L.Razik、F.Kiessling和U.Naumann。2016.GPU加速伴随算法微分。计算。物理学。Commun公司。200 (2016), 300--311.谷歌学者谷歌学者交叉引用交叉引用
  25. A.灰谷。1992.在反向自动微分中实现时间和空间复杂性的对数增长。最佳方案。方法软件1(1992),35-54。谷歌学者谷歌学者交叉引用交叉引用
  26. A.灰谷。2013.关于稳定分段线性化和广义算法微分。最佳方案。方法软件28,6(2013),1139-1178。谷歌学者谷歌学者数字图书馆数字图书馆
  27. A.Griewank、C.Bischof、G.Corliss、A.Carle和K.Williamson。1993。迭代方程求解器的导数收敛性。最佳方案。方法软件2(1993),321--355。谷歌学者谷歌学者交叉引用交叉引用
  28. A.Griewank和G.Corliss(编辑)。1991年,《算法的自动区分:理论、实现和应用》。宾夕法尼亚州费城SIAM。谷歌学者谷歌学者
  29. 安德烈亚斯·格雷万克(Andreas Griewank)和克里斯蒂尔·福雷(Christèle Faure)。2002.状态方程定点迭代的简化函数、梯度和Hessians。数字。阿尔戈。30, 2 (2002), 113--139.谷歌学者谷歌学者交叉引用交叉引用
  30. A.Griewank、D.Juedes和J.Utke。1996.算法755:ADOL-C:用C/C++编写的算法自动区分包。ACM事务处理。数学。软件22,2(1996),131--167。谷歌学者谷歌学者数字图书馆数字图书馆
  31. A.Griewank和U.Naumann。2003.将雅可比矩阵累积为链式稀疏矩阵产品。数学。程序。95, 3 (2003), 555--571.谷歌学者谷歌学者交叉引用交叉引用
  32. A.Griewank和A.Walther。算法799:旋转:计算微分的反向或伴随模式的检查点实现。ACM事务处理。数学。软件26,1(2000年3月),19-45。谷歌学者谷歌学者数字图书馆数字图书馆
  33. A.Griewank和A.Walther。2002.关于基于伴随的拟Newton方法的约束优化。最佳方案。方法软件17(2002),869--889。谷歌学者谷歌学者交叉引用交叉引用
  34. A.Griewank和A.Walther。2008年。评估衍生品。算法微分原理与技术,Seocnd版。应用数学其他标题中的数字OT105。暹罗。谷歌学者谷歌学者数字图书馆数字图书馆
  35. L.Hascoöt、U.Naumann和V.Pascual。2005.反向模式自动区分中的To-be-recorded分析。未来发电机计算。系统。21 (2005), 1401--1417.谷歌学者谷歌学者数字图书馆数字图书馆
  36. L.Hascoöt和V.Pascual。2013.Tapenade自动区分工具:原理、模型和规范。ACM事务处理。数学。软件39,3(2013),20:1--20:43。谷歌学者谷歌学者数字图书馆数字图书馆
  37. L.Hascoöt、J.Utke和U.Naumann。2008年。通过删除地址计算来实现更便宜的连接。科学。程序。16, 1 (2008), 81--92.谷歌学者谷歌学者数字图书馆数字图书馆
  38. P.Heimbach、C.Hill和R.Giering,2005年。通过自动微分生成的平行MIT环流模型的有效精确伴随。未来发电机计算。系统。21, 8 (2005), 1356--1371.谷歌学者谷歌学者数字图书馆数字图书馆
  39. M.Hestenes和E.Stiefel。求解线性系统的共轭梯度法。J.Res.Nat.Bur.研究。标准42,6(1952年)。谷歌学者谷歌学者
  40. R.霍根。2014.使用C++中的表达式模板进行快速反向模式自动区分。ACM事务处理。数学。软件40,4(2014年6月),26:1--26:24。谷歌学者谷歌学者数字图书馆数字图书馆
  41. J.洛茨。2016.使用dco/c++生成伴随码的混合方法。博士论文。RWTH亚琛大学。谷歌学者谷歌学者
  42. U.诺曼。通过对偶计算图上的消去方法实现雅可比矩阵的最佳累加。数学。程序。99, 3 (2004), 399--421.谷歌学者谷歌学者数字图书馆数字图书馆
  43. 尤·诺曼。2009年DAG撤销为NP完成。J.离散算法。7 (2009), 402--410.谷歌学者谷歌学者数字图书馆数字图书馆
  44. 尤·诺曼。2012.区分计算机程序的艺术:算法区分导论。软件、环境和工具中的SE24。暹罗。谷歌学者谷歌学者数字图书馆数字图书馆
  45. U.Naumann和J.du Toit。2018.伴随算法微分工具支持计算金融中的典型数字模式。J.计算。《财务》第21、4期(2018年),第23至57页。谷歌学者谷歌学者交叉引用交叉引用
  46. U.Naumann、K.Leppkes和J.Lotz(编辑)。2014.dco/c++用户指南。Aachener Informatikbrichte的编号AIB-2014-03。RWTH亚琛大学。谷歌学者谷歌学者
  47. U.Naumann、J.Lotz、K.Leppkes和M.Towara。2015.数值方法的算法微分:非线性方程参数化系统的切线和伴随解算器。ACM事务处理。数学。软件41,4(2015),26。谷歌学者谷歌学者数字图书馆数字图书馆
  48. A.诺克和A.沃尔特。2007.Burgers方程最优控制的伴随概念。计算。最佳方案。申请。36, 1 (2007), 109--133.谷歌学者谷歌学者数字图书馆数字图书馆
  49. C.Noone、M.Torrilhon和A.Mitsos。2012.定日镜场优化:一种新的计算高效模型和仿生布局。太阳能86,2(2012),792--803。谷歌学者谷歌学者交叉引用交叉引用
  50. G.Ostrowski、Y.Volin和W.Borisov。1971.你将成为Berechnung von Ableitungen。Wissenschaftliche Zeitschrift der Technischen Hochschule für Chemie,Leuna-Merseburg 13(1971),382-384。谷歌学者谷歌学者
  51. M.Probst、M.Lülfesmann、M.Nicolai、M.Bücker、M.Behr和C.Bischof。2010.人工移植物最佳形状对流动参数的敏感性。计算。方法应用。机械。工程师。199,17-20(2010),997-1005。谷歌学者谷歌学者
  52. M.Sagebaum、T.Albring和N.R.Gauger。2018.在算法微分的反向模式下进行原值录制的表达式模板。最佳方案。方法软件33,4--6(2018),1207--1231。谷歌学者谷歌学者交叉引用交叉引用
  53. P.Stum和A.Walther。2008.优化脱机检查点的多阶段方法。SIAM科学计算杂志。SIAM J.科学。计算。31 (2008), 1946--1967.谷歌学者谷歌学者数字图书馆数字图书馆
  54. M.Towara、M.Schanen和U.Naumann。2015.MPI并行离散伴随OpenFOAM。Procedia计算。科学。51 (2015), 19--28.谷歌学者谷歌学者数字图书馆数字图书馆
  55. J.Utke、A.Lyons和U.Naumann。2006.在伴随计算中有效地反转程序内控制流。J.系统。软件79,9(2006),1280--1294。谷歌学者谷歌学者数字图书馆数字图书馆
  56. J.Utke、U.Naumann、M.Fagan、N.Tallent、M.Strout、P.Heimbach、C.Hill和C.Wunsch。OpenAD/F:一个用于自动区分Fortran代码的模块化开源工具。ACM事务处理。数学。软件34,4(2008年7月)。谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 伴随代码设计模式

        建议

        评论

        登录选项

        检查您是否可以通过登录凭据或您的机构访问本文。

        登录

        完全访问权限

        • 发布于

          数学软件上的封面图像ACM事务
          ACM数学软件汇刊 第45卷第3期
          2019年9月
          357页
          国际标准编号:0098-3500
          EISSN公司:1557-7295
          内政部:2014年10月14日/3349340
          期刊目录

          版权所有©2019 ACM

          如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许赊账提取。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

          出版商

          计算机协会

          美国纽约州纽约市

          出版历史

          • 出版:2019年7月30日
          • 认可的:2019年2月1日
          • 修订过的:2018年9月1日
          • 收到:2017年8月1日
          发布于汤姆斯第45卷第3期

          权限

          请求有关此文章的权限。

          请求权限

          检查更新

          限定符

          • 研究论文
          • 研究
          • 推荐

        PDF格式

        以PDF文件的形式查看或下载。

        PDF格式

        电子阅读器

        使用eReader联机查看。

        电子阅读器

        HTML格式

        以HTML格式查看本文。

        查看HTML格式