Авторы Майкл Заргам и Джонатан Габлер

Обновление: теперь у нас открытый исходный код! На конференции TEGG в Берлине в августе 2019 года мы объявили о превращении cadCAD в проект с открытым исходным кодом. Присоединяйтесь к нашему сообществу на http://cadcad.org и http: //community.cadcad .org

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

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

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

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

cadCAD предлагает инженерам гибкость для описания сложных систем на любом уровне абстракции

Все модели делают некоторые аспекты системы более ясными за счет сокрытия других. Обученный инженер умеет определять характерные особенности системы для практического принятия решений и позволяет менее важным функциям размываться на заднем плане. Многие платформы моделирования лишают инженеров этой свободы, вынуждая их использовать парадигму моделирования, которая может не работать. cadCAD способен моделировать системы с несколькими уровнями абстракции от микроуровня Агентное моделирование (ABM) до макроуровня Системная динамика (SD), поддерживая дискретное, непрерывное и гибридное динамическое поведение. Это становится бесценным при интеграции киберфизических систем с социально-экономическими системами и финансовыми моделями сетей создания ценности. Мы можем начать с простых моделей и постепенно встраивать их в более сложные модели, сохраняя при этом документацию с явными допущениями во всех измерениях и слоях.

cadCAD может моделировать любую систему, которую формально можно охарактеризовать как обобщенное дифференциальное уравнение или дифференциальную игру (см. рисунок 1).

Рис. 1. Шаблон для моделирования дифференциальных игр, управляемых событиями, со сложной динамикой, такой как скрытые состояния, частные коммунальные услуги, частные сигналы и неопределенность

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

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

cadCAD легко интегрируется со стеком вычислений для науки о данных с открытым исходным кодом и обеспечивает непрерывное совершенствование с обратной связью из реального мира

cadCAD построен как часть научной экосистемы Python. Python - это язык программирования, который используется большинством специалистов по данным во всем мире и предоставляет обширные библиотеки научных вычислений и визуализации. Добавляя обобщенные динамические системы и моделирование дифференциальных игр на основе событий в научный стек Python с открытым исходным кодом, cadCAD открывает мощные сетевые эффекты для разработчиков систем.

Представьте, что вы берете результаты моделирования или эксперимента и сразу получаете возможность проверять наличие аномалий с помощью модели неконтролируемого машинного обучения k-средних от ScikitLearn; или с помощью TensorFlow для обучения рекуррентной нейронной сети (RNN) для управления поведением агента в той же симуляции, которую вы только что запустили; или использование NetworkX для управления игрой по формированию сети, состояние которой представляет собой растущее число узлов агентов с изменяющимися во времени краями (см. рисунок 2). Возможности безграничны.

Рисунок 2: Иллюстрация популярной игрушечной модели cadCAD, на которой несколько агентов с индивидуальными личностями (честными, жадными, щедрыми) соревнуются за шарики, визуализированная с помощью библиотеки NetworkX с открытым исходным кодом для изучения графиков и сетей. (щелкните здесь для динамической иллюстрации)

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

cadCAD уже работает

cadCAD сэкономил нашим исследовательским группам и командам по обслуживанию клиентов месяцы инженерного времени и на несколько порядков расширил наши возможности по проектированию и проверке сложных систем. Некоторые из самых опытных системных инженеров в области DLT присоединились к программе частного бета-тестирования cadCAD, и несколько известных проектов в настоящее время создают модели динамических систем с использованием этого инструмента, среди них:

  • Проект Commons Stack, возглавляемый командой Giveth.io, активно использует cadCAD для проектирования и проверки различных системных компонентов своей цифровой инфраструктуры для однорангового производства на основе общих ресурсов;
  • Protea и Molecule используют cadCAD для моделирования пороговых значений риска и вознаграждения для пользователей своей системы, устойчивости системы к нестабильности и защиты пользователей от событий типа черный лебедь;
  • Профессор вычислительных наук в ETH Zurich моделирует новую многомерную социально-экологическую финансовую систему, способствующую устойчивому поведению (Финансы 4.0);
  • Команда Freeelio использует cadCAD для моделирования киберфизических систем доступа к чистой энергии, для оптимизации воздействия на социальную, экологическую и экономическую отдачу с учетом предпочтений подписчика по риску / вознаграждению, а также для создания многомерной финансовой модели для определения управления. и токен-модель сети финансирования и развертывания для солнечных интеллектуальных микросетей по всему миру (многосторонняя рыночная модель);
  • Clovers использует cadCAD для моделирования своей внутриигровой экономики и проверки фундаментальных предположений о механизме вознаграждения по кривой привязки.

Чтобы получить представление о cadCAD в действии, посмотрите это видео.

cadCAD имеет обширную сеть бета-пользователей

Если вы системный инженер, специалист по данным и / или академик, заинтересованный в получении раннего доступа к программному обеспечению, вы можете подать заявку на участие в нашей программе закрытого бета-тестирования здесь. Он включает доступ к частному сообществу cadCAD Telegram, состоящему из более чем 50 отобранных вручную бета-пользователей, в котором команда BlockScience регулярно делится учебными пособиями и поддерживает пользователей на их пути к освоению cadCAD. Мы очень ценим любые отзывы пользователей, которые помогут принять решение относительно документации, руководств и будущих функций.

По общим вопросам о cadCAD, не стесняйтесь присылать нам письмо по адресу cadCAD [at] block.science.

О BlockScience

BlockScience - это исследовательская и инженерная фирма, специализирующаяся на создании цифровых двойников сложных адаптивных систем, позволяющих глубже понять их взаимозависимости, чтобы найти способы определения и предотвращения условий и пороговых значений для системного сбоя. Следите за нами в Medium или Twitter, чтобы оставаться на связи. Если вашему проекту требуется профессиональная поддержка в проектировании системы, напишите нам на media [at] block.science.