Решение сложных задач зачастую невозможно «в лоб», поэтому задачу разбивают на подзадачи. Это используется в динамическом программировании.
Динамическое программирование в математике и теории вычислительных систем – способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить4.
Рис. 2.16. Графическое изображение динамического программирования
Рассмотрим пример на динамическое программирование.
Пример 2.20. Утро Бэтмена
Как Бэтмену одеться?
Рис. 2.17. Утро Бэтмена
Можно предложить два пути (рис. 2.18).
Рис. 2.18. Два разных способа одевания утром5
2.7. Примеры
Пример 2.21. Лечение душевнобольных
В последнее время применяют новую систему лечения душевнобольных.
Раньше они лечились только в специальных лечебных заведениях. Сейчас все чаще лечение происходит на дому. Специальная группа врачей обучает домашних, как нужно общаться с больными. Эта группа работает не только с домочадцами, но и с окружением. Если человек работает, то с сотрудниками, с которыми больной связан. Если человек учится, то с коллективом, где он учится, и так далее.
В этом случае системно учтены все уровни иерархии, с которыми приходится сталкиваться больному.
Такое лечение показало не только значительно большую эффективность возвращения человека к нормальной жизни, но и стоит значительно дешевле, так как не затрачиваются все ресурсы специальных лечебных заведений.
Здесь практически используются почти все составляющие системного подхода.
– Иерархия систем – работа не только с системой (больным), но и с:
– надсистемой (его семья, с сотрудниками и всеми другими, с кем связан больной);
– подсистемой (особенности больного);
– окружающей средой (создаются специальные условия дома и на работе).
– Учтены все взаимосвязи системы с надсистемой и окружающей средой.
– Причинно-следственные связи. Что нужно делать каждому, с кем имеет контакт большой, как повлияет окружающая обстановка на него и т. д.
– Учет изменений и их влияний. Постоянно отслеживаются малейшие изменения в больном, и принимается соответствующее решение коррекции поведения окружающих, и, если это нужно, то происходит смена обстановки.
– Системный эффект. Все эти действия приводят к определенному результату – выздоравливанию больного и возращению его к нормальной жизни.
Пример 2.22. Ядерное оружие
Ядерное оружие является сдерживающим фактором в развязывании войны с применением этого вида вооружения. Руководители государств, начавшие ядерную войну, не могут сами быть в безопасности, как в войне с конвенциональным оружием.
Пример на причинно-следственные связи, учет изменений и их влияний.
Пример 2.23. Гласность
Развитие гласности делает почти невозможным сокрытие политиком существенных «грешков» – в странах демократии она заставляет политиков строго придерживаться моральных норм, не дает идти в политику людям, чем-то запятнанным, могущим подвергаться шантажу и т. п.
Пример на причинно-следственные связи, учет изменений и их влияний.
Пример 2.24. Сообщающиеся сосуды
Инженер В. Москалев утверждает, что закон о равенстве уровней жидкости в сообщающихся сосудах сформулирован неполно6:
«Основные причины, при наличии которых в сообщающихся сосудах будет существенно нарушаться равенство уровней:
1) Жидкость в одном из сосудов существенно холоднее (или теплее), чем в другом7;
2) В одном сосуде стенки смачиваются жидкостью, а в другом – нет, размеры же поперечных сечений сосудов невелики;
3) Каждый из сосудов в районе мениска жидкости представляет собой капилляр, причем диаметры их различны;
4) Система сообщающихся сосудов движется по кривой, причем ось мгновенного вращения находится на различных расстояниях от сосудов. Если сообщающиеся сосуды присоединены к трубопроводу, в котором жидкость движется, то уровни в них могут существенно отличаться из-за различных соотношений статического и динамического напоров, и еще целый ряд «если». Так коварно на практике выглядит применение, казалось бы, простейшего закона…»8
Пример на изменение стереотипов (психологической инерции) с помощью учета влияний на систему и получения новых знаний.
Пример 2.25. Колея железной дороги
Создание железнодорожного транспорта – типичный пример системного подхода.
Необходимо создавать не только локомотив (паровоз), но и колею. Одно без другого невозможно.
Далее будем говорить только о колее, а вернее, о ее ширине.
Создатель паровоза Джордж Стефенсон принял для первых английских железных дорог ширину колеи в 1435 мм (4 фут. 81/2 дюйм.), которая получила название стефенсоновской, или европейской колеи.
Первоначально он исходил из размера колеи конки 1372 мм (4 фут. 6 дюйм.), которая была выбрана из расчета средней ширины конского крупа. Однако на этой платформе ему никак не удавалось разместить котел и цилиндры с поршнями. Стефенсон увеличил ширину колеи только на два с половиной дюйма. Так появился и надолго, если не навсегда, закрепился «странный размер» – 4» 8½«». В метрической системе это 1435 мм.
В дальнейшем в разные годы в разных странах и для разных целей создавались колеи различной ширины – от 3000 мм в Германии в конце 1930-х годов до 1269 мм в Великобритании (Rudyard Lake Steam Railway).
Чем шире колея, тем более устойчив вагон, и тем больше груза при заданной высоте транспортного средства он может перевезти.
В США появилась колея в 5» или же 1524 мм. Эту ширину колеи перенес в Россию американский железнодорожный инженер Джордж Уистлер. Он полностью спроектировал двухколейную железную дорогу длиной 685 км. Им были спроектированы все необходимые сооружения и мосты. Таким образом появилась русская колея.
В процессе унификации ширины колеи не всегда принимают самую выгодную, с технической стороны, широкую колею. В Англии в 40-е годы XIX века отказались от колеи в 2140 мм, так как для прокладки новой колеи нужно было бы расширять насыпи и выемки, менять мосты, туннели и т. д. Поэтому в Англии, США и в Европе и победила колея шириной 1435 мм9.
Самостоятельно укажите, какие элементы системного мышления использованы в данном примере.
Пример 2.26. В такси (анекдот)
Приехал Чукча в Москву. Едет в такси по городу. Вдруг наперерез – старушка. Водитель – вправо, и старушка – вправо, водитель – влево, и старушка – влево. Еле-еле разминулись. Оглядывается и видит, старушка лежит на мостовой. Чукча говорит: