Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16

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

17.01.2018, 18:26. Показов 4575. Ответов 14

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с задачкой на Прологе:
Имеется n деталей и m станков. Каждая деталь характеризуется временем обработки. Станок обрабатывает любую деталь сразу, все станки одинаковы. Определить порядок обработки деталей на станках, когда все детали будут обработаны за минимальное время.
Знаю только, что решается перебором
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2018, 18:26
Ответы с готовыми решениями:

Вычислить время, за которое будут обработаны все детали по формуле
помогите пожалуйста решить задачу! В цехе обрабатывается N одинаковых деталей на С станках. Время обработки детали T минут. Определить...

Требуется по начальному расположению деталей на первом конвейере определить время, через которое все детали будут изготовлены
Совсем не могу разобраться в программе помогите пожалуйста. Имеются три конвейера. Конвейеры работают независимо друг от друга....

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

14
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
18.01.2018, 17:24
Цитата Сообщение от aptem33 Посмотреть сообщение
Знаю только, что решается перебором
А подробней, я вот перебора не вижу...

Добавлено через 7 минут
Цитата Сообщение от arlat Посмотреть сообщение
я вот перебора не вижу
Да я вообще ничего не вижу...
"Станок обрабатывает любую деталь сразу, все станки одинаковы."
Простая сортировка деталей по времени и есть ответ.

Добавлено через 2 минуты
Цитата Сообщение от aptem33 Посмотреть сообщение
Определить порядок обработки деталей на станках
ну разве в детали добавить кроме времени номер станка, после сортировки деталей по времени одна простая рекурсия
0
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
18.01.2018, 19:17  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
Простая сортировка деталей по времени и есть ответ.
Число станков и деталей не одинаково, разве достаточно простой сортировки?
Допустим отсортируем по убыванию, а дальше что? Берём деталь с наименьшим временем и отдаём на обработку на тот станок который в данный момент свободен? Ох, что-то тяжело мне с логическим программированием.
Цитата Сообщение от arlat Посмотреть сообщение
А подробней, я вот перебора не вижу...
Я говорю перебор потому что задача расположена в разделе "перебор", а вот как применить его я и сам не понял.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.01.2018, 13:49
Дайте пример спецификации данных, что на входе и что на выходе.
Собственно, не понятно как в принципе можно решать задачу без спецификации.
И на каких данных тестировать, опять-таки...
0
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
19.01.2018, 13:57  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
Дайте пример спецификации данных, что на входе и что на выходе.
К сожалению ничего такого не указано, но в качестве примера решения задач такого типа приводится вот такой код:
Prolog
1
2
3
4
5
6
7
8
num(X) :- member(X, [0,1,2,3,4,5,6,7,8,9]).
gen([]).
gen([X|T]) :- num(X), gen(T).
p([A,B,C, D,E,F]) :-
A + B + C =:= D + E + F.
lucky([A,B,C, D,E,F]) :-
gen([A,B,C, D,E,F]),
p([A,B,C, D,E,F]).
А вот рекомендации:
Выполняйте аналогично примеру в материалах лекции, начи-
ная с формальной постановки задачи как задачи CSP. Для задачи
о счастливых билетах вектор переменных V — это набор пере-
менных [A,B,C,D,E,F], Области значений всех переменных в
первоначальной постановке — числа из диапазона [0,1,2,…,9],
поэтому достаточно было запрограммировать всего один генера-
тор gen/1.
Буду очень благодарен, если Вы мне поможете, если не решить, так хотя бы понять как
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.01.2018, 14:03
Цитата Сообщение от aptem33 Посмотреть сообщение
Ох, что-то тяжело мне с логическим программированием.
Да нет здесь никаких особых подходов.
1. сортируем по времени список деталей, по возрастанию
2. достаем из списка деталей и дополняем номером станка: 1 деталь - 1 время - 1 станок, ..., m деталь - m время - m станок, m+1 деталь - m+1 время - 1 станок и т.д. до n детали
на бейсике, право дело, можно написать, а на Прологе это уже надо хоть начать что-то, дальше подскажет кто-нибудь здесь

Добавлено через 2 минуты
Цитата Сообщение от aptem33 Посмотреть сообщение
аналогично примеру в материалах лекции
плохой пример, по ходу лектор сам не очень в Прологе

Добавлено через 1 минуту
Цитата Сообщение от aptem33 Посмотреть сообщение
К сожалению ничего такого не указано
Самостоятельно пример сделайте, на листочке, образно говоря.

Добавлено через 1 минуту
Да, первичную реализацию можно выкатить, но студент тоже должен думать, а не тупо спихивать материал.
0
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
19.01.2018, 14:05  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
плохой пример, по ходу лектор сам не очень в Прологе
И я вот не могу связать пример с задачей, может для начала на Яве написать, а потом посмотрим, может что в голову придёт))
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.01.2018, 14:08
Цитата Сообщение от aptem33 Посмотреть сообщение
может для начала на Яве написать
На листочке нарисуйте, без шуток.

Добавлено через 3 минуты
Кстати, да, на каком Прологе идет обучение?
0
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
19.01.2018, 14:14  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
На листочке нарисуйте, без шуток.
Сейчас буду рисовать)
Цитата Сообщение от arlat Посмотреть сообщение
Кстати, да, на каком Прологе идет обучение?
SWI-Prolog, хотя думаю, что это не принципиально
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
19.01.2018, 15:48
Цитата Сообщение от aptem33 Посмотреть сообщение
SWI-Prolog, хотя думаю, что это не принципиально
Это как сказать У SWI есть такая вещь как онлайн

Добавлено через 5 минут
Цитата Сообщение от arlat Посмотреть сообщение
У SWI есть такая вещь как онлайн
А режим Notebook это просто находка для выполнения и оформления лаб.
1
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
19.01.2018, 17:36  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
Это как сказать У SWI есть такая вещь как онлайн
Спасибо) Протестирую
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
20.01.2018, 17:25
Ну явно в постановке задачи полная чушь

Добавлено через 5 минут
Вот после таких спецификаций и постановок задач, такие потом реализации и получаются.

Добавлено через 7 минут
Где здесь задача удовлетворения ограничений (Constraint Satisfaction Problem — CSP), ну помогите мне тупому, не вижу.

Добавлено через 17 минут
Вот хотя бы добавить:
m станков запускаются на рабочую смену;
время обработки соответствует расходу энергии;
обработать n деталей так, чтобы за каждую смену суммарный расход энергии был близок к оптимальному.
И то, надо бы еще как-то развернуть, что такое оптимальный расход энергии:
при обработке деталей каждой сменой перепад в суммарном расходе энергии за смену при переходе от смены к смене должен стремится к минимальному.
Но это не про минимальное время, и не про сортировку, тут хоть как-то уже похоже на задачу удовлетворения ограничений.
Это так, нахрапом... Формулировка таких задач должна очень тщательно прорабатываться.

Добавлено через 2 минуты
Цитата Сообщение от aptem33 Посмотреть сообщение
Определить порядок обработки деталей на станках, когда все детали будут обработаны за минимальное время.
А формально типа да, великий и могучий русский язык, только за кадром остался час лекции

Добавлено через 6 минут
Цитата Сообщение от aptem33 Посмотреть сообщение
в качестве примера решения задач такого типа приводится вот такой код
ну да, здесь идет подбор, но чего именно, - из списка чисел подобрать таких шесть, где сумма первых трех из них будет равна сумме оставшихся трех. Удача (lucky), если генерация (gen) соответствует ограничению (p).

Добавлено через 8 минут
вот откуда уши торчат

Добавлено через 5 минут
Рекомендация прежняя, показать на листочке использование ограничения в этой задаче, на самых простых данных, типа два станка, и, ну там 6-8 деталей.
1
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 16
20.01.2018, 19:12  [ТС]
arlat, Вам тоже задача покоя не даёт?)

Добавлено через 25 минут
arlat, Вот кстати, нашёл в другой книге:
Имеется n деталей и m станков. Каждая деталь характеризуется
временем обработки (для каждой детали время обработки на всех стан-
ках одинаково). Станок в каждый момент времени обрабатывает только
одну деталь. Детали на каждом станке обрабатываются последовательно.
Необходимо определить такое назначение деталей на станки, чтобы вре-
мя окончания обработки последней обрабатываемой детали было бы ми-
нимальным.
Рекомендация: вершиной дерева перебора будет n – вектор. Тогда
значение i-ой координаты этого вектора будет совпадать с номером стан-
ка, на который мы назначили i-ую деталь. В корень дерева мы положим
0-вектор.

Добавлено через 1 минуту
Может это что-то даст, но точно не мне)

Добавлено через 2 минуты
http://edu.usfeu.ru/Uploads/Me... 031_54.pdf
0
97 / 78 / 12
Регистрация: 07.06.2015
Сообщений: 132
Записей в блоге: 12
22.01.2018, 14:53
Единственное, что могу предположить, это такой формат входных данных:
details=[5,10,2,17,4,5,9,22], где цифры - это время обратобки деталей. То есть, у нас 8 деталей, для каждой свое время обработки.
Станков, допутим, 2.
Тогда решение выглядит довольно просто(если перебором):
- на первый станок одну деталь, на второй все остальные. считаем наибольшее время из двух станков, комбинацию деталей по станкам, сохраняем.
- на первый станок одну деталь, но другую....
- ....
- на первый станок 2 детали...
- на первый станок 2 детали, но другие...
....
в результате наименьшее время и комбинация деталей по станкам, нам доступны.
по временам вычисляем порядковые номера деталей из входного списка, выдаем результат.
можно с самого начала зазипать два списка - входной и [1,2,..] чтобы вконце проще было определять порядковые номера правильного ответа.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
22.01.2018, 17:00
Цитата Сообщение от aptem33 Посмотреть сообщение
чтобы время окончания обработки последней обрабатываемой детали было бы минимальным
+
Цитата Сообщение от aptem33 Посмотреть сообщение
Рекомендация
это совсем не то же самое, что
Цитата Сообщение от aptem33 Посмотреть сообщение
когда все детали будут обработаны за минимальное время
т.е. формально похоже, но явно пояснение и рекомендация должны быть более развернутыми.
получается, пока один станок обрабатывает одну деталь, на другом уже может быть закончена очередная деталь и взята на обработку следующая, тут да, есть о чем подумать, но чистым перебором, это можно уйти в переполнение стека легко, только если совсем мало станков и деталей

Добавлено через 9 минут
Цитата Сообщение от arlat Посмотреть сообщение
тут да, есть о чем подумать
опять-таки нужно примерно знать, что препод хочет.
перебором, ну очень плохо, тут какую-то методику надо применять, я не знаю какую, но точно не просто перебором.
на ум приходит, что после сортировки по возрастанию, закидывать детали по очереди min время / max время, как закончились станки, следующий проход наоборот max время / min время.
но все это голословно, надо экспериментировать в попытке найти оптимальное решение, в чем и состоит применение методик искусственного интеллекта

Добавлено через 12 минут
Или сначала сложить время обработки всех деталей и разделить на количество станков, найдем среднее.
При составлении векторов для станка, останавливать очередную итерацию, если сумма вектора больше среднего.
Или это не среднее должно быть, а другим способом вычисленное ограничение, ограничение (!), в чем и есть суть, - уйти от полного перебора.

Добавлено через 4 минуты
Цитата Сообщение от arlat Посмотреть сообщение
это можно уйти в переполнение стека легко
и времени выполнения тоже

Добавлено через 8 минут
Нет min/max не очень.
Можно по возрастанию, исключаю детали из списка в станки, потом по убыванию оставшегося списка деталей, потом опять по возрастанию.
Теоретически, строго минимальное все равно надо искать на полном переборе, но какое-то ограничение должно быть, а может и не одно.

Добавлено через 1 минуту
Цитата Сообщение от aptem33 Посмотреть сообщение
Вам тоже задача покоя не даёт?
Да не особо, просто это хоть что-то, по сравнению с той лабудой, которую здесь выкладывают, как задачи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2018, 17:00
Помогаю со студенческими работами здесь

Что вероятнее: две детали обработаны одним и тем же станком или они обработаны разными станками?
Деталь обрабатывается на одном, из двух имеющихся станков, причем производительность 1-го станка в два раза больше, чем второго. Что...

Узнать за какое минимальное время (в минутах) будут надуты все шарики при оптимальной работе всех участников.
Школьный бал Во время проведения школьного бала планируется запустить m одинаковых воздушных шариков. Наполнить их воздухом...

Найти время, которое должно пройти до момента, когда часовая и минутная стрелка будут перпендикулярны одна другой
Помогите написать программу,циклы нельзя использовать!!! Целые числа m(0<m<=12) и n(0<=n<60),которые определяют количество часов и...

На двух станках обрабатываются однотипные детали. Вероятность брака для станка No1 составляет 0,03, для станка No2 — 0,02. Обработанные детали складыв
На двух станках обрабатываются однотипные детали. Вероятность брака для станка No1 составляет 0,03, для станка No2 — 0,02. Обработанные...

Определить время обработки партии детали каждого наименования
Задан массив (размерность 15) записей следующей структуры: 1) Номер Детали; 2) Наименование детали; 3) Партия детали данного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru