Продвинутый семинар : техники ускорения кода. Часть III - Динамическое программирование



Мы продолжим разбор техник ускорения и оптимизации кода в Wolfram Mathematica. На этом семинаре мы рассмотрим методы т.н. динамического программирования, в частности т.н. мемоизации. Эти методы имеют много важных практических применений, в частности в сложных задачах с рекурсивным перебором вариантов. Они позволяют существенно, а в ряде случаев кардинально улучшить скорость работы соответствующих алгоритмов, и решают одну из главных проблем сложных алгоритмов - т.н. проблему перекрывающихся подзадач. В Wolfram Mathematica, реализация этих техник может быть особенно краткой и элегантной за счет имеющихся средств языка.