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

УДК 69.003:338.984

Г.А. Евдокимова, Н.П. Воробович

ИССЛЕДОВАНИЕ ПОДХОДОВ К СОЗДАНИЮ ПРОГРАММНОГО КОМПЛЕКСА РЕШЕНИЯ ЗАДАЧ КАЛЕНДАРНОГО ПЛАНИРОВАНИЯ РАБОТ СТРОИТЕЛЬНЫХ БРИГАД

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

Ключевые слова: бригада, задача, планирование, постановка, модель, формализация, алгоритм, метод, оптимизация, база данных, программа.

G.A. Evdokimova, N.P. Vorobovich RESEARCH OF THE APPROACHES TO THE CREATION OF SOFTWARE FOR PACKAGE SOLUTION OF CALENDAR WORK TASK PLANNING FOR CONSTRUCTION TEAMS

Two tasks of the calendar work planning for the construction teams are formulated in the article. The algorithms of the tasks solution are suggested. The approaches are analyzed and the alternative variants of the software package creation for the optimization tasks solution.

Key words: team, task, planning, formulation, model, formalization, algorithm, method, optimization, data base, program.

Введение

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

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

1. Задача «Закрепление бригад за объектами»

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

1.2. Формализация задачи. Введем следующие обозначения:

i - индекс бригады,

\ - индекс объекта;

t - индекс момента времени;

- предполагаемое количество рабочих в бригаде і в момент времени £

Р. - потребность в рабочих на объекте \ в момент времени ^

а у - оценка невязок от закрепления /-й бригады за j-м объектом;

Хд. - количество рабочих і-й бригады, закрепленных за j-м объектом; а р - оценка невязок от закрепления /-й бригады за j-м объектом в момент времени ^

Ху{ - количество человек /-й бригады, закрепленных за j-м объектом в момент времени і

1.3. Математическая модель задачи «Закрепление бригад за объектами». В предположении, что количество строящихся объектов равно количеству бригад, задача «Закрепления бригад за объектами» может быть сформулирована следующим образом.

^ = хд=> іп’

]=\ І—1 п ____

=1

У=1

2] = С/= >пX

і=

г _ _

ху. = ’

I

Найти величины х,,, минимизирующие функцию Р, где коэффициенты а - это оценки невязок от за-

У У

крепления /-й бригады за j-м объектом.

1.4. Алгоритм решения задачи «Закрепление бригад за объектами»

Первый этап. Для решения задачи (1)-(4) необходимо спроектировать структуру базу данных задачи, т.е. определить состав и структуру файлов, в которых хранятся данные о величинах Д(; р; dij, а ; х у .

Входные данные для решения задачи - величины Д(, Ри . Выходными (результатными) данными задачи являются величины х .

Вторым этапом алгоритма является вычисление оценок невязок от закрепления і-й бригады за j-м объектом (величин а ). Величины а вычисляются следующим образом. На основании численных соста-

V и

вов бригад, заданных в виде матрицы ||ДЙ| |, календарных графиков объектных потребностей в рабочих в разрезе специальностей, полученных в результате решения задач блока 1 в виде матрицы ||р| |, заданной матрицы ||^..||, где - величина, определяющая предпочтительность закрепления /-й бригады за j-м объектом, вычисляются величины аУу, представляющие собой оценки невязок от закрепления і-й бригады за j-м объектом, по следующим формулам:

’У^ і= ’Т’ у=

к- /=

где іік,Укі скалярное произведение векторов Ьк, ук(.

\ 4,, ^ если />,, - > є

С. У к, - Ъ2’ У 2, « если рп ~ н„с1„ < є _

2г /г ?'г у

у $3. Уз, 2 если \р - к„с/„ | ^ є

где уи = £ - ^ 0,0 - превышение мощности объекта в момент времени Ї над мощностью бригады

(перегруз); ^

Ъх - 615 0, 0^-штраф за закрепление с перегрузом;

у2( = §,Кйс1ь - э.п0 - превышение мощности бригады в момент времени ? над мощностью объекта (недогруз);

Ъ2 = С, Ъ2, 0- штраф за закрепление с недогрузом;

уъ, = О, О, Г- совпадение мощностей бригады и объекта в момент времени ґ,

Ъъ = 0, 0, -Ъъпоощрение за закрепление с совпадением мощностей.

В результате этих вычислений получается матрица ||аг>.||.

На третьем этапе решается задача (1)-(4), где величины а^, представляющие собой оценки невязок от закрепления І-Й бригады за 7-м объектом, вычисляются по формулам (5). Задача (1)-(4) - это классическая задача о назначениях. Существует несколько методов решения задачи о назначениях: симплекс-метод и другие методы решения задачи линейного программирования; метод потенциалов и другие методы решения транспортной задачи; алгоритм Балаша и другие методы решения задачи целочисленного программирования с булевыми переменными и т.д. [6]. Таким образом, задача «Закрепления бригад за объектами» (задача (1)-(4)) может быть решена многими способами.

2. Задача «Расстановка бригад»

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

может работать одновременно на нескольких объектах и на одном объекте в одно и то же время могут ра-

ботать несколько бригад. Для этого случая задача «Расстановка бригад» может формулировать иначе.

2.1. Математическая модель задачи «Расстановка бригад»

Определить неизвестные величины х. (количество человек і-й бригады, закрепленных за 7-м объек-

и

том), минимизирующие значение функции 1

J 1

/ IX" ^ т’

и удовлетворяющие следующим ограничениям:

У = э для всех і — ,

У" = ? для всех і = ,/,

і=

Ху > ) для всех г = ,1 и j — ,*/,

Ху — елое для всех і = , / и / = ,./ ,

± =± =3.

]=\ г=\

2.2. Алгоритм решения задачи «Расстановка бригад»

Алгоритм решения задачи (7)-(12) состоит из трех этапов.

Первый этап алгоритма совпадает с первым этапом алгоритма решения задачи (1)-(4), описанном в разделе 1.4.

На втором этапе алгоритма по формулам (5) вычисляются величины а, представляющие собой оценки невязок от закрепления /-й бригады за ]-м объектом.

т

, где Р- = 2^Ра Для всех 1 (/=1>2,...Д и вектор-строка

?=1

Затем строится вектор-столбец р = :

^ ~ ,ДЛ)-Л I, где Rj = 2_,Rtt для всех/(/=1,2,...,/).

f=1

Имеем теперь матрицу А - atj ||, вектор-столбец Р и вектор-строку R.

Если ^р jt У, R., то определяется величина N = .ZP1-LR

j= 1 1=1 I ]= 1 !=1 |

Если , то величина N добавляется в вектор-строку R элементом -Кj+ . Если

j=i i=i

j i

1LP^LR, , то величина А/ добавляется в вектор столбец Р элементом Pj+ . При этом в матрицу А до-

j=1 ы

бавляется либо строка, либо столбец из сколь угодно больших чисел.

Таким образом, всегда можно преобразовать матрицу A, вектор-столбец P, вектор-строку R так, что

J I

будет выполняться равенство Тр, = ZR.

j=1 i=1

После проведения вычислений и преобразований по формулам, приведенным выше, рассматриваемая задача сводится к задаче (7)—(11), где определены все величины.

На третьем этапе алгоритма решается задача (7)—(11), которая является классической транспортной задачей и при условии (12) всегда имеет решение, которое можно найти, например, методом потенциалов [1,6]. Обоснование эффективности предложенного метода закрепления бригад за объектами и более подробное его изложение имеется в работах [1,3,4].

3. Выбор инструментальных средств разработки программного обеспечения

3.1. Выбор средств создания базы данных и решения расчетных задач

В качестве основного средства разработки следует выбрать реляционную СУБД.

Одной из самых распространенных реляционных СУБД является СУБД FoxPro [5]. С использованием СУБД FoxPro создано большое количество систем обработки данных, эффективно функционирующих в различных организациях России. СУБД FoxPro является процедурно-ориентированной системой. В последнее время широко пропагандируется объектно-ориентированной подход при создании прикладных систем обработки данных. Visual FoxPro - это новое воплощение нашего старого знакомого FoxPro, обладающего способностью строить приложения для баз данных со связями типа "один ко многим", снабженное многими настраиваемыми экранами и отчетами, для создания которых от вас потребуется написать лишь несколько программных средств.

В связи с вышесказанным в качестве средства разработки выбрана реляционная объектноориентированная СУБД Visual FoxPro.

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

Следуя объектно-ориентированной стратегии Visual FoxPro, существует возможность проверки функциональных возможностей каждого компонента программы сразу же, как только он создан. Создав все функциональные компоненты приложения, можно тут же компилировать их в сложное визуальное приложение, а

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

3.2 Исследование подходов к реализации оптимизационных алгоритмов

Сформулированные в первом и втором разделах оптимизационные задачи календарного планирования являются задачами математического программирования и могут быть реализованы с помощью:

пакетов программ математического программирования (ПЛП, ПЦП, ТРС);

табличного процессора Microsoft Office Excel;

оригинального пакета программ решения задачи о назначениях и транспортной задачи, реализованного на языке программирования XBase в среде СУБД Visual FoxPro.

3.2.1 Пакеты программ математического программирования (ПЛП, ПЦП, ТРС) [2]. ПЛП, ПЦП, ТРС

- это программы, работающие под управлением дисковой операционной системы MS Dos версии 2.0 и выше.

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

ПЦП - предназначена для решения частично-целочисленных задач линейного программирования, имеющих до 64 целых переменных. Общее число переменных до 1255 и ограничений до 255. Целочисленные переменные должны иметь целые двухсторонние ограничения. В ПЦП в рамках ветвей и границ применяется модифицированный симплекс-алгоритм для эффективного решения задач частично-целочисленного линейного программирования (ЧЦЛП), при этом включает мощную систему команд для запуска и сохранения в памяти задач, управления ходом вычислений и вывода на экран дисплея результатов решения. Для всех целочисленных переменных задаются верхние и нижние границы. Эти границы последовательно сужаются, пока не будет найдено целочисленное решение. Линейную задачу на каждой ветви решают при помощи повторного запуска модифицированного симплекс-алгоритма. Для построения новых ветвей и выбора задач из списка ветвей в ПЦП применяются правила, оказавшиеся эффективными при генерировании хороших целочисленных решений на более раннем этапе вычислений. Для вычисления границы на каждой ветви берется отсечение Гомари.

ТРС - позволяет формировать и решать задачи транспортные, о назначениях и с промежуточными пунктами, содержащие до 510 источников (пунктов отправления) и (или) стоков (пунктов назначения). Классическая транспортная задача заключается в нахождении множества пунктов отгрузки, минимизирующего транспортные затраты без превышения в источниках постановки или неполного удовлетворения спроса в строках. Это также автономная программа на машинном языке, не требующая какого-либо специального программного обеспечения, кроме DOS. В ТРС применяется симплекс-алгоритм решения транспортной задачи для эффективного решения задач транспортных, о назначении и с промежуточными пунктами. ТРС включает мощную систему команд для установки и хранения в памяти задач, управления кодом вычислений и получения выходных данных на экране дисплея, принтера или в файл. Любая модель стандартной транспортной задачи, задачи о назначении или с промежуточными пунктами может быть введена и решена для получения плана минимальных затрат при отгрузке/назначении. Затраты на единицу продукции могут быть заданы для отгрузки между следующими типами пунктов:

Источники (пункты отправления) - пункты производства.

Строки (пункты назначения) - пункты потребления.

Промежуточные пункты - одновременно источники и стоки.

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

3.2.2. Табличный процессор Microsoft Office Excel. Microsoft Office Excel - это мощная и удобная программа для работы с электронными таблицами, позволяющая значительно упростить проведение различных вычислений, сортировку любых данных, составление аналитических отчетов и прогнозов. В Microsoft Office Excel есть функция поиска решения, которая позволяет решать задачи линейного программирования, целочисленного программирования. Функция поиска решения позволяет решить как транспортную задачу, так и задачу о назначениях.

3.2.3. Семейство языков программирования xBase. xBase - семейство языков программирования, являющихся производными или клонами СУБД dBase. Предназначены в первую очередь для разработки приложений, работающих в среде реляционных СУБД.

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

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

xBase полностью поддерживает выполнение транзакций, что существенно повышает надежность системы, а в силу особенностей ESF (СУБД, на основе которой построено "xBase") - одновременно с этим и быстродействие.

xBase реализуется в двух основных вариантах: набор библиотек для построения "локальных" приложений и набор компонент для построения клиент-серверных систем.

Заключение

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

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

Литература

1 Воробович, Н.П. Экономико-математическое моделирование процесса формирования годовых планов работ строительных бригад / Н.П. Воробович // Строительное и технологическое проектирование промышленных объектов на основе комплексно-блочного метода: сб. науч. тр. / Красноярский Промст-ройНИИпроект. - Красноярск, 1990. - C. 102-109.

2 Воробович, Н.П. Краткое пособие по пакетам программ математического программирования для ПЭВМ: метод. пособие / Н.П. Воробович; Краснояр. гос. технол. акад. - Красноярск, 1996. - 16 c.

3 Воробович, Н.П. Методологические основы создания информационных технологий управления строительными проектами / Н.П. Воробович. - Красноярск: Изд-во СибгТУ, 2002. - 286 с.

4 Воробович, Н.П. Математические модели, методы и алгоритмы решения задач календарного планирования в управлении строительными проектами / Н.П. Воробович. - Красноярск: КрасГАУ, 2007. -239 с.

5 Омельченко, Л.Н. Самоучитель Visual FoxPro 8 / Л.Н. Омельченко. - СПб.: БХВ-Петербург, 2003. -688 с.

6 Ху, Т. Целочисленное программирование и потоки в сетях / Т. Ху. - М.: Мир, 1974. - 520 с.

---------♦-----------