Моделирует поведение это что значит
Замер и моделирование поведения
Салют, это Даллакян. Сегодня я продолжу делиться с вами методологией дизайна опыта – BECX ©.
В прошлой статье я рассказал о первом этапе «Поведенческое профилирование». Будет полезно ознакомиться сначала с ней:
Но перед тем, как приступить к статье, хочу пригласить вас в телеграм-канал Человек и цифровая экономика, где для вас открыт первый урок курса «Поведенческий марафон», на которым изучают основы исследования и дизайна поведения клиентов.
После того, как мы поняли чье поведение мы хотим изменить, необходимо определиться, а что именно мы будем менять. Что из себя представляет его поведение пошагово. У поведения два главных элемента: фактор влияния и реакция, то есть действие. Начинаем с замера действий.
Цель этапа: объективизация и визуализация поведения человека.
1. Проведения глубинных интервью или этнографических исследований с целью фиксации поведения человека.
2. Формирование карты поведения по каждому сегменту.
На предыдущем шаге мы замерили поведение, чтобы сейчас определить конкретную точку, которую хотим изменить. Для этого мы определяем, что именно Человек делает не так или может быть вообще этого действия в его поведении нет.
1. Формулировка целей и задач изменения поведения и ожидаемых результатов
2. Нанесение задач изменения поведения на карту поведения человека
3. Оценка насколько текущие действия человека помогают ему добиться задачи.
4. Формирование списка точек, которые необходимо изменить, а также действий, которые необходимо выполнить для достижения результата.
Результат: Документ с набором точек в поведении человека, которые требуют изменения.
Модели поведения личности и стили общения
Наша модель поведения определяет как строятся и развиваются наши отношения с родственниками, окружающими людьми и миром в целом. Обратите внимание на то как мы ссоримся, миримся, устанавливаем контакты — все это обычно зависит от избранной нами модели общения, их может быть множество. И в то же время мы рассмотрим 3 глобальных модели поведения.
Модели общения и общие правила для эффективного поведения в разных ситуациях
Мы не одномерные: у каждого из нас в разные моменты жизни может преобладать то одна, то другая модель поведения и взаимодействия. Однако есть универсальные правила, которые в любой ситуации помогут создать вокруг себя зону приятного общения, или получения определённой выгоды.
Про неэффективные модели поведения подробнее на видео
Основные модели поведения на реальных примерах
Эгоцентрическая модель поведения
Идут годы, а Пэрис Хилтон по-прежнему одна. Просто не везет? Или характер избалованной светской львицы не предполагает тихого семейного счастья? О своих бывших Пэрис отзывается пренебрежительно. Спросите ее хоть о Нике Картере, солисте группы Backstreet Boys, — она сделает вид, что не понимает, о ком идет речь. Самые серьезные отношения были у Пэрис с Пэрисом Лацисом. Но свадьба расстроилась. Хилтон тогда заявила, что сама отменила церемонию: мол, карьера для нее важнее семьи. Но не исключено, что это родители жениха, греческие миллионеры, уговорили сына не связываться с красавицей-скандалисткой. А скандалов в жизни Пэрис не меньше, чем амурных похождений. То сядет за руль нетрезвой, то попадется на хранении наркотиков. Но кажется, ее это нисколько не огорчает: “Мне нравится делать то, что я захочу”. Главный ее талант — делать деньги на рекламе и продаже брендовой одежды, духов, сумок… А вот дружить Пэрис не умеет: у многих бывших приятельниц она увела бойфрендов. “Ведите себя так, словно на вашей голове сияет корона”, — следуя этому девизу, Пэрис нашла идеальный способ лишить себя общения с разумными людьми. Ну и что? Она к нему никогда и не стремилась…
Социоцентрическая модель поведения
Жизнь актрисы, по ее признанию, протекает в неустанном поиске гармонии. И кажется, ей удается существовать в мире с собой, близкими людьми и профессией. Она и не мечтала о Голливуде, снималась в родном французском кино, просто работала, “и однажды дверь открылась”. Теперь Котияр — обладательница “Оскара” за роль Эдит Пиаф. Она органична и в комедиях Вуди Аллена, и в американских триллерах. Но Марион мечтает о собственном фильме. Ее гражданский муж, актер Гийом Кане, во всем поддерживает супругу. И хотя у пары уже растет сын, идти под венец актеры не спешат. Возможно, Гийом еще помнит о неудачном первом браке (хотя с актрисой Дианой Крюгер до сих пор поддерживает добрые отношения, а Марион мудро этому не препятствует). А может, их чувства просто не вмещаются в установленные социумом нормы? Главное для них — любовь, и на прогулках они по-прежнему держатся за руки. Любви Котияр хватает на весь мир: она убежденный борец за экологию. В перерыве между съемками может запросто отправиться в Конго, чтобы принять участие в борьбе с вырубкой леса. “Жизнь — непростая штука, но я за то, чтобы не усложнять ее лишний раз. И быть в согласии со всеми, кого любишь”.
Альтероцентрическая модель поведения
Она так трогательно рассказывала, как еще девочкой влюбилась в тогда уже знаменитого актера Тома Круза. Тот экстравагантно признавался в безумной страсти к старлетке (Кэти моложе Тома на 17 лет). Это позже появились слухи, что новую жену подобрали для Круза сайентологи. Супруг с первого дня регламентировал ее жизнь: диктовал, что есть, что носить, с кем дружить, в каких фильмах сниматься, но Кэти видела в этом лишь заботу и во всем потакала Тому. Время показало, что тотальный контроль и диктат, по сути, просто тирания. Кэти все чаще чувствовала себя девочкой-подростком под неусыпным надзором строгого отца. Ее друзья были откровеннее: “Кэти больше не существует”, “Она стала тенью Круза”. Напряжение нарастало. Но Холмс не осмеливалась открыто перечить мужу. Жизнь актрисы, по ее признанию, протекает в неустанном поиске гармонии. И кажется, ей удается существовать в мире с собой, близкими людьми и профессией. Она и не мечтала о Голливуде, снималась в родном французском кино, просто работала, “и однажды дверь открылась”. Теперь Котияр — обладательница “Оскара” за роль Эдит Пиаф. Она органична и в комедиях Вуди Аллена, и в американских триллерах. Но Марион мечтает о собственном фильме. Ее гражданский муж, актер Гийом Кане, во всем поддерживает супругу. И хотя у пары уже растет сын, идти под венец актеры не спешат. Возможно, Гийом еще помнит о неудачном первом браке (хотя с актрисой Дианой Крюгер до сих пор поддерживает добрые отношения, а Марион мудро этому не препятствует). А может, их чувства просто не вмещаются в установленные социумом нормы? Главное для них — любовь, и на прогулках они по-прежнему держатся за руки. Любви Котияр хватает на весь мир: она убежденный борец за экологию. В перерыве между съемками может запросто отправиться в Конго, чтобы принять участие в борьбе с вырубкой леса. “Жизнь — непростая штука, но я за то, чтобы не усложнять ее лишний раз. И быть в согласии со всеми, кого любишь”. И терпела. Лишь когда подросла их дочь, Сури, и Круз решил отдать малышку в сайентологическую школу, Кэти твердо решила: втянуть дочку в секту не позволит — и почти через 6 лет брака… сбежала. После развода ей не досталось ни цента. Зато она вернула себе свободу и право жить собственной жизнью.
3 проблемы в моделях общения между людьми
Конфликтность и ранимость. Это особенности слабой личности. Когда и знакомства есть, и общение. Но его омрачают частые обиды, ссоры, выяснения. Тот, кого считаешь хорошим знакомым, ни с того ни с сего вдруг перестает общаться.
Торопить и подгонять.“Сколько можно примерять? Бери и покупай!”, “Я уже час тебя жду, а ты еще не вышла из дома”. Такие ситуации всегда неприятны. Они вызывают мысли, что вашими интересами пренебрегают. А еще бессознательное раздражение от разницы в темпераментах. Тот, кто медленнее, не может стать быстрее. Поэтому тот, кто быстрее, должен просто найти себе занятие на время ожидания. Иначе ссор не миновать.
Признаваться в своих чувствах слишком прямо. “Ты моя самая близкая подруга”, “Такое чувство, что мы родные”. Некоторые люди любят говорить об отношениях — это дает им чувство стабильности. Однако, чем ближе отношения, тем выше ожидания. Требовательность появляется даже в мелочах. Поводов для придирок и распрей становится больше! При этом здорово проявлять свои побуждения для искренних и стабильных отношений, но лучше это показывать своими действиями и поведением в целом.
В любом случае нужно проявлять гибкость ума для того чтобы стремиться к счастью и приносить больше пользы окружающим и себе. Поэтому модели поведения лишь минимально показывают многогранность личности и открывают путь для перемен. Развивайте ум и стремитесь к тому, чтобы стать идеалом в своем понимании, а не равняться на других в поиске одобрения.
Моделирование потребительского поведения: подходы к анализу, преимущества и недостатки
Вы будете перенаправлены на Автор24
Основы моделирования потребительского поведения
Модель – это упрощенное математическое, графическое или логическое описание какого-либо объекта, в котором отражаются его наиболее значимые свойства.
Метод моделирования используется в различных науках, включая маркетинг. В системе маркетинга моделированию могут подвергаться различные процессы, однако чаще всего речь идет о моделировании потребительского поведения. Потребительское поведение, в свою очередь отражает то, каким образом ведут себя потенциальные покупатели, совершая свой потребительский выбор в условиях рынка.
Под моделью потребительского поведения следует понимать некий условный образ потребителя, который создается с целью изучения его поведения на рынке и выработки наиболее подходящих маркетинговых действий компании с применением определенных маркетинговых инструментов. К числу последних могут быть отнесены ценообразование, товарное предложение, реклама, брендинг, стимулирование и пр.
Потребители во всем их многообразии являются довольно сложной социально-психологической системой, обладающей индивидуальными и психологическими особенностями каждого отдельно взятого индивида. В настоящее время в системе маркетинга существует достаточно много различных методик моделирования поведения потребителей, однако, ни одна из них не может однозначно объяснить и/или предугадать действия потребителей в реальных рыночных условиях. Таким образом, справедливо говорить лишь об обобщенных характеристиках потребительских действий, находящих свое отражение в соответствующих моделях.
Сам по себе процесс моделирования потребительского поведения в наиболее общем виде состоит из нескольких этапов:
В общем виде моделирование потребительского поведения можно представить в виде целостного сочетания как физиологических потребностей человека, так и психологических и социальных особенности личности (рисунок 1).
Готовые работы на аналогичную тему
Рисунок 1. Моделирование поведения потребителей в условиях рынка. Автор24 — интернет-биржа студенческих работ
Все множество существующих на сегодняшний день вариаций построения моделей потребительского поведения условно можно разделить на несколько основных подходов. Рассмотрим их более подробно.
Ключевые подходы к анализу и моделированию потребительского поведения
В настоящее время эксперты выделяют порядка трех основных подходов к моделированию потребительского поведения. Ими являются:
Каждый из них имеет свою специфику, особенности, преимущества и недостатки.
Экономический подход к моделированию рыночного поведения потребителей предполагает, что покупатели рациональны в своих действиях и, совершая потребительский выбор, руководствуются известным всем правилом «максимизации полезности». При этом в качестве основных факторов, оказывающих влияние на потребительское поведение, выступают уровень отпускных цен на товары и услуги с одной стороны, и уровень доходов самих потребителей – с другой стороны.
Согласно экономическому подходу покупатели безразличны к выбору и сочетанию товаров, которые обладают одинаковой полезностью. Соответственно, отказ от одного продукта может быть компенсирован за счет его замещения другим продуктом в большем количестве. В настоящее время имеется много различных вариантов количественного сочетания товаров, которые были бы приемлемы для потребителя.
В рамках социологического подхода к моделированию потребительского поведения первостепенная роль отводится той общественной среде, к которой принадлежат или хотят принадлежать потребители. Особое внимание в рамках данного подхода отводится влиянию социокультурных факторов на поведение покупателей в условиях рынка.
Приверженцы социологического подхода считают, моделируя потребительское поведение, обращают внимание не только лишь на цену и полезность товара или услуги, но и учитывают ценностные и культурные установки индивидов, статусные позиции личности и ее самоидентификацию в социально-классовой структуре. Сам же подход опирается на принципы преемственности и историзма.
Психологический подход к моделированию потребительского поведения основывается на предположении о том, что определяющую роль в совершении покупательского выбора играют внутренние качества самих потребителей. При оценке влияния на потребительское поведение внимание в данном случае уделяется психологическим особенностям личности, опыту и типу личности потребителя. Таким образом, определяющую роль в моделировании играют внутренние качества потребителей.
Преимущества и недостатки основных подходов к моделированию потребительского поведения
Каждый из выше описанных подходов к моделированию рыночного поведения покупателей имеет свои сильные и слабые стороны. Так, например, ценность экономического подхода заключается в рациональной аргументации, основанной на здравом смысле. В то же время, следует помнить, что он нередко не оправдывает себя на современных рынках, и, следовательно, не всегда может объяснить поведение покупателей.
Социологический подход, опираясь на изучение потребительского поведения в контексте их места в социальной структуре общества, дает возможность управлять социальным взаимодействием. Его главным преимуществом считается возможность анализа взаимообусловленности потребительского поведения и социальных отношений в общества в конкретных экономико-социальных условиях, чего не может обеспечить экономический подход. Недостатком данного подхода можно считать высокую степень социозависмости.
Неоспоримым преимуществом психологического подхода к моделированию поведения потребителей выступает его способность учитывать иррациональную сторону человеческого поведения и в определенной степенью управлять ею. Его главным недостатком можно считать условную субъективность.
СОДЕРЖАНИЕ
История
Модели деятельности человека
Индивидуальные модели различаются по своему происхождению, но имеют общее применение и использование для решения проблем с точки зрения человеческого фактора. Это могут быть модели продуктов деятельности человека (например, модель, которая дает те же результаты решений, что и люди-операторы), процессы, участвующие в деятельности человека (например, модель, имитирующая процессы, используемые для принятия решений), или и то, и другое. Обычно они относятся к одной из трех областей: восприятие и распределение внимания, управление и контроль или познание и память; хотя модели других областей, таких как эмоции, мотивация и социальные / групповые процессы, продолжают расти, набирая обороты в рамках дисциплины. Интегрированные модели также приобретают все большее значение . Антропометрические и биомеханические модели также являются важнейшими инструментами человеческого фактора в исследованиях и на практике и используются вместе с другими моделями деятельности человека, но имеют почти полностью отдельную интеллектуальную историю, поскольку индивидуально больше связаны со статическими физическими качествами, чем процессами или взаимодействиями.
Эти модели применимы во многих отраслях и областях, включая военную, авиационную, ядерную, автомобильную, космические, производственные, пользовательский интерфейс / дизайн пользовательского интерфейса (UX / UI) и т. Д., И были использованы для моделирования взаимодействия человека с системой. как простые, так и сложные.
Категории моделей
Командование и контроль
Модели поведения человека в Command & Control описывают продукты поведения оператора на выходе и часто также являются моделями ловкости при взаимодействии с определенными задачами.
Закон Хика-Хаймана
Указывая
Теория ручного управления
Сложные двигательные задачи, например, выполняемые музыкантами и спортсменами, плохо моделируются из-за их сложности. Однако поведение человека по отслеживанию цели является одной сложной двигательной задачей, которая является примером успешного HPM.
История теории ручного управления обширна и восходит к 1800-м годам в отношении управления водяными часами. Однако в 1940-х годах, когда во время Второй мировой войны были изобретены сервомеханизмы, были проведены обширные исследования в области непрерывного управления и стабилизации современных систем, таких как радиолокационные антенны, орудийные башни и корабли / самолеты с помощью сигналов управления с обратной связью.
Исходя из этого, была разработана модель оптимального управления (Pew & Baron, 1978), чтобы моделировать способность человека-оператора усваивать динамику системы и минимизировать целевые функции, такие как среднеквадратичная ошибка (RMS) от цели. Модель оптимального управления также распознает шум в способности оператора наблюдать сигнал ошибки и подтверждает наличие шума в выходной системе двигателя человека.
Однако технический прогресс и последующая автоматизация уменьшили необходимость и желание ручного управления системами. Человеческий контроль над сложными системами теперь часто носит надзорный характер над данной системой, и как человеческий фактор, так и HPM перешли от исследований перцептивно-моторных задач к когнитивным аспектам деятельности человека.
Внимание и восприятие
Теория обнаружения сигналов (SDT)
Визуальный поиск
Визуальная выборка
Визуальная дискриминация
Восприятие глубины
Качественный пример HPM включает модель восприятия глубины Каттинга и Виштона (1995), которая показывает, что сигналы восприятия глубины более эффективны на различных расстояниях.
Нагрузка
Хорри и Викенс (2003) рассматривают вопросы: в какой степени второстепенная задача будет влиять на ходовые качества и зависит ли это от характера вождения и от интерфейса, представленного во второй задаче? Используя модель, основанную на теории множественных ресурсов (Wickens, 2002, 2008; Navon & Gopher, 1979), которая предполагает, что существует несколько локусов для взаимодействия нескольких задач (этапы обработки, коды обработки и модальности ), исследователи предполагают, что межзадачное взаимодействие возрастает пропорционально тому, насколько обе задачи используют одни и те же ресурсы в пределах заданного измерения: визуальное представление задачи чтения должно больше мешать вождению, чем слуховое представление, потому что само вождение предъявляет более высокие требования к визуальная модальность, чем слуховая.
Хотя теория множественных ресурсов является наиболее известной моделью рабочей нагрузки в области человеческого фактора, она часто представлена качественно. Подробные вычислительные реализации являются лучшей альтернативой для применения в методах HPM, включая модель Хорри и Виккенса (2003), которая является достаточно общей для применения во многих областях. Интегрированные подходы, такие как моделирование сети задач, также становятся все более распространенными в литературе.
Познание и память
Обычные когнитивные навыки
Одна из областей памяти и познания касается моделирования обычных когнитивных навыков; когда оператор имеет правильные знания о том, как выполнять задачу, и ему просто необходимо выполнить эти знания. Это широко применимо, поскольку многие операторы достаточно опытны, чтобы их процедуры стали рутинными. Семейство моделей деятельности человека GOMS (цели, операторы, методы и правила выбора), популяризированное и хорошо определенное исследователями в данной области (Card et al., 1983; John & Kieras, 1996a, 1996b), первоначально применялось к пользователям моделей. компьютерных интерфейсов, но с тех пор были распространены на другие области. Это полезные инструменты HPM, подходящие для множества различных задач и масштабов анализа, но ограниченные в том, что касается анализа ошибок пользователя (см. Wood & Kieras, 2002, о попытке расширить GOMS для обработки ошибок).
Простейшей формой модели GOMS является модель уровня нажатия клавиш (KLM), в которой перечислены все физические действия (например, нажатия клавиш, щелчки мышью), также называемые операциями, которые пользователь должен выполнить для выполнения заданной задачи. Мысленные операции (например, поиск объекта на экране) дополняют это с помощью простого набора правил. У каждой операции есть время, связанное с ней (например, 280 мс для нажатия клавиши), а общее время для задачи оценивается путем сложения времени операции. Затем можно сравнить эффективность двух процедур, используя их предполагаемое расчетное время выполнения. Хотя эта форма модели является весьма приблизительной (многие допущения принимаются на свободу), она все еще используется сегодня (например, бортовые информационные системы и мобильные телефоны).
Существуют подробные версии GOMS, в том числе:
Принимать решение
Осведомленность о ситуации (SA)
Модели SA варьируются от описательных (Endsley, 1995) до вычислительных (Shively et al., 1997). Наиболее полезной моделью в HPM является модель McCarley et al. (2002), известная как модель A-SA (Attention / Situation Awareness). Он включает в себя два полунезависимых компонента: модуль восприятия / внимания и когнитивный модуль обновления SA. Модель P / A этой модели A-SA основана на теории визуального внимания. (Bundesen, 1990) (см. McCarley et al., 2002).
Интегрированные модели
Моделирование сети задач
Термин « сетевая модель» относится к процедуре моделирования, включающей моделирование методом Монте-Карло, а не к конкретной модели. Несмотря на то, что структура моделирования является атеоретической, качество моделей, построенных с ее помощью, не уступает качеству теорий и данных, используемых для их создания.
Когнитивные архитектуры
Модель человеческого процессора модели сети очередей использовалась для прогнозирования того, как водители воспринимают рабочую скорость и объявленное ограничение скорости, делают выбор скорости и выполняют определенную рабочую скорость. Модель была чувствительной (средний d ‘был 2,1) и точной (средняя точность тестирования была более 86%), чтобы предсказать большинство непреднамеренных превышений скорости.
ACT-R использовался для моделирования самых разных явлений. Он состоит из нескольких модулей, каждый из которых моделирует различные аспекты человеческой системы. Модули связаны с определенными областями мозга, и ACT-R, таким образом, успешно предсказал нейронную активность в некоторых частях этих областей. Каждая модель, по сути, представляет собой теорию работы этой части общей системы, полученную из исследовательской литературы в этой области. Например, система декларативной памяти в ACT-R основана на серии уравнений, учитывающих частоту и новизну, и которые включают байсовские понятия вероятности потребности в данном контексте, а также включают уравнения для обучения, а также производительности. Некоторые модули имеют более высокую точность, чем другие. Однако модуль руководства включает закон Фитта и другие простые принципы работы, но не так подробен, как модель теории оптимального управления (пока что). Однако существует мнение, что каждый из этих модулей требует строгой эмпирической проверки. Это одновременно и преимущество, и ограничение для ACT-R, поскольку еще предстоит проделать большую работу по интеграции когнитивных, перцептивных и моторных компонентов, но этот процесс многообещающий (Byrne, 2007; Foyle and Hooey, 2008 ; Pew & Mavor, 1998).
Групповое поведение
Моделирование работы команды / экипажа
GOMS использовался для моделирования как сложных командных задач (Kieras & Santoro, 2004), так и группового принятия решений (Sorkin, Hays, & West, 2001).
Подходы к моделированию
Модели / подходы компьютерного моделирования
4. Моделирование поведения
4.1. Модели поведения
При создании программной системы недостаточно ответить на вопросы что делает система? (глава 2) и из чего она состоит? (глава 3) — требуется ответить на вопрос как работает система?. Ответ на этот вопрос дает модель поведения. Поведение реальной программы целиком и полностью определяется ее кодом — как программа составлена, так она и выполняется (с точностью до сбоев) — «от себя» компьютер ничего не придумывает. Но программа — это просто запись алгоритма. Таким образом, мы приходим к следующему определению.
Модель поведения (behavior model) ‒ это описание алгоритма работы системы.
Существует множество способов описания алгоритмов, каждый из них имеет свои достоинства и недостатки, и предназначен для применения в различных ситуациях. Например, при описании алгоритмов, которые предназначены для выполнения компьютером, используются языки программирования, но для описания алгоритмов, выполняемых человеком, языки программирования неудобны и применяются другие способы.
Средства моделирования поведения в UML, ввиду разнообразия областей применения языка, должны удовлетворять набору различных и частично противоречивых требований. Перечислим некоторые из них.
∇ Мы тоже по ходу дела стараемся отмечать слабые, по нашему мнению, конструкции UML.
Следует подчеркнуть, что средства моделирования поведения в UML не были изобретены вместе с UML — они появились намного раньше и были приспособлены для использования в UML, прежде всего за счет продуманности самого языка, в который изначально были введены средства для его расширения (см. параграф 1.8.4). Тем самым, эволюция средств описания поведения уже имеет место, и этот процесс, очевидно, будет продолжаться!
Описание средств моделирования поведения в UML мы начнем с небольшого отступления на тему одного из разделов дискретной математики — теории автоматов — который послужил теоретической основой средств моделирования поведения в UML.
4.1.1. Конечные автоматы
Конечным автоматом (Мили) называется совокупность пяти объектов:
∇ Мы надеемся, что конкретные примеры, приведенные в последующих параграфах этой главы, скрасят академический тон данного параграфа, может быть трудноватого для понимания при первом чтении.
Автоматное преобразование. Пусть задан автомат \(S\), некоторое состояние \(q\) из алфавита \(Q\) этого автомата и входное слово \(\alpha\) в алфавите \(A\). По этой информации однозначно определяется выходное слово \(\beta\) в алфавите \(B\). А именно, по состоянию \(q\) и первому символу слова \(\alpha\) с помощью функции выходов \(\lambda\) определяется первый символ слова \(\beta\) и с помощью функции переходов \(\delta\) определяется следующее состояние автомата. Затем по новому состоянию и второму символу входного слова \(\alpha\) определяется второй символ выходного слова \(\beta\) и следующее состояние. И так далее. Поскольку функции \(\lambda\) и \(\delta\) тотальны, автомат \(S\) и состояние \(q\) определяют некоторый алгоритм преобразования слов в алфавите \(A\) в слова в алфавите \(B\).
Преобразование слов в алфавите \(A\) в слова алфавите \(B\) с помощью автомата \(S\) называется автоматным преобразованием и обычно обозначается той же буквой \(S\), что и автомат.
Автоматные преобразования обладают рядом полезных свойств, в частности:
∇ Другими словами, автоматное преобразование является гомоморфизмом, «уважающим» конкатенацию.
Автоматные преобразования и родственные им конструкции используются очень часто при компьютерной обработке текстов, например, в регулярных выражениях.
Реактивные системы. Конечный автомат можно интерпретировать и другим образом, а именно, можно считать, что элементы множества \(A\) — это стимулы (события), а элементы множества \(B\) — это реакции (обработчики событий). В таком случае, если задан автомат \(S\) и некоторое состояние \(q\) этого автомата, то описано автоматное поведение, то есть последовательность (возможно, бесконечная) пар «стимул — реакция».
Такого рода описание оказывается очень полезным на практике. Например, подавляющее большинство реальных устройств дискретного управления прекрасно описываются конечными автоматами. Другим примером может служить графический интерфейс пользователя в обычных приложениях. Такого рода программные системы часто называют реактивными (reactive).
Машина Тьюринга. Одна из самых популярных моделей вычислимости — машина Тьюринга — фактически является расширением модели конечного автомата, в которой допускается чтение и запись информации в потенциально бесконечную память.
В настоящее время общепринятым является тезис Чёрча–Тьюринга — фундаментальное утверждение, высказанное Алонзо Чёрчем и Аланом Тьюрингом в середине 1930-х годов. В самой общей форме оно гласит, что любая интуитивно вычислимая функция может быть вычислена некоторой машиной Тьюринга, и таким образом, понятие машины Тьюринга равнообъемно понятию алгоритма.
∇ Подсказка для заинтригованного читателя: конечные автоматы не позволяют описать, например, такое поведение, которое может включать потенциально бесконечное число шагов, и при этом очередной шаг зависит от всех предшествующих шагов. Конечный автомат потому и называется конечным, что может «помнить» только конечное число шагов — не больше, чем число состояний в автомате. Машину Тьюринга «выручает» бесконечная лента — на ней можно запомнить все, что нужно.
Обычно при применении конечных автоматов используют некоторые дополнительные соглашения, которые не меняют сути дела и принимаются для удобства.
Во-первых, сразу выделяют одно состояние, которое считается начальным (обычно ему дают номер 0 или 1 ).
Автомат с выделенным начальным состоянием называется инициальным.
Инициальный автомат всегда начинает работу в одном и том же состоянии, поэтому специально это состояние указывать не нужно.
Во-вторых, можно рассмотреть случай, когда функция выходов \(\lambda\) имеет только один параметр — состояние — и выходной символ зависит только от состояния и не зависит от входного символа.
Автомат называется автоматом Мура, если функция выходов зависит только от состояния. В этом случае данная функция обычно обозначается \(\mu : Q \to B\) и называется функцией пометок.
Очевидно, что автомат Мура является частным случаем автомата Мили. Более того, нетрудно показать, что введением дополнительных состояний любой автомат Мили может быть преобразован в эквивалентный автомат Мура. Можно рассматривать и комбинированный вариант, когда определена как функция выходов, так и функция пометок, причем, может быть, частично.
В-третьих, иногда выделяют одно или несколько состояний, которые называются заключительными. Если автомат переходит в заключительное состояние, то работа автомата завершается — он больше не реагирует на события и не выдает выходных символов, хотя, быть может ещё остались необработанные входные символы. Заключительное состояние не является полноценным состоянием, поскольку для него не имеет смысла определять функции переходов и выходов, поэтому заключительное состояние считают псевдосостоянием.
Иногда используются еще два термина, связанные с состояниями. Состояние называется тупиковым, если автомат не может покинуть это состояние, то есть, не определены переходы, ведущие в другие состояния. Состояние называется недостижимым, если автомат не может попасть в это состояние, то есть, не определены переходы, ведущие в это состояние из других состояний.
Три перечисленных выше соглашения используются в UML. Однако этим не исчерпывается список возможных модификаций конечных автоматов. Мы перечислим некоторые, в том числе достаточно экстравагантные, хотя они и не применяются в UML.
∇ Распространен предрассудок, что конечные автоматы применяются только для синтаксического анализа. Это не так. Действительно, первые результаты и первые применения теории автоматов были получены именно в синтаксическом анализе. Но потом появились другие результаты и другие области применения.
Вторая модификация состоит в том, чтобы рассматривать сети взаимодействующих конечных автоматов. Идея состоит в том, чтобы из элементарных автоматов строить более сложные конструкции. Элементарными можно считать автоматы, имеющие одно состояние.
Автомат, имеющий одно состояние, называется комбинационным.
Ясно, что в комбинационном автомате функция переходов тривиальна, и фактически комбинационный автомат$nbsp;— это просто функция, которая сопоставляет входному символу выходной.
При построении сетей рассматриваются следующие основные типы соединения автоматов: параллельное (автоматы имеют общий вход), последовательное (выход одного автомата является входом другого) и петля обратной связи (выход одного автомата является входом этого же автомата). Использование «мгновенной» обратной связи (когда выходной символ является одновременно и входным) может приводить к логическим парадоксам, поэтому в обратную связь включают «задержку»: выходной символ является следующим входным символом. Довольно неожиданным может показаться следующий факт: любой конечный автомат ∇ можно представить сетью, состоящей только из комбинационных автоматов и задержек. Обоснование этого утверждения приведено на следующем рисунке, где фактически приведена сеть, которая является интерпретатором заданного конечного автомата \(S\). Здесь \(\lambda\) обозначает комбинационный автомат, вычисляющий функцию выходов автомата \(S\), \(\delta\) обозначает комбинационный автомат, вычисляющий функцию переходов автомата \(S\), а задержка на один такт обозначена буквой \(d\).
∇ Напомним, что исходя из определения, данного в начале этого параграфа, конечный автомат имеет конечное число состояний.
Рис. Сеть интерпретатора конечного автомата
Впрочем, верно и обратное утверждение: для любой сети можно построить эквивалентный конечный автомат.
∇ Эти модификации относятся к классу экстравагантных и редко реализуются на практике, возможно, потому, что к ним еще не привыкли.
Третья модификация, которую мы хотим обозначить, состоит в том, чтобы рассматривать переходы (и иногда выходы) не как однозначные функции состояний и входов, а как многозначные отношения.
Если отношение перехода \(\delta\) является многозначным, \(\delta : A \times Q \to 2^Q\), то автомат называется недетерминированным.
∇ Недетермированность часто путают со случайностью или неопределенностью, и пугаются этого слова. Напрасно. В данном контексте в недетерминированном поведении нет ничего случайного или неопределенного.
4.1.2. Применение автоматов
Количество рассмотренных (и детально исследованных!) вариаций на тему конечных автоматов весьма велико — их обзор не является предметом данной книги. Нас интересует, почему теория конечных автоматов была использована авторами UML в качестве средства моделирования поведения. По нашему мнению, основных причин три:
Теоретическая причина интереса к конечным автоматам и их модификациям заключается в следующем. Для всех универсальных способов задания алгоритмов (моделей вычислимости) справедлива теорема Райса: все нетривиальные свойства вычислимых функций алгоритмически неразрешимы. Поясним формулировку этой теоремы. Вычислимой называется функция, для которой существует алгоритм вычисления. Нетривиальным называется такое свойство функции, для которого известно, что существуют как функции, обладающие данным свойством, так и функции, им не обладающие. Массовая проблема называется алгоритмически неразрешимой, если не существует единого алгоритма ее решения для любых исходных данных. Например, «быть периодической» — нетривиальное свойство функции. Теорема Райса утверждает, что не существует такого алгоритма, который по записи алгоритма вычисления функции определял бы, периодическая эта функция или нет. В частности, алгоритмически неразрешимыми являются все интересные вопросы о свойствах алгоритмов, например:
Этот список можно продолжать неограниченно: первое слово в теореме Райса — «все». Значит ли это, что вообще все неразрешимо и про алгоритмы ничего нельзя узнать? Разумеется, нет. Если дана конкретная запись алгоритма, то путем ее индивидуального изучения, скорее всего, можно установить наличие или отсутствие нужных свойств. Речь идет о том, что невозможен единый метод, пригодный для всех случаев.
Обратите внимание, что теорема Райса справедлива в случае использования любой, но универсальной модели вычислимости (способа записи алгоритмов). Если же используется не универсальная модель вычислимости, то теорема Райса не имеет места. Другими словами, существуют подклассы алгоритмов, для которых некоторые важные свойства оказываются алгоритмически разрешимыми. Конечные автоматы являются одним из важнейших таких подклассов. С одной стороны, данный формализм оказывается достаточно богатым, чтобы выразить многие практически нужные алгоритмы (примеры см. ниже), с другой стороны, целый ряд свойств автоматов можно проверить автоматически, причем найдены весьма эффективные алгоритмы. В частности, проблемы эквивалентности и остановки для автоматов эффективно разрешимы. В случае использования универсального языка программирования мы не можем автоматически убедиться в правильности программы: нам остается только упорно тестировать ее в смутной надежде повысить свою уверенность в надежности программы. В случае же использования конечных автоматов многое можно сделать автоматически, надежно и математически строго — поэтому теория конечных автоматов столь интересна для разработки программных систем.
Историческая причина популярности конечных автоматов состоит в том, что данная техника развивается уже достаточно давно и теоретические результаты были с успехом использованы при решении многих практических задач. В частности, системы проектирования, спецификации и программирования, основанные на конечных автоматах и их модификациях, активно развиваются и применяются уже едва ли не полвека. Особенно часто конечные автоматы применяются в конкретных предметных областях, где можно обойтись без использования универсальных моделей вычислимости. В результате очень многие пользователи, инженеры и программисты хорошо знакомы с конечными автоматами и применяют их без затруднений. Мы не готовы дать исчерпывающий обзор предметных областей, где применяются конечные автоматы, и ограничимся одним достаточно показательным примером. В области телекоммуникаций уже более 15 лет активно применяется промышленный стандарт — язык спецификации и описания алгоритмов SDL (Specification and Description Language).
Еще одна историческая причина популярности конечных автоматов состоит в том, что разработано несколько вариантов нотации для записи конечных автоматов, которые оказались весьма наглядными и удобными. Оставляя в стороне формульную запись и другие математические приемы, приведем два способа описания конечных автоматов, которые с первого взгляда понятны буквально любому человеку.
Ниже приведена таблица соответствующего конечного автомата.
Табл. Таблица конечного автомата
0 | 1 | s | |
---|---|---|---|
начальное | копирование, 1 | перенос, 0 | начальное, s |
перенос | копирование, 1 | перенос, 0 | начальное, 1 |
копирование | копирование, 0 | копирование, 1 | начальное, s |
Второй способ — графический. Автомат изображается в виде диаграммы ориентированного графа, узлы которого соответствуют состояниям и помечены символами алфавита состояний, а дуги называются переходами и помечены символами входного и выходного алфавита следующим образом. Допустим, \(\delta(a_i, q_j)=q_u\), \(\lambda(a_i, q_j)=b_v\). Тогда проводится дуга из узла \(q_j\) в узел \(q_u\) и помечается символами \(a_i, b_v\). Такой граф называется диаграммой состояний-переходов. На следующем рисунке приведена диаграмма графа состояний-переходов для примера, заданного предыдущей таблицей.
Рис. Диаграмма состояний-переходов
Третья причина привлекательности конечных автоматов в качестве основного средства моделирования поведения — практическая. В некоторых типичных задачах программирования автоматы уже давно используются как главное средство. Мы опять уклонимся от исчерпывающего обзора, ограничившись одним примером. В задачах синтаксического разбора при трансляции и интерпретации языков программирования использование автоматов являются основным приемом. Само развитие теории конечных автоматов во многом шло под влиянием потребностей решения задач трансляции. К настоящему времени можно сказать, что эти задачи решены, и соответствующие алгоритмы разработаны и исследованы.
В процессе применения в программировании автоматная техника обогатилась рядом приемов, которые не совсем укладываются в исходную математическую модель, но очень удобны на практике. Например, помимо функций переходов и выходов, можно включить в описание автомата еще одну составляющую — процедуру реакции. Смысл добавления состоит в следующем: при выполнении перехода из одного состояния в другое вызывается соответствующая процедура реакции, которая выполняет еще какие-то действия (имеет побочный эффект, см. параграф 3.2.4), помимо вывода выходного символа и смены состояния. Если процедура реакции ничем не ограничена, например, может читать и писать в потенциально бесконечную память, то конечный автомат превращается, фактически, в универсальную модель вычислимости подобную машине Тьюринга. При этом, разумеется, утрачиваются теоретически привлекательные свойства разрешимости, однако программировать с помощью процедур реакции очень удобно. Разработаны и различные промежуточные варианты: например, если побочный эффект процедур реакции ограничен работой со стеком, то получается так называемый магазинный автомат. Магазинные автоматы позволяют запрограммировать существенно более широкий класс алгоритмов и в то же время сохраняют некоторые из важнейших теоретических преимуществ.
Мы закончим этот параграф небольшим примером из информационной системы отдела кадров.
Итак, сотрудник в организации, очевидно, может находиться в различных состояниях: вначале он является кандидатом, в результате выполнения операции приема на работу он становится штатным сотрудником. При переводе с одной должности на другую сотрудник остается в штате. И, наконец, сотрудник может быть уволен. Жизненный цикл сотрудника естественно описать конечным автоматом, например, в виде таблицы, в которой строки поименованы состояниями, столбцы — стимулами, а в ячейках выписаны процедура реакции и новое состояние.
Табл. Жизненный цикл сотрудника
Принять hire() | Перевести move() | Уволить fire() | |
---|---|---|---|
Кандидат Applicant | Принять(), В штате | Ошибка(), Кандидат | Ошибка(), Кандидат |
В штате Employed | Ошибка(), В штате | Перевести(), В штате | Уволить(), Уволен |
Уволен Unemployed | Принять(), В штате | Ошибка(), Уволен | Ошибка(), Уволен |
Если такая таблица кажется недостаточно информативной и наглядной, то эту информацию можно представить в форме диаграммы состояний-переходов. На следующем рисунке приведена соответствующая данному случаю диаграмма автомата в нотации UML.
Рис. Жизненный цикл сотрудника в ИС ОК
Обратите внимание, что диаграмма на данном рисунке содержит меньше информации по сравнению с соответствующей таблицей.
4.1.3. Сети Петри
Предыдущие два параграфа могут создать впечатление, что конечные автоматы — единственный теоретический механизм, который используется для моделирования поведения. Это не совсем так. Конечные автоматы и их многочисленные модификации действительно используются чаще всего, но есть и другие формализмы, которые также применяются на практике, в том числе и в UML.
Сеть Петри ‒ это общепринятый формализм, используемый при постановке и решении различных задач параллельных вычислений.
Сеть Петри является удобным формализмом для описания поведения, в особенности асинхронного, параллельного и недетерминированного. Рассмотрим, например, простую вычислительную систему (процессор), последовательно обрабатывающую задания, которые поступают во входную очередь. Когда процессор свободен и во входной очереди имеется задание, оно обрабатывается процессором, а затем выводится в выходную очередь. На следующем рисунке приведена сеть Петри, моделирующая эту систему. Если в условиях начальной маркировки, показанной слева, сработают переходы \(t_1, t_2, t_1, t_1\), то сеть будет иметь маркировку, показанную на рисунке справа. Обратите внимания, что срабатывание переходов \(t_1, t_1, t_2, t_1\) или \(t_1, t_1, t_1, t_2\) даст тот же самый результат, а срабатывание переходов \(t_2, t_1, t_1, t_1\) невозможно, потому что переход \(t_2\) не разрешен в начальной маркировке.
По сравнению с конечными автоматами сети Петри обладают рядом особенностей, которые объясняют их широкое применение для моделирования параллелизма. Прежде всего, сети Петри асинхронны — в них отсутствует понятие времени. Время срабатывания и относительный порядок срабатывания разрешенных переходов никак не указываются. Тем не менее, сама структура сети позволяет в некоторых случаях отвечать на важнейший вопрос: какими свойствами будет обладать маркировка, получаемая в результате произвольной последовательности срабатываний переходов. Например, нетрудно доказать, что позиция \(p_2\) никогда не будет иметь маркировку больше 1 (что, очевидно, имеет явный практический смысл — процессор может обрабатывать только одно задание). Далее, в сетях Петри очень наглядно и четко моделируется параллелизм (переходы, входные позиции которых не пересекаются, параллельны), конфликты (переходы, входные позиции которых пересекаются, конфликтуют), тупики (переходы, которые не разрешены в данной маркировке и всех достижимых из нее) и т. д. Наконец, теория сетей Петри за последние десятилетия была разработана достаточно глубоко и детально, чтобы давать ответы на многие трудные вопросы практического параллельного программирования.
Основной механизм сетей Петри дает повод упомянуть одну важную теоретическую идею, которая хотя и не образует отдельного формализма, но иногда бывает очень полезна для моделирования поведения как в UML, так и в других случаях. Заметим, что переход в сети Петри может сработать, если все его входные позиции не пусты — в них что-то есть. Никто снаружи «не подталкивает» переход к срабатыванию — переход «сам» определяет, что есть условия для его срабатывания.
∇ Еще нужно не забыть передать аргументы!
4.1.4. Средства моделирования поведения
В UML предусмотрено несколько различных средств для описания поведения. Выбор того или иного средства диктуется типом поведения, которое нужно описать.
Мы разделили все средства моделирования поведения в UML на четыре группы
Заметим, что полного взаимно-однозначного соответствия между выделенными группами и каноническими диаграммами UML не наблюдается. Действительно, если первые две группы средств однозначно отображаются диаграммами автомата и диаграммами деятельности, то для описания последовательности сообщений применяется несколько различных типов диаграмм, а описание параллельного поведения «размазано» по всем типам канонических диаграмм. Рассмотрим эти четыре группы средств в целом, «с высоты птичьего полета», не углубляясь пока в детали нотации и семантики.
Явное выделение состояний. При использовании объектно-ориентированного подхода, программная система представляет собой множество объектов, взаимодействующих друг с другом.
При этом возможна ситуация, когда поведение некоторых объектов разумно рассматривать в терминах их жизненного цикла, т.е. текущее поведение объекта определяется его историей.
Жизненный цикл (lifecycle) — последовательность изменений состояния объекта.
Для описания такого поведения используется конечный автомат, который изображается посредством диаграммы автомата. При этом состояния конечного автомата соответствуют возможным состояниям объекта, т. е. различным наборам значений атрибутов объекта, а переходы происходят в результате возникновения различных событий.
Диаграммы автомата можно использовать для описания жизненного цикла не только объектов — экземпляров отдельных классов, но и для более крупных конструкций, в частности, для всей модели приложения или, напротив, для гораздо более мелких элементов — отдельных операций.
Поток управления и поток данных. Надо отметить, что в любом поведении в той или иной мере присутствует поток управления, только не всегда он описывается явно.
Поток управления ‒ это последовательность выполнения операторов (команд) в программе.
Если программа представляет собой просто последовательность операторов (так называемая линейная программа), то операторы в программе выполняются по очереди в естественном порядке (от начала к концу). В этом случае поток управления просто совпадает с последовательностью операторов в программе. Однако обычно это не так.
Во-первых, на поток управления оказывают влияние различные управляющие конструкции: операторы перехода, условные операторы, операторы цикла и т.д.
Во-вторых, в большинстве практических систем программирования используется понятие подпрограммы: при выполнении оператора вызова подпрограммы выполнение операторов программы приостанавливается, управление передается в подпрограмму, т. е. в поток управления попадают операторы подпрограммы, а при выходе из подпрограммы возобновляется выполнение операторов программы. Аналогичная ситуация возникает при синхронном обмене сообщениями между взаимодействующими в программе объектами.
Если поток управления представляет собой последовательность элементарных шагов, требуемых для выполнения отдельного метода или реализации сложного варианта использования, то для его описания удобно использовать диаграммы деятельности.
Помимо потока управления в UML также используется поток данных.
Поток данных ‒ это описание связи выходных результатов одних действий с входными аргументами других действий.
К сожалению, средства описания потока данных в UML 1 достаточно скудны. Прежде всего, это так называемые объекты в состоянии (см. параграф 4.3.2 и параграф 4.3.4), которые могут использоваться на диаграммах деятельности и диаграммах взаимодействия. В UML 2 ситуация несколько улучшилась и потоки данных стали равноправны с потоками управления на диаграмме деятельности.
Последовательность сообщений. Взаимодействие нескольких программных объектов между собой описывается диаграммами взаимодействия в одной из двух практически эквивалентных форм (диаграммой коммуникации и диаграммой последовательности). Для объектно-ориентированной программы поведение, прежде всего, определяется взаимодействием объектов, посредством передачи сообщений, поэтому диаграммы данного типа имеют столь большое значение при моделировании поведения в UML.
Именно диаграммы взаимодействия претерпели наибольшее расширение и усовершенствование в UML 2 по сравнению с UML 1.
Параллельное поведение. Касательно представления потоков управления в UML остается сказать, что в реальных программных системах потоков управления может быть несколько. Все типы поведенческих диаграмм умеют в той или иной степени отражать данный факт.
Диаграммы автомата в качестве событий для инициализации процесса перехода объекта из одного состояния в другое могут использовать события, являющиеся асинхронными, т.е. возникающими в другом потоке управления, нежели тот, в котором «живет» моделируемый объект.
На диаграммах деятельности могут использовать специальные конструкции (см. параграф 4.5.4), который показывают точки, в которых поток управления может быть разделен на несколько параллельно исполняющихся потоков и точки, в которых, наоборот, несколько потоков управления опять сливаются вместе.
Диаграммы взаимодействия также имеют в своем арсенале подобные конструкции (см. параграф 4.5.5).
В следующих разделах рассматриваются все указанные средства более детально.