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

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

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

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

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)