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

1. succub1_5 89 30.07.19 11:59 Сейчас в теме
Здравствуйте, есть задачка:
- имеется БД с данными: рабочий, скорость сборки детали, номер конвеера (1-100), количество деталей на конвеере и 2 ТЗ - кто работает и какие конвееры работают.
- надо оптимально распределить рабочих по конвеерам, чтобы максимально быстро все собрали
пока делаю так:
Запрос = Новый Запрос ("ВЫБРАТЬ ПЕРВЫЕ 1
	               |	РабСрезПоследних.Раб КАК Рабочий,
	               |	РабСрезПоследних.Конвеер КАК Конвеер
	               |ИЗ
	               |	РегистрСведений.Раб.СрезПоследних(
	               |			&Период,
	               |			Конвеер = &Конвеер
	               |				И НЕ Раб В (&ЗанРаботники)) КАК РабСрезПоследних
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	РабСрезПоследних.СкоростьСборки");
	
	ТЗРабЗаняты = Новый СписокЗначений;
	ТЗРабЗаняты.Очистить();
	СчРаб = 0;
	Пока СчРаб<ТЗРаб.Количество() Цикл
		 Для Каждого ТекКовнвеер из ТЗКонвееры Цикл
			Запрос.УстановитьПараметр("Период", ТекущаяДата());
			Запрос.УстановитьПараметр("Конвеер", ТекКонвеер.Конвеер);
			Запрос.УстановитьПараметр("ЗанРаботники", ТЗРабЗаняты);
			Результат = Запрос.Выполнить();
			Если Результат.Пустой() Тогда
				Сообщить("Для конвеера: " + ТекКонвеер.Конвеер +" не подобрали Работника!");
				Продолжить;
			КонецЕсли;
			Выборка = Результат.Выбрать();
			Выборка.Следующий();
			Сообщить("Для Конвеера: " + ТекКонвеер.Конверр + " подобрали работника: " + Выборка.Рабочий);
			ТЗРабЗаняты.Добавить(Выборка.Рабочий);
			СчРаб = СчРаб+1;

			ПараметрыОтбора = Новый Структура;
			ПараметрыОтбора.Вставить("Рабочий",Выборка.Рабочий);
			НайденныеСтроки = Текущий.НайтиСтроки(ПараметрыОтбора);
			Если НайденныеСтроки.Количество()>0 Тогда
				Для Каждого ТекСтр из НайденныеСтроки Цикл
					ТекСтр["Место"+ДеньМесяца] = ТекКонвеер.Конвеер;
				КонецЦикла;
			КонецЕсли;
			
		КонецЦикла;
	КонецЦикла; 
Показать

Но это не оптимальное распределение, а просто распределение по скорости сборки. Т.е. просто равномерно распределит всех работников по всем конвеерам с учетом скорости.
Предложения?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. rybusha 98 30.07.19 16:39 Сейчас в теме
По постановке вспомнились задачи из студенчества.Их решали симплекс методом
3. succub1_5 89 31.07.19 08:41 Сейчас в теме
(2)хех, теорию тоже знаю, знаю как в экселе сделать, знаю как в MathCad/MatLab, а как на 1С то? - тоже линейно - долго что пипец ;)
4. yurikmellon 6 08.08.19 09:45 Сейчас в теме
видимо других вариантов нет
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот