Декомпозиция – это… Метод декомпозиции: цели, процессы, структура и виды

Вопросы

В каких случаях декомпозиция не нужна?

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

Всегда ли декомпозиция полезна?

Нет, не всегда. В некоторых случаях она становится лишь очередным поводом для прокрастинации.

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

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

Что делать, если я тщательно разделил цель на подзадачи, а план полностью сорвался? Например, из-за того, что я не предусмотрел какие-то важные нюансы?

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

Что делать, если я распределил этапы по дням, но не уложился в сроки?

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

А что делать, если планы постоянно срываются?

В таких случаях лучше использовать одношаговую декомпозицию, то есть планировать лишь первоочередное действие.

Как разделить на подзадачи большую монотонную работу? Например, написание длинного текста, покраску забора, заполнение базы данных?

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

Почему стоит использовать ИСР

Грамотно распределяются задачи

ИСР обеспечивает эффективное планирование, помогает оценить загруженность команды на разных этапах и корректно закрепить задачи за участниками проекта.

Риски и стоимость проекта оценены

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

Проект наглядно представлен для заинтересованных сторон

Видно, на чём нужно заострить внимание, как распределить ресурсы, как заказчик представляет себе поставленные перед командой задачи и что ставит в приоритет. ИСР становится основой для последующих задач, добавления и корректировки результатов

Может стать шаблоном для типовых проектов.

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

Кроме ИСР существуют и другие инструменты — их выбор зависит от условий, в которых предстоит реализовать цель.

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

ИСР более гибкий с этой точки зрения инструмент, но если нужно ориентироваться на дедлайны, то больше подойдёт метод критического пути.

Зачем нужна декомпозиция целей

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

  1. Узнать больше о профессии.
  2. Получить необходимые знания для выполнения простых операции.
  3. Оттачивать теоретические и практические навыки.
  4. Составить хорошее резюме.
  5. Изучить вакансии и устроиться на официальную работу.
  6. Показать свои навыки начальству, решая поставленные задачи, или даже превзойти коллег-конкурентов.

Так можно быстрее прийти к задуманному. Конкретные сроки помогут не сходить с пути.

Как декомпозировать

Декомпозировать можно по-разному, это зависит от масштаба и сути задачи.

Например, запуск мобильного приложения можно декомпозировать сначала на уровне платформ: iOS и Android. Потом — на уровне пользовательских сценариев: регистрация, просмотр контента, покупка, переписка с контактами. Сценарии можно разложить на интерфейс и серверную часть. А их — на отдельные конкретные задачи.

Вертикальная декомпозиция:

Бэкенд: считать количество покупок и отдавать данные на фронт.

Фронтенд: запрашивать данные при загрузке страницы и выводить.

Горизонтальная декомпозиция:

Бэкенд:

  • добавить столбец с количеством покупок в БД;
  • считать в этом столбце, сколько раз товар купили;
  • добавить метод, который будет возвращать количество покупок по id товара.

Фронтенд:

  • добавить на страницу товара строку с количеством покупок;
  • обращаться с помощью метода к БД во время загрузки страницы;
  • настроить отображение счётчика на экранах разных размеров.

Системный подход к иерархической структуре декомпозиции работ

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

Крайне важно, чтобы на каждом более низком уровне декомпозиции был назначен один и только один ответственный работник, вне зависимости от того, идет ли речь о пакете работ или элементарной работе. Наконец, указанная работа проделана, WBS построена

Мы определили вроде бы всю работу по проекту. На самом деле нам удалось определить примерно 90% от общего объема работ, которые реально необходимо проделать. Теперь нужно выявить, что нам еще, возможно, предстоит сделать в проекте.

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

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

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

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

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

Просмотры:
10 194

Как научиться декомпозировать задачи?

Идеальное обучение — практика. Но сложно начинать практиковатся на реальных задачах, если вы еще не до конца понимаете весь процесс. Как же быть? Я вижу два вектора тренировок.

1. Задачи из реальной жизни

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

Но не все так просто в нашей жизни. Когда задачи простые, мозг декомпозирует задачу подсознательно. Вы не задумываетесь особо над этим. Вы сталкивались когда-то с ощущением, что вам нужно что-то сделать и не знаете с чего начать и кажется что эта задача непосильная и вообще это почти невозможно? Я думаю да. Так вот. Насамом деле не нужно паниковать или долго думать как подойти.

  1. Разбейте сложную задачу на множество простых. Если они кажутся все равно сложными — разбейте их еще раз.
  2. Придуймайте решение каждой.
  3. Выстройте план действий.
  4. Приступите к выполнению.

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

2. Поиск объяснения устройства различных процессов

Что я имею ввиду? Ищите объяснения как устроены привычные для вас вещи. Вы когда то думали как устроен замок в вашей двери? Или, например, как работает электрический чайник?

Дело в том, что даже относительно простые механизмы, которые вас окружают состоят из нескольких деталей. Каждая деталь выполняет определенную функцию. Находите сходство с декомпозицией?

Практиковаться в этом направлении просто. Когда у вас появилась свободная минутка оглянитесь вокруг

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

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

Найдите из этих предметов какой-то механизм

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

Возможно эта информация никогда не будет вам полезна. Особенно если вы не собираетесь чинить компьютерные мыши :). Но дело тут в другом. Подобные размышления тренируют мозг в правильном направлении.

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

С другой стороны практикуясь подобным образом вы не только тренируете мозг в решение задач декомпозиции, но и узнаете много нового. Вдруг что-то пригодится?

Специфика декомпозиционных процессов

Структурирование — основа всех методик декомпозиционного анализа. Создание стратегии для достижения целей вынуждает придерживаться определенных правил:

  • Четкое следование иерархической системе, то есть подчинение низшего уровня более высокому. При этом каждый из них может быть связан только между собой и не иметь логического отношения к другим выше- или нижестоящим;
  • Деление одной задачи на некоторое число подзадач по однотипному принципу;
  • Разделение целей на этапы, каждому из которых присваивается процентное значение. Сумма всех значений должна равняться 100%;
  • Глубина или видимость многоуровневой системы должна позволять на первом этапе визуально охватывать всю систему целиком.

Метод 8: Декомпозиция по сценариям тестирования\тест-кейсам.

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

Рассмотрим пример функциональности – клиент выбирает товар в интернет магазине и откладывает его в «корзину» для совершения покупки. В рамках этой функциональности могут быть выделены следующие тестовые сценарии (ниже только пример части возможных тест-кейсов):

  • Товар есть в наличии и он доступен покупки.
  • Товар есть в наличии, но он уже зарезервирован другим покупателем
  • Товара нет в наличии

Какие преимущества дает использование данного метода декомпозиции:

  • Эта стратегия фактически объединяет многие техники декомпозиции, которые были рассмотрены ранее. В процессе формирования списка тест-кейсов мы автоматически проанализируем:
    • Условия и правила бизнес процесса
    • Позитивные и негативные сценарии использования функционала
    • Форматы данных и параметров.
  • Анализируя тестовый сценарий легко понять насколько он распространен и вероятен в условия реального использования продукта, что позволяет выставить соответствующие приоритеты.
  • При таком способе разбиения мы сразу получаем и описание для задачи\пользовательской истории и сценарий, по которому можно проверить успешность ее реализации.

Что такое декомпозиция?

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

Это разделение на подпункты жизни, ее отдельных сфер, целей, задач, проблем, проектов.

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

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

 

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

Декомпозиция может иметь много уровней — оптимально 3, можно до 6 и даже более. Очень желательно, чтобы каждый финальный пункт занял у вас по времени максимум 1-2 часа. Нужно разбивать и разбивать задачи до того, как конечные будут такого объема.

Важнейший элемент — дедлайн напротив каждого мелкого шага.

WBS как инструмент управления в различных проектных проявлениях

Инструмент структурной декомпозиции можно эффективно применять в различных проектных проявлениях:

  • Для определения проектных результатов.
  • Для организации коммуникаций. WBS помогает осуществлять направленную передачу информации с учётом задачи и ответственности участника за её исполнение.
  • Для документирования и отчётности. Документальное отражение WBS проявляется в общей терминологии, в формировании бюджета «сверху-вниз», в составлении отдельной отчётности, соответствующей структуре WBS.
  • Для оптимизации управления и типизации уровней. Так в тематической литературе рекомендуют использовать не более 6 уровней, где верхние 3 предназначены для информации уровня заказчика, а нижние 3 – уровня исполнителя. Но, в первую очередь, глубина детализации должна быть ориентирована на сложность и размер проекта.

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

https://youtube.com/watch?v=7WAkbKv0lTM

Цели и разновидности декомпозиции

Метод декомпозиции как нельзя лучше применяется в менеджменте — бизнес-системе, главной задачей которой является управление процессами и их оптимизация. В зависимости от поставленных целей могут использоваться разные подходы:

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

Каких ошибок нужно избегать при декомпозиции целей

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

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

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

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

Важно сделать их понятными конкретными для всех членов команды

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

Для достижения баланса нужно расставлять приоритеты правильно. Только так можно эффективно улучшить работу предприятия и любой сферы своей жизни.

Основные принципы

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

Для разделения целей и задач на подзадачи, мы с вами будем рисовать вот такую диаграмму:

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

В принципе для построения деревьев можно использовать любую программу для создания схем — Microsoft Visio или, например, бесплатный сервис draw.io. Древовидные структуры умеют создавать и некоторые современные органайзеры, например, LeaderTask.

Но удобнее всего рисовать такие деревья в виде ментальных карт. Для этого вам потребуются специальные программы для их создания: X-mind, MindNode, MindManager, бесплатная Freemind и т. д.

Итак, приступим. В общем виде декомпозиция выглядит так:

  • Выбираем задачу или цель.
  • Спрашиваем себя: какие шаги потребуется предпринять для ее осуществления? Записываем результат. У нас получаются цели (или задачи) 2-го порядка.
  • Задаем к ним все тот же вопрос и снова записываем результат. Получаем цели 3-го порядка.
  • Повторяем эту процедуру необходимое количество раз.

Уровень детализации зависит от ваших потребностей. Если вам, например, нужен план ежедневных действий, то остановиться можно на тех задачах, которые занимают от 15 минут до 2 часов.

В процессе декомпозиции важно соблюдать следующие правила:

1. Следить, чтобы записанных подзадач было достаточно для выполнения задачи верхнего уровня. Посмотрите на список подзадач и подумайте: если все это сделать, будет ли задача выполнена? Если нет, то каких-то подзадач явно не хватает.

2. Стараться не делить задачи более чем на 7 подзадач. По правилу Джорджа Миллера мы способны за один раз удержать в памяти 7±2 объекта, и если подзадач окажется больше, нам будет труднее воспринимать свои планы. В таких случаях можно разделить задачи на группы по какому-нибудь признаку:

Впрочем, последнее правило не является аксиомой: делайте так, как вам удобнее.

Зачем нужна декомпозиция?

Декомпозиция очень часто используется в планировании, и это не случайно. Она помогает:

  • Облегчить выполнение задач. Крупные задачи часто кажутся непомерно сложными, что вызывает у нас приступы прокрастинации. Декомпозиция позволяет разложить такие «страшные» задачи на простые и понятные кусочки. Например, написать большую книгу — довольно сложно, а ежедневно писать по 1000 слов — вполне осуществимая задача.

  • Оценить реалистичность цели. Во время декомпозиции становится понятно, насколько цель достижима и не нужно ли ее подкорректировать. Например, мы решили научиться виртуозно играть на классической гитаре за три месяца. Но если мы разделим эту цель на отдельные этапы, то увидим, что на ее достижение уйдет как минимум три года.

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

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

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

Другое дело, что в тайм-менеджменте декомпозиция применяется осознанно, а значит и более эффективно.

Метод 2: Разбиение по позитивным и негативным сценариям.

Фактически каждая функциональность имеет правильный\прямой сценарий использования, который приводит к ожидаемому\позитивному результату. Однако, когда пользователь работает с тем или иным функционалом могут произойти отклонения от правильного процесса: переданы не те данные, выполнены не все обязательные условия, нет необходимых прав доступа и т.п. Такие отклонения от прямого сценария работы приведут к негативным результатам (действие не выполнится, функция отработает некорректно и т.п.).

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

Для каждого сценария важно выделить отдельные пользовательские истории:

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

В качестве примера декомпозиции требований на позитивные\негативные сценарии снова рассмотрим функцию покупки в интернет магазине:

  • Позитивный сценарий: пользователь заходит в свою учетную запись на сайте и совершает покупку оплачивая ее по карте. Или в формате пользовательской истории: «как клиент я могу войти в свою учетную запись, чтобы совершить покупку по карте».
  • Негативный сценарий 1: клиент пробует совершить покупку без авторизации.
  • Негативный сценарий 2: пользователь пробует совершить покупку, но у него на счету не хватает средств и оплата не проходит.
  • Негативный сценарий n: клиент пробует совершить покупку, но его учетная запись заблокируется из-за неправильного ввода пароля.

Подобный тип декомпозиции позволяет выделить, проанализировать и запланировать отработку различных исключений и неверных сценариев использования ПО, которые в любом случае будут возникать.

Динамическое программирование

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

В качестве примера представим себе задачу поиска наибольшего независимого множества на графе с древесной шириной k. Для решения этой задачи сначала выберем один узел древесного разложения в качестве корня (произвольным образом). Для узла Xi древесной декомпозиции пусть Di будет объединением множеств Xj, наследуемых от Xi. Для независимого множества S ⊂ Xi пусть A(S,i) означает размер наибольшего независимого подмножества I в Di, такого, что I ∩ Xi = S. Подобным образом для смежной пары узлов Xi и Xj с Xi более дальним от корня по сравнению с Xj и независимого множества S ⊂ Xi ∩ Xj пусть B(S,i,j) означает размер наибольшего независимого подмножества I в Di, такого, что I ∩ Xi ∩ Xj = S. Мы можем вычислить эти значения A и B проходом дерева снизу вверх:

A(S,i)=|S|+∑j(B(S∩Xj,j,i)−|S∩Xj|){\displaystyle A(S,i)=|S|+\sum _{j}\left(B(S\cap X_{j},j,i)-|S\cap X_{j}|\right)}
B(S,i,j)=maxS′⊂XiS=S′∩XjA(S′,i){\displaystyle B(S,i,j)=\max _{S’\subset X_{i} \atop S=S’\cap X_{j}}A(S’,i)}

Где сумма в формуле для A(S,i){\displaystyle A(S,i)} берётся по потомкам узла Xi{\displaystyle X_{i}}.

В каждом узле или ребре имеется не более 2k множеств S, для которых необходимо вычислить эти значения, так что в случае, когда k является константой, все вычисления занимают постоянное время на одно ребро или узел. Размер наибольшего независимого множества является наибольшим значением, запомненном в корневом узле, а само наибольшее независимое множество можно найти (что является стандартным для динамического программирования) путём отслеживания в обратном порядке этих запомненных значений, начиная с наибольшего значения. Таким образом, в графах ограниченной древесной ширины задача поиска наибольшего независимого множества может быть решена за линейное время. Подобные алгоритмы применимы для многих других задач на графах.

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

Декомпозиция: что это простыми словами, её суть и виды

Основные понятия

Декомпозиция — метод разделения целого на части. Процесс основан на пути перехода от более важных до менее значимых задач.

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

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

Декомпозировать — построить пошаговый план действий, решить сложный вопрос. Такие цепочки похожи на схемы из блоков или интеллектуальные карты. 

Простые примеры работы стратегии:

Или:

Виды декомпозиций

Горизонтальная декомпозиция

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

Вертикальная декомпозиция

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

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

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий