Благодарю тех, кто читал и оставлял комментарии к моему предыдущему офлайн-посту. Я продолжаю здесь, говоря более узко (теперь, когда интеллектуальный фон был изучен) о конкретных вопросах исследования, которыми я, вероятно, займусь в ближайшем будущем. Здесь я опишу два образа стратегических исследований, наиболее релевантных тому, чем я буду заниматься, — организации стратегического поведения в системах и организации стратегического поведения в распределенных системах.

Во-первых, я опишу понятия сложности, фикции и контроля — стратегическое поведение трудно воспроизвести, а совокупная проблема стратегического поведения проистекает из элементов конфликта, которые одновременно сложны в смысле организации компонентов стратегической иерархии. как справляться с трудностями, присущими разработке стратегии. Я полагаю, что поведенческая организация может быть способом изучения того, как эта трудная задача разлагается и организуется у людей и организаций. Далее я рассматриваю концепции компьютерного программирования и разработки программ, относящиеся к тому, как сложность и сложность решаются при разработке программ. Наконец, я описываю, как эти понятия могут трансформироваться в «образы» того, как изучать стратегию с помощью вычислительных методов.

I: Сложность, трения и контроль

Философ, программист, а иногда и историк Мануэль де Ланда использует понятия нестабильности, эмерджентности и сингулярности, чтобы говорить об эволюции военных действий с точки зрения вычислительных и сложных систем. С этой точки зрения искусство ведения войны заключается в комбинировании материалов и элементов для создания субстратов более высокого уровня. Представления об иерархической сложности повторяются на протяжении всей истории; объединение вместе различных форм организации и оборудования создает тактику, а организация тактического поведения создает стратегию. Понятие Троицы Клаузевица также вводит подобное понятие через идею состояния войны в любой момент времени как эмерджентного продукта нестабильности, вызванной взаимодействием страстей, попытками навязать рациональное руководство и контроль и игрой страстей. шанс на поле боя. Джон Бойд представил свою знаменитую петлю принятия решений как адаптивную систему, не слишком отличающуюся от концепции адаптивного поведения и контроля Джона Холланда (RIP) посредством эволюционных алгоритмов, основанных на популяции, и так далее и тому подобное.

Тем не менее, вывод всей этой литературы состоит в том, что организовать и контролировать целенаправленное поведение в требовательной среде непросто, особенно когда есть кто-то еще, кто будет активно противодействовать этому поведению и препятствовать ему. Таким образом, понятие трение пронизывает все формы конфликта. Клаузевицкое трение можно рассматривать в просторечии как воплощение высказывания Яна Малкольма жизнь находит выход из Парка Юрского периода:по сути, все, что идет не по плану. Барри Уоттс расширяет и разъясняет концепцию в соответствии с пятью общими правилами, которые он соотносит с нелинейной динамикой в ​​науке:

  1. Влияние опасности на способность ясно мыслить и эффективно действовать на войне.
  2. Воздействие на мысли и действия боевых требований к напряжению.
  3. Неопределенность и несовершенство информации, на которой явно основана война. действия на войне неизбежно базируются.
  4. Трение в узком смысле внутреннего сопротивления эффективному действию, возникающее из-за взаимодействия между многими людьми и машинами, составляющими собственные силы.
  5. Игра случая, удачи и зла, последствия которой комбатанты никогда не могут полностью предвидеть.

Другие источники трений, которые Уоттс добавляет к этому базовому списку, включают физические и политические ограничения на применение силы, непредсказуемость, возникающую в результате взаимодействия с силами противника, и несоответствие между целями и средствами в войне. Все они, если их сложить вместе, сводятся к возникающему понятию борьбы за осуществление контроля в стратегии — стратегическое лицо должно каким-то образом производить осмысленные и надлежащие действия, несмотря на все различные препятствия и проблемы, стоящие на пути к выполнению. так. В связи с этим возникает вопрос: как мы вообще способны действовать?

Я утверждаю, что существуют два образа того, что по существу является общей проблемой: организации стратегического поведения. Как люди и организации — в своих механизмах выбора стратегических действий — разлагают сложность и трудность стратегии? Во-первых, я проиллюстрирую проблему, исследуя, как справляются со сложностью дизайна (приемлемые для стратегов способы) в компьютерном программировании и разработке программного обеспечения.

II: Вычисления и управление

Учитывая, что все это теоретизирование направлено на моделирование на основе теории, давайте рассмотрим эту проблему с точки зрения нескольких концепций компьютерного программирования. Какие основные инструменты используют ученые-компьютерщики для разложения сложных инженерных программных систем? Их много, но особое значение для вычислительного моделирования стратегии имеют иерархия, модульность, связанность и непоследовательные вычисления.

Иерархия определяет отношения между системами и подсистемами, обеспечивая контроль высокого уровня над более низкими уровнями абстракции. Модульность позволяет инкапсулировать различные варианты поведения и проблемы в свои собственные уникальные замыкания. Как Гарольд Абельсон и Джеральд Джей Сассман отлично отметили в 1980-х годах, Lisp — язык программирования, использовавшийся во многих ранних исследованиях искусственного интеллекта и когнитивных наук — это язык, основанный на стратифицированном дизайне. Чтобы написать программу на Лиспе, программист может рекурсивно строить уровни программы из низкоуровневых примитивов, причем каждый уровень абстракции представляет собой низкоуровневый примитив более высокого уровня. Кроме того, поскольку идиоматические программы на Лиспе состоят из функций с минимальным постоянным состоянием и взаимодействием с другими компонентами, может быть достигнута функциональная модульность.

Ключевая связь между модульностью и иерархией заключается в понятии связи. Чтобы начать то, что будет расширенным объяснением, ведущим к другому понятию, возьмем понятие базового контроллера. Традиционный способ просмотра систем заключается в понятии преобразователя — он принимает входные данные и производит выходные данные. Формализм контроллера объекта является полезным способом иллюстрации этого:

Целью этой системы управления является поддержание эталонного значения состояния за счет минимизации ошибки между фактическим состоянием системы и желаемым состоянием. Конечно, это легче сказать, чем сделать. Насколько разные модули системы зависят от входов и выходов друг друга? Представьте, что у нас есть серия объектов, каждый из которых имеет переменные состояния, характеризующие некую критическую особенность объекта в некоторый момент времени и поведение, которое объект может выполнять.

В объектно-ориентированном программировании программист определяет классы как схемы, где каждый шаблон класса содержит стандартизированное поведение и переменную состояния. Однако после создания конкретного экземпляра класса его состояние зависит от того, что происходит с объектом-экземпляром после его создания. Во время выполнения программы можно создать два экземпляра одного и того же класса с разными состояниями в течение их времени жизни. Что касается обсуждения иерархии и модульности, это выявляет некоторые интересные проблемы. Предположим, что у нас есть контроллер верхнего уровня, который отдает команды набору объектов и использует обратную связь от этих объектов для принятия командных решений. Обратная связь хранится в переменной состояния каждого объекта. Однако тот факт, что переменная состояния каждого модуля может изменяться по значению в зависимости от собственной близорукой обратной связи, создает проблему обработки совокупных входных данных каждого объекта.

Однако это моделирует только случай, когда информация течет вверх от низкоуровневых модулей к контроллеру и внизот контроллера к модулям. Что, если мы предположим, что низкоуровневые модули также могут горизонтально изменять переменные состояния друг друга? Нетрудно представить ситуацию, в которой это имело бы место; предположим, мы программируем программу, в которой одному компоненту требуется информация, обработанная другим компонентом, чтобы действовать, прежде чем получить команду от контроллера высокого уровня?

Слабая связь между компонентами может показаться решением, но она создает проблемы координации и контроля. Например, рассмотрим так называемую проблему византийских генералов в распределенных системах.

Предположим, что распределенная система должна координировать свои действия, чтобы делать что-то ценное, а безопасная и надежная связь между компонентами затруднена. Система должна найти протокол для переговоров и прийти к соглашению о том, как выполнить коллективное действие. Другая проблема распределенных систем, проблема Обедающих философов, также вращается вокруг понятия согласия и координации между компонентами. «Если у нас есть группа философов, каждый из которых может есть только тогда, когда у него есть левая и правая вилка, и каждую вилку может держать только один философ, то как кто-то ест?

Конкретный аспект координации может касаться операций над общим ресурсом. Рассмотрим вопрос когерентности кеша.

В вычислениях позиционирование небольшого количества высокоскоростной, но дорогой памяти между процессором и более дешевой, но более медленной основной памятью может помочь ускорить вычисления. Если вы пишете код, в котором производительность критична, вы захотите использовать кеш любым возможным способом, так как кэш работает, сохраняя данные, которые программист предполагает повторно использовать позже. Однако при наличии нескольких кэшей, работающих с одним ресурсом, поддержание согласованности между тем, что хранится внутри различных кэшей, имеет решающее значение. Другой пример можно найти в проблеме синхронизации:

Предположим, что есть общий ресурс, который должны использовать несколько процессов, но не одновременно. Если программист не регулирует доступ к ресурсу, может произойти несколько вещей. Каждый процесс может «соперничать» за использование ресурса, и, таким образом, программы, которые полагаются на тщательное планирование и выбор времени доступа к ресурсам, будут давать неверные результаты. Другая проблема может возникнуть, когда процесс захватывает ресурс, лишая другие процессы, которым он нужен, возможности выполняться. Если существует приоритет, связанный с тем, когда и как процессы должны получать доступ к ресурсу, этот процесс с высоким приоритетом может быть прерван процессом с более низким приоритетом. Еще больше проблем может возникнуть, когда процесс проверяет, готов ли он к выполнению, и при этом вредит другим процессам, лишая их времени обработки.

Вы заметите, что предыдущий абзац вращался вокруг понятия непоследовательных вычислений. Еще одно выражение модульности заключается в разделении задач между различными единицами выполнения, которые не выполняются в чисто линейном порядке. Тем не менее, есть основное различие — хотя и туманное — между двумя средствами достижения этого: параллелизм и параллелизм:

Термин Параллелизм относится к методам ускорения работы программ за счет параллельного выполнения нескольких вычислений. Для этого требуется аппаратное обеспечение с несколькими процессорами. Во многих случаях подвычисления имеют одинаковую структуру, но это не обязательно. Графические вычисления на GPU — это параллелизм. Ключевая проблема параллелизма заключается в уменьшении зависимости данных, чтобы иметь возможность выполнять вычисления на независимых вычислительных устройствах с минимальной связью между ними. С этой целью может быть даже выгодно выполнять одни и те же вычисления дважды на разных устройствах.

Термин Параллелизм относится к методам, которые делают программу более удобной в использовании. Параллелизм может быть реализован и часто используется на отдельных процессорах, тем не менее он может выиграть от нескольких процессоров с точки зрения скорости. Если операционную систему называют многозадачной операционной системой, это синоним поддержки параллелизма. Если вы можете одновременно загружать несколько документов на вкладках браузера и по-прежнему можете открывать меню и выполнять больше действий, это параллелизм.

Другими родственными понятиями, которые отличаются от классически последовательных потоков управления, являются программы, управляемые событиями, в которых действия запускаются внешними событиями, такими как щелчки мышью или внутреннее упорядочение времени внутри программы, или реактивныепрограммы, которые расширить событийную модель. Возвращаясь к нашему контроллеру в начале этого раздела, независимо от того, является ли поведение контроллера синхронным или асинхронным, имеет большое значение:

Шины событий или ваши типичные события кликов на самом деле представляют собой асинхронный поток событий, в котором вы можете наблюдать и выполнять некоторые побочные эффекты. ….. Вы можете создавать потоки данных из чего угодно, а не только из событий щелчка и наведения. Потоки дешевы и вездесущи, что угодно может быть потоком: переменные, пользовательский ввод, свойства, кэши, структуры данных и т. д. Например, представьте, что ваша лента Twitter будет потоком данных таким же образом, как и события кликов. Вы можете слушать этот поток и реагировать соответствующим образом.

Почему все это имеет значение для стратегии, спросите вы? Как отмечалось выше, поведенческая организация стратегии — это метод уменьшения сложности и производства действий. Это также должно быть сделано в режиме реального времени, взаимодействуя с динамичной, частично наблюдаемой средой и другими действующими лицами, будучи в некотором смысле целеустремленным, а также реагируя на события, происходящие во время стратегического взаимодействия. Наконец, как отмечалось ранее, он должен разлагать и организовывать комплекс стратегических функций и моделей поведения таким образом, чтобы производить эффективные действия в мире. Один из способов взглянуть на это — проблемы дизайна программы, но многие из вышеупомянутых проблем повторяются за пределами компьютерной инженерии.

III: Образы стратегии: индивидуальный и коллективный стратегический расчет

Как в биологическом интеллекте, так и в множестве систем иерархия и модульность являются ключом к созданию сложного поведения. Связывание элементов системы важно во всем, от моделей динамики нейронов в вычислительной нейронауке до теорий сложных катастроф в социотехнических системах. Наконец, время и последовательность контроля и действий как индивидуалов, так и организаций также имеют решающее значение. Индивидуальные и коллективные стратегические вычисления включают в себя два различных образа, которые разделяют все эти переменные как основные элементы их поведенческой организации. Во-первых, вернемся к куску Выбор действий для интеллектуальных систем (Бром и Брайсон, 2006), который я цитировал в предыдущем посте:

Основной проблемой выбора действия является комбинаторная сложность. Поскольку все вычисления занимают и время, и место (в памяти), агенты не могут учитывать все варианты, доступные им в каждый момент времени. Следовательно, они должны быть предвзятыми и каким-то образом ограничивать их поиск. Для ИИ вопрос выбора действия заключается в следующем: как лучше всего ограничить этот поиск? Для биологии и этологии возникает вопрос: как различные виды животных ограничивают их поиски? Все ли животные используют одни и те же подходы? Почему они используют те, которые они делают?

Один фундаментальный вопрос, касающийся выбора действия, заключается в том, является ли он вообще проблемой для агента или же это просто описание эмерджентного свойства поведения разумного агента. Однако история интеллектуальных систем, как искусственных (Bryson, 2000), так и биологических (Prescott, 2007), свидетельствует о том, что для построения интеллектуальной системы требуется некий механизм выбора действия. Этот механизм может быть сильно распределенным (как в случае распределенных организмов, таких как колонии общественных насекомых или слизевики), или он может состоять из одного или нескольких модулей специального назначения [выделено мной].

Если позаимствовать художественный термин у Кеннета Вальца, вычислительные исследования в области стратегии имеют два образа — индивидуальные эвристики и восприятие и распределенные вычисления и контроль. Из-за характера того, что вычислительное моделирование может предложить в качестве устройства для построения теории стратегического поведения, его первоначальная цель должна заключаться в формализации и расширении знаний о природе стратегии как системы управления враждебными ситуациями. Эти две различные исследовательские программы связаны с несколькими идеями о том, как представлять стратегию в предыдущей записи.

Как отмечает Де Ланда, одним из ответов на общие проблемы трений на поле боя и сложность создания, организации и управления общевойсковыми системами на все более и более широких расстояниях была централизация принятия решений. Это позволяло на первый взгляд осуществлять более тонкий контроль за счет больших трудностей в принятии эффективных решений и ограничения местной инициативы. Другой крайностью является представление о мобильной армии как о распределенной системе с очень низкой степенью централизации, которая обеспечивает большую гибкость за счет непредсказуемости. Конечно, как заметили Брайсон и Бром, ни один механизм выбора распределенного действия не является полностью централизованным. Даже если все модули работают параллельно, для разрешения конфликтов между модулями, распределения ресурсов и определения последовательности их поведения требуется своего рода иерархия.

Однако централизованный контроль просто переместил тему распределения, модульности и последовательности в сознание условного репрезентативного агента, который заменял систему принятия решений в чрезмерно централизованных системах. Теория когнитивной науки о поточном познании предлагает аналогичный иерархический ираспределенный механизм для многозадачности человека — определенные человеческие задачи могут выполняться параллельно, если они не вызывают конфликт ресурсов. Точно так же гораздо более старая теория планов и структуры поведения предполагала, что чистая модель поведения стимул-реакция игнорирует потребность в промежуточном слое, который организует реакцию. Роботы, основанные на поведении, например, имеют механизмы арбитража, которые запрещают поведение на основе приоритета.

Таким образом, это дает нам два интересных, хотя в конечном счете, и расходящихся способа посмотреть, как интересующая сущность использует механизм выбора действий для создания и выполнения стратегий.

С одной стороны, у нас есть фокус, который занимал большую часть когнитивной науки 20-го века, искусственного интеллекта, варгейминга и моделей теории принятия решений, на (1) эвристике и восприятии репрезентативного агент или абстрактная центральная система (2) адаптивная обратная связь и контроль репрезентативного агента или абстрактной центральной системы и (3) упрощенные механизмы либо рационального поведения, либо компоненты, которые производят рациональное поведение в требовательной среде, относящейся к репрезентативному агенту или абстрактной центральной системе. система. Часто, как в случае с циклом НОРД Джона Бойда, разделительные линии между такими уровнями были размыты.

С другой стороны, у нас есть понятие выбора действий для генерации стратегий как процесса, вычисляемого распределенной системой. Это можно рассматривать как простой способ реализации замечания Колина Грея о том, что стратегия — это процесс диалога и переговоров. Такого рода работа была замечена в работе над многоагентными системами, коллективным познанием, биологией насекомых и поведением животных, организационной теорией и другими смежными областями исследования. Хотя может показаться заманчивым утверждать, что одно просто сводится к другому, это верно только в поверхностном смысле. Способ структурирования поведения сложного агента по сравнению со сложной системой отличается из-за способа представления модульности и иерархии.

Кому-то может понравиться та или иная система, лично я считаю, что нужны оба «образа». Работая над состязательными играми со сложными агентами и состязательными играми со сложными распределенными системами, мы можем получить представление о соответствующих частях головоломки.

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

Кроме того, предполагая, что каждый стратегический контекст представляет собой дискретное взаимодействие между двумя сложными агентами, мы можем пролить свет на более реалистичный (но сложный) случай расчета стратегии сложной организацией, участвующей в состязательной игре с другой сложной организацией. Если у организации есть все ресурсы и доступное командное и управляющее поведение сложных агентов в первом сценарии, стратегия — это метод распределения доступа к ресурсам и поведенческим ролям и их синхронизация во времени. Как и в более простом случае, мы можем смоделировать, как эти организации сходятся к поведенческой организации и конфигурациям с течением времени и в группе других организаций с их собственными конфигурациями.

Это объединило бы стандартную исследовательскую стратегию в вычислительных социальных науках — моделирование восходящего возникновения демографических тенденций в децентрализованной сети агентов — с упрощенными стратегическими формализмами (сложности которых будут разложены на поведенческие модули в одном агенте). или набор агентов, сотрудничающих вместе в организации) и обасложные агенты или сложные системы агентов как микроединицы, которые производят макроскопические результаты.

Помимо всех влияний и проблем, о которых я упоминаю в этом посте, на мою собственную работу повлияли три важных практических фактора: простые техники, используемые в программировании игрового ИИ, моделирование на основе возможностей и моделирование на основе индивидуальных агентов.

Самый простой способ представить поведение в игре с помощью вычислений — это наслоение созданного вручную поведения. Один из способов сделать это — использовать правила if-then или асинхронные триггеры. Другой способ сделать это заключается в конечных автоматах или деревьях поведения, которые упорядочивают организацию поведения и изменений состояния агента с течением времени. Наконец, еще одно понятие, которое было непосредственно плодотворно применено к сложным агентам, заключается в базовых реактивных планах, которые допускают ограниченную и биологически реалистичную форму планирования. Причина, по которой такие механизмы привлекательны для организации поведения агентов, заключается в том, что они легкие, а также позволяют использовать простые механизмы адаптации и обучения.

Следуя примеру моего коллеги Рассела Томаса, я хотел бы, чтобы каждый агент или система агентов находились в среде варгейма, которая могла бы похвастаться определенными аффордансами в отношении того, какие действия возможны. Собственная теория и метод Томаса вращается вокруг понятия агентов как совокупности способностей, которые изменяются с течением времени, и аффордансов, которые связывают агента с окружающей средой и определяют доступные действия и поведение. Хотя я не уверен, какую часть конкретной работы Томаса я буду использовать, его понимание аффордансов и схем совпадает с известными работами в области робототехники, основанной на поведении, и когнитивных наук, имеющих отношение к моему исследовательскому интересу.

Наконец, работа Джоанны Брайсон и ее студентов по агентному моделированию со сложными агентами является одной из движущих сил вычислительных элементов моей работы. В большинстве агентных моделей есть простые агенты, расположенные в средах, характеризующихся детерминизмом окружающей среды. Стратегия явно работает на нескольких уровнях абстракции — либо в случае одного агента, который обрабатывает их все, либо в случае нескольких агентов, которые должны выполнять действия при координации с другими элементами системы. Кроме того, сложность стратегии также смягчает предположение о простом сопоставлении ситуаций с изменениями состояния в детерминизме окружающей среды. Теории и архитектура Брайсона определяют увлекательную идею арбитража и контроля поведения, которая имеет широкое применение в социальном моделировании.

Вывод

Как видно, процесс моделирования, формирования и понимания стратегического поведения сложен. Эта сложность была решена с помощью двух различных «образов» стратегии — централизованной системы или репрезентативного агента и распределенной системы. Однако в обоих случаях возникают проблемы поведенческой организации, характеризующиеся иерархией, модульностью, связностью, а также синхронизацией и порядком вычислений. В настоящее время я думаю, что влияния (простые методы программирования для игровых и симуляционных агентов, архитектуры, основанные на аффордансе, и индивидуализированные модели, основанные на агентах), которые я перечислил, являются хорошей отправной точкой методологически для организации моих симуляций, но мне еще предстоит увидеть .