АЛГОРИТМ ФОРМИРОВАНИЯ МНОЖЕСТВА ПАРЕТО-ОПТИМАЛЬНЫХ ВАРИАНТОВ ЗНАЧЕНИЙ ПАРАМЕТРОВ ПРОВЕДЕНИЯ ПРОВЕРОК ПРОТИВОПОЖАРНОГО СОСТОЯНИЯ ОБЪЕКТОВ ОРГАНАМИ ГОСУДАРСТВЕННОГО ПОЖАРНОГО НАДЗОРА
О.А. Рыбин, доктор технических наук; В.В. Попов, кандидат военных наук, доцент; А.Н. Нестругин.
Санкт-Петербургский университет ГПС МЧС России
Представлено описание алгоритма формирования множества Парето-оптимальных вариантов значений параметров проверок противопожарного состояния надзорных объектов.
Ключевые слова: противопожарное состояние, обеспечение безопасности, надзорная деятельность, Парето-оптимальные решения
THE ALGORITHM OF FORMATION OF THE SET OF PARETO-OPTIMAL OPTIONS PARAMETER VALUES SPEND OF INSPECTIONS OF FIRE-PREVENTION CONDITION OF OBJECTS BODIES OF THE STATE FIRE SUPERVISION
O A. Rybin; V.V. Popov; A.N. Nestrugin.
Saint-Petersburg university of State fire service of EMERCOM of Russia
The article presents the description of algorithm of formation of the set of Pareto-optimal variant of values of parameters of the reviews of fire state Supervisory objects.
Keywords: fire fighting condition, security, supervision, Pareto-optimal solutions
Статистика показывает, что, несмотря на общее снижение количества пожаров, величина материального ущерба растёт. Объяснить такую обратную зависимость несложно, можно сделать вывод о том, что чрезвычайные ситуации, связанные с пожарами, случаются «по-крупному», а общую тенденцию, связанную с уменьшением количества пожаров, можно частично связать с недостоверной статистикой либо с повышающейся сознательностью граждан в области пожарной безопасности.
Тем не менее, последние примеры крупных пожаров показывают, что большинство пожаров можно было предупредить, в том числе и проведением целевых проверок. Естественно, нельзя спрогнозировать перечень конкретных объектов, которые имеют большую вероятность возникновения пожара, однако, имея статистику по пожарам и сезонности этих происшествий, можно определить типы объектов надзора и пожароопасные для них периоды, а затем, не учитывая удельную стоимость этих объектов, а также возможный ущерб от пожара, можно сформировать план проверок с учётом ограниченных ресурсов органов государственного пожарного надзора, а также ограничениями по проведению проверок.
Анализ показывает, что задачи подобного рода, а именно выбора значений параметров проведения проверок противопожарного состояния объектов, относятся к классу задач дискретного программирования.
Как правило, задачи комбинаторного программирования сводятся к выбору на конечном множестве альтернатив. Поэтому в принципе эти задачи можно решить методом прямого перебора. Для рассматриваемой задачи без потери общности можно в общем виде считать, что B = {b\,...,bj,...bN }, Л{^} = {1,...,l,...,L}. Совокупность всех
последовательностей обозначим через X. Отображение X можно тогда отождествить с последовательностью ^x(1),...,x(Nкаждый элемент которой принимает значения из множества Л.
Число всех последовательностей {b1,...,bj,... bN } с членами из L-элементного множества
Л равно card(X) = LK . Алгоритм генерирования подобных комбинаций, обычно называемый
алгоритмом генерирования размещений с повторениями, заключается в последовательном увеличении индекса проверяемого объекта n, который подвергается проверке в начальный период (l = 1). При достижении значения j = N индексу присваивается начальное значение
n=1 и осуществляется аналогичное увеличение индекса l.
Решение оптимизационных задач подобными алгоритмами полного перебора возможных вариантов затруднено в силу вычислительной сложности. По своей трудоёмкости алгоритмы генерирования размещений с повторениями относятся к алгоритмам суперэкспоненциальной трудоёмкости [1], поскольку количество вычислительных операций превышает порог Бремермана-Эшби (10100) при достаточно малых N и L. Для такой задачи полный перебор может стать неприемлемым даже при N> 15 и L > 15.
Анализ рассматриваемой задачи показывает, что конструктивные подходы к ее решению лежат на пути учета ее специфических особенностей, основная из которых -представление всего множества распределяемых функций в виде объединения подмножеств однотипных проверяемых объектов Nj, размещаемых по датам проверки последовательно.
Поэтому рассмотрим вначале алгоритм закрепления по датам плана проверок (1111) элементов множества однотипных объектов.
В соответствии с введенными ограничениями каждый проверяемый объект надзора можно проводить только на один период из множества Л:
2 Xj < 1, V j е Nj, i е M . (1)
1еЛ
С учетом ограничения (1) максимальное количество анализируемых вариантов определится:
Card (X )= L'
(L - card (Ni))!
Опишем алгоритм генерирования размещений в лексикографическом порядке. Для этого на множестве всех последовательностей длиной Ь с элементами из множества N определим лексикографический порядок:
¿ь..^,...^.) л( 1,2,..., Ь) оЗ(/ е{1,2,...^ }}Ък < 1к < Ь)).
Введём в рассмотрение ^-мерный вектор-столбец Л = ^/[1 ]..., I[ ]...,/[^ ^,
компоненты которого принимают значения из множества B. Таким образом, значение первой компоненты вектора Лт означает номер надзорного объекта, который подвергается
1111 в рассматриваемый период и т.д. Процесс генерирования размещений элементов из множества Ni е B по элементам из множества Л можно представить процедурами перемещения по корневому дереву. Корнем данного дерева является вершина, которая соответствует закреплению надзорного объекта Це Б за периодом проверки. Очевидно, что число корневых деревьев будет равняться мощности множества Л.
Перемещение в корневом дереве осуществляется по вершинам с первого уровня, соответствующего корневой вершине и до Л-уровня, соответствующего закреплению элемента Ь] е N1 на элементе из множества Л.
Период начала ПП / е Л, за которым закрепляется проверяемый объект Ь] е N будем включать во множество {X}. Ниже даётся пошаговое описание алгоритма генерирования множества размещений.
Т
Шаг 1. Производится инициализация ^-мерного вектора - столбца Л путём присвоения всем компонентам данного вектора значений, равных нулю. Множество X = 0. Задаётся начальное значение индекса элемента Ьке^ (индекс уровня дерева), равное единице, /'=1.
Шаг 2. Проверяется выполнение условий:
1. Начала движения к (]+1) уровню дерева:
/(]) = Ь . (2)
Если условие (2) выполняется, то осуществляется переход к шагу 3. В противном случае - переход к шагу 4.
2. Начала движения по вершинам, принадлежащим последнему уровню дерева N уровню):
] = N. (3)
При выполнении условия (3) осуществляется переход к шагу 7.
3. Окончания процедуры генерирования размещений, которое наступает при выполнении условия (3) для ] = Ni.
Шаг 3. Реализуется процедура возврата к корневой вершине дерева. Для этого ]
Т
компоненте вектора Л присваивается значение 1л[]]=0. Уменьшается значение ] на единицу, то есть осуществляется переход на (]-1) уровень дерева. Из множества X удаляется элемент I []].
Шаг 4. Вершине дерева ]-го уровня ставится в соответствие элемент из множества Л путём увеличения номера периода проверки на единицу:
I []]=1[]]+1.
Шаг 5. Начинается процедура движения к (]+1) уровню дерева. Признаком начала работы этой процедуры является выполнение условия:
I [к хП. (4)
При выполнении условия (4) осуществляется переход к шагу 6, в противном случае -к шагу 2.
Шаг 6. Выполняется процедура движения к (]+1 ) уровню дерева. Для этого
к множеству Х^ добавляется период с номером 1[]]. Затем осуществляется переход к следующему уровню, то есть
Хкп = Хкп и{/[]]}, ] = ] +1.
Шаг 7. Осуществляется движение по вершинам Ni уровня дерева:
l[N]=l[N]+1.
Шаг 8. Проверяется условие (4). Если оно выполняется, то осуществляется
Т
считывание варианта размещения элемента по периодам ПП из Л . В противном случае -переход к шагу 9.
Шаг 9. Проверяется условие:
l[Ni]=N.
При его выполнении - переход к шагу 2, в противном случае - к шагу 7.
Шаг 10. Конец выполнения процесса генерирования размещений.
В рассмотренном алгоритме можно выделить три основных процедуры движения по корневому дереву.
Процедура 1. Движение по корневому дереву от первого уровня до Ni -го уровня. Эта процедура реализуется на шагах 2, 4, 5.
Процедура 2. Процедура возврата. Осуществляется движение к корню дерева. Реализуется на шагах 2-4.
Процедура 3. Процедура движения по вершинам одного уровня дерева. Реализуется на шагах 7-9 алгоритма генерации размещений.
Выбор вершины на дереве осуществляется путём последовательного увеличения
й ЛТ й й
значений компонент вектора Л с последующей проверкой на принадлежность элемента
к множеству X . Такая процедура выбора позволяет генерировать, не только размещения Nit
проверяемых надзорных объектов по L периодам начала ПП, но и осуществлять процесс
закрепления элемента bj по периодам из множества Л. Это дает возможность на первых
этапах решения задачи выбора значений параметров сужать область альтернативных
вариантов закрепления за счёт уменьшения количества анализируемых вершин,
принадлежащих одному уровню. При Ni=L данный алгоритм является нерекурсивным
алгоритмом генерирования L - факториал перестановок [2].
Можно отметить, что число итераций, необходимых для выбора одной вершины на дереве, является величиной переменной, зависящей от L и N. Это число меняется от одной итерации до (N+L)/2. Поскольку в этом алгоритме реализована концепция «алгоритма с возвратом» (англ. backtracking), то это может оказаться существенным в ситуации, когда с выбором вершины на дереве связаны некоторые вычисления и когда существует возможность использования частичных результатов, полученных при выборе вершин дерева.
Литература
1. Струченков В.И. Методы оптимизации в прикладных задачах. М.: Солон-Пресс, 2009. 320 с.
2. Подиновский В.В., Ногин В.Д. Парето, оптимальные решения многокритериальных задач. М.: Наука, 1982.