К подобным ограничивающим факторам можно отнести занятость рабочей зоны вспомогательным оборудованием, ограничения по нагрузке на электро/газо/водоснабжение при производстве работ, технологические ограничения по загазованности, задымленности, уровню шума, ограничения по технике безопасности и множество других.
Заложить на стадии моделирования жесткие логические Связи между подобными Операциями в подавляющем большинстве случаев невозможно, поскольку мы не можем предугадать, как фактически будут исполняться данные Операции — произойдет их пересечение во времени или нет и в какой очередности они пройдут данную точку объекта к моменту времени, когда проект в своем исполнении дойдет до данного периода. Но для получения корректного расписания необходимо, чтобы определенные Операции ни при каких условиях не могли производиться, например, одновременно в одном помещении или с одновременным созданием нагрузки на какую-то вспомогательную систему.
Задача |
Штукатуры осуществляют два прохода оштукатуривания — подготовительный и основной, монтажники производят две Операции монтажа следующие друг за другом — монтаж креплений и монтаж балок.
Решение |
Для начала опишем работу на одном из этажей здания. Например, штукатуры и монтажники должны пройти две квартиры, разделенные холлом. Для простоты описания будем считать, что штукатуры и монтажники являются работниками одной субподрядной организации и вышли на объект (доступны) одновременно. Допустим, мы решили в модели в первой технологической Структуре (см. пример <Множественные структуры>) описать работы, сгруппировав их в ИСР (Иерархическая Структура Работ) по этажам и квартирам.
Поскольку технологически работы в квартирах и холле не отличаются, опишем подробно одну квартиру, а затем этот типовой фрагмент повторим еще дважды для второй квартиры и холла.Добавим для квартиры две Операции штукатуров и две операции монтажников, связанные технологическими Связями. Теперь необходимо реализовать задачу — сделать так, чтобы отделочники и монтажники не смогли одновременно работать в одной квартире, даже если по времени и доступности бригад такое возможно, но могли одновременно осуществлять работы в холле.
Для этого добавим в нашу модель виртуальный Материал Квартира 1. После этого настроим Операции так, чтобы, как только какая либо из бригад начала работы в данной квартире, то данный материал расходовался, а когда работы данной бригадой закончены — производился обратно. Данный подход позволит не допускать к производству работ в квартире другие бригады, пока не закончила цепочку своих работ бригада, пришедшая туда раньше. Для них отсутствует необходимый Материал в виде квартиры, пока он не будет произведён обратно.
Настройка следующая: на первой Операции технологической цепи указываем расход Материала Квартира 1 в количестве 1, а в профиле указываем 1;0, что означает, что вся Квартира 1 израсходована сразу в начале Операции. На последней Операции технологической цепи указываем производство (отрицательный расход) материала Квартира 1 в количестве -1, а в профиле указываем 0;-1, что означает, что вся Квартира 1 полностью произвелась в конце Операции. После этого данный Материал опять есть в наличии и его может использовать другая бригада.
Данное действие проводим для первой и последней Операции цепи штукатуров и цепи монтажников.
Чтобы нашим исполнителям было что тратить, заходя в квартиры (<занимать> их), необходимо изначально добавить в модель Квартиру 1 в количестве 1. Для этого создадим Контрольное событие Начало работ на этаже и в закладке Материалы укажем Фиксированный расход нашей Квартиры 1 в количестве -1, что означает ее <поставку> в нашу модель перед началом работ в количестве 1.Квартира 1 готова к началу работ. Теперь любой исполнитель, блокирующий своим присутствием данную квартиру, расходует ее, начиная работы, а другие не имеют возможности начать работы, поскольку текущее количество необходимой квартиры равно нулю.
После подобного назначения Материала мы получили возможность выравнивать по нему нашу модель. Запустим Расчет с выравниванием и в настройках Выравнивание по расходам укажем, что мы выравниваемся по Материалам, а в списке добавим нашу Квартиру 1 в материалы для выравнивания.
После этого Спайдер расчитает нам оптимальную расстановку бригад в данной квартире. Одновременную работу двух разных бригад в одной квартире программа теперь не допускает. Поскольку длительность Операций у нас одинаковая и другие ограничения отсутствуют, Спайдер выбирает одно из нескольких оптимальных решений. Если необходимо запустить в данную квартиру первыми определенных специалистов, то можно воспользоваться свойством Приоритет у соответствующих ОперацийУчитывать приоритеты операций в настройках расчета.Теперь мы можем повторить данную конструкцию для Квартиры 2, не забывая добавить ее в модель в таблице Материалы и в свойствах Контрольного события Начало работ на этаже.
В цепочках работ по Квартире 2 точно так же указываем ее расход и производство по каждой цепи.Не забудьте в свойствах Расчета расписания с выравниванием ресурсов добавить для выравнивания материал Квартира 2.
Для аналогичных работ в холле никаких ограничений указывать не нужно, поскольку там работы могут производиться параллельно.
Для того, чтобы все Операции данного блока при расчетах не ушли в другие области проекта, в случае если алгоритм программы найдет им другое оптимальное время исполнения, не совпадающее с временем производства работ на конкретном этаже, начало и окончание всех цепочек Операций на этом этаже замкнем двумя контрольными событиями начала и окончания. Теперь данная группа Операций всегда будет выполняться совместно, и мы получаем возможность управлять последовательностью производства работ на этажах. Это послужит небольшим ограничением, но допустим, что на нашем объекте данные бригады переходят вместе с оборудованием на следующий этаж только при полной готовности текущего этажа. Теперь бригады в соответствии с ограничениями по рабочему пространству произведут работы в двух квартирах и одновременно отработают в холле. Полученный вариант производства работ возможен, если бригад у нас неограниченное количество. Мы видим, что на старте к работам приступают сразу три бригады монтажников. Что будет, если бригад каждой специализации не более одной?
Для этого в таблице Ресурсы добавим две записи: Бригада штукатуров в количестве 1 и Бригада монтажников в количестве 1. Рассматриваем данные Ресурсы упрощенно, без детализации на людей и технику. Для примера нам это не нужно. После этого, воспользовавшись для быстроты Групповым действием с операциями назначим бригаду штукатуров на все штукатурные Операции, а бригаду монтажников на все монтажные соответственно. После этого произведем Расчет расписания с выравниванием ресурсов не только по Расходам материалов, но и по Ресурсам. Спайдер предложит одно из оптимальных решений. Далее, используя Приоритеты Фаз и Операций, как один из инструментов оптимизации расписания, возможно менять последовательность производства работ в квартирах и холле, выбирая наиболее подходящую.
Задача решена.
Примеры Пример модели в Spider Project