powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы. Оптимизация наборов красок при печати
82 сообщений из 82, показаны все 4 страниц
Алгоритмы. Оптимизация наборов красок при печати
    #38708573
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предыстория:

Есть примерно 100 оттенков красок ( N штук )
Надо напечатать 50-1000 картинок. Каждая картинка печатается разным набором (от 5 до 30, в среднем 15) оттенков, заранее известных
В печатающее устройство можно одновременно залить не более 30 оттенков (30 баночек там).

Чтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)

Задача:

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

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

P.S: Пишу наобум, вдруг кто-то сталкивался с похожим классом задач и сразу сможет задать "вектор решения" или ключевые слова.
А сам пока пойду гуглить.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708579
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,
хочешь повторить http://www.xrite.com/inkformulation-software ?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708583
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого, вообще в первые слышу про такую софтину.
Повторять конечно в мыслях не было, у меня узкая прикладная задача.

Мне сам алгоритм важен, а не конкретное уже существующее проприетарное решение.
За отсылку к какому-то паттерну (типа "о, это же типичная задача о рюкзаке") был бы особенно благодарен.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708604
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoЗа отсылку к какому-то паттерну (типа "о, это же типичная задача о рюкзаке") был бы особенно благодарен.ну да, похоже, так оно и есть! :)

Что-то вроде: Начинаем с одной картинки с *максимальным* количеством оттенков (30, если такая есть). Далее подбираем следующие картинки с оттенками, множество которых входит в множество оттенков первой картинки.
Если начальное кол-во меньше 30-ти, то можно будет добавлять и такие картинки, которые бы дополняли начальное множество до 30-ти.
Вполне возможно, этого будет достаточно.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708606
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

1. Упрощаем условия для наглядности:
- картинок будет 6 (а не 1 000)
- оттенков будет 7 (а не 100)
- для печати картинки используется 2-3 оттенка (а не 30)
- количество заливаемых банок краски 4 (а не 30)
2. Заполняем массив очередной порции картинок (чем больше, тем лучше) для сбора статистики и получаем статистику использования оттенков для печати данного набора картинок (см. пример):
- Оттенок 1 используется 2 раза
- Оттенок 2 используется 4 раза
- Оттенок 3 используется 3 раза
- Оттенок 4 используется 4 раза
- Оттенок 5 используется 1 раз
- Оттенок 6 используется 1 раз
- Оттенок 7 используется 0 раз
3. Заполняем 4 банки оттенками используемые по статистике набора максимально:
Это банки с оттенками 1, 2, 3, 4 ПРИЧЕМ ! приблизительно (согласно коеффициентам) банку с оттенком 1 заполняем примерно наполовину, банку с оттенком 2 заполняем полностью, банку с оттенком 3 заполняем примерно на две трети… (можно пристреляться, поточнее зная расход на картинку оттенка)
3. Печатаем:
Соответственно будут распечатаны картинки: 1, 2, 3, 5, 6
4. Печатаем остаток – картинку 4:
- очищаем пустую банку с оттенком 1 (мы ее целиком и не заправляли и у нее минимальный коэффициент) и заливаем в нее четверть (согласно коэффициенту) оттенок 5
- очищаем почти пустую банку с оттенком 3 (мы ее заправляли на две трети и снова минимальный коэффициент) и заливаем четверть (согласно коэффициенту) оттенок 6.
Печатаем…
5. Моем почти все пустые банки для перехода на новую порцию картинок.
Примечание:
Не утверждаю, что это оптимально (первое что пришло в голову), но уверен, что от этого можно оттолкнуться… может кто-то предложит и получше...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708607
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

Второй способ - итерационный / интерактивный: Позволяет печатать в реальном времени картинки, с учетом поступления во время печати новых картинок.

1. Вычисляем набор оттенков из максимального количества банок в 30 штук, которые позволяют распечатать
максимальное количество картинок из текущего набора картинок.
2. Заполняем банки и печатаем...
3. Добавляем новые картинки.
4. Выполняем пункт 1, но уже очищаем не используемые банки и заливаем в них новые оттенки и опять печатаем...
Итак пункты 3 и 4 в цикле...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708609
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

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

Хотя при увеличении количества картинок такая вероятность стремится к нулю

Вот например, если загрузить 1,2,3,4 то мы не напечатаем ни одной картинки:

...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708614
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmaganvano,

Второй способ - итерационный / интерактивный: Позволяет печатать в реальном времени картинки, с учетом поступления во время печати новых картинок.

1. Вычисляем набор оттенков из максимального количества банок в 30 штук, которые позволяют распечатать
максимальное количество картинок из текущего набора картинок.


Собственно в этом пункте моя задача и состоит :) мне надо вычленить набор, который позволит распечатать максимальное количество картинок из набора. Если данный пункт алгоритмизировать - то его можно повторять потом до бесконечности.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708616
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)А технологически возможно перезаправлять отдельно взятые баночки? Или только все сразу?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708622
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftanvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)А технологически возможно перезаправлять отдельно взятые баночки? Или только все сразу?

Возможно, но на практике 70% времени это (разборка аппарата + калибровка после перезаправки).
То есть наверное можно считать, что "все сразу". Поэтому и пытаюсь сократить именно количество перезаправок.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708624
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если взять логическую функцию со следующими предположениями:
1) На вход подается N разрядов с логическими значениями 0/1, они соответствуют оттенкам.
2) Функция возвращает значение 1, если в исходном наборе картинок есть картинка, которая печатается этим набором оттенков. Иначе 0.

Тогда задача сводится к минимизации ДНФ этой функции.
К сожалению, я не в курсе, как задача решается на произвольно большом количестве переменных. На небольшом (до 4 включительно) это удобно делать диаграммами Вейча.
Ссылка (первая попавшаяся) на тему - http://ptca.narod.ru/lec/lec4.html

P.S. Мысль ускакала, и теперь я уже не уверен в правильно написанного. Возможно, это полуночный бред :) И в минимизацию нужно как-то пришить количество баночек.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708625
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕсли взять логическую функцию со следующими предположениями:
1) На вход подается N разрядов с логическими значениями 0/1, они соответствуют оттенкам.
2) Функция возвращает значение 1, если в исходном наборе картинок есть картинка, которая печатается этим набором оттенков. Иначе 0.

Тогда задача сводится к минимизации ДНФ этой функции.
К сожалению, я не в курсе, как задача решается на произвольно большом количестве переменных. На небольшом (до 4 включительно) это удобно делать диаграммами Вейча.
Ссылка (первая попавшаяся) на тему - http://ptca.narod.ru/lec/lec4.html

P.S. Мысль ускакала, и теперь я уже не уверен в правильно написанного. Возможно, это полуночный бред :) И в минимизацию нужно как-то пришить количество баночек.

Почитал по ссылке - как я понял смысл текстов и методов - там просто всё сводится к перебору всех возможных сочетаний по K элементов из N элементов. И тупо проверке сколько какой набор покроет картинок.

Для малого набора красок это применимо, но для 100 красок
получается равным 10 в 25 степени, никакой современный компьютер не прожуёт столько сочетаний :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708629
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanovmag,

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

Хотя при увеличении количества картинок такая вероятность стремится к нулю

Неудачный ваш пример (на счет ни одной картинки).... у вас 30 банок на 15 оттенков за картинку (в 2 раза больше перекрытие), по этому в примере вашем неудачном на каждую картинку (пропорционально) должно быть не 4 банки а минимум 6 - 8 и тогда опять все напечатается за один заход... по этому первый вариант можно отмести только после виртуального прогона на реальных данных... так любую идею можно зарубить на корню....
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708632
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно провести ряд оптимизаций.
Например, исключить из рассмотрения все картинки, у которых набор оттенков совпадает или входит в набор какой-либо другой картинки. Такие "исключенные" картинки можно печатать одновременно с исходной ("покрывающей") картинкой.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708640
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно завтра учебник по теорверу с полки достану, может там чего нить в корелляционном анализе нарою, сегодня уже голова пухнет :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708642
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если маркировать краски не ноликами и единицами, а порядковым номером краски, то задача сводится к следующей:

Есть некоторое количество наборов чисел (в каждом наборе от 1 до 30 штук разных чисел от 1 до 100 ).
Надо найти такой массив из 30 чисел, который включает в себя наибольшее количество исходных наборов.
Или как-то "максимально пересекается" с наибольшим количеством наборов...

Короче спать пора.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708646
элементарщина
1) для каждой из картинок - составить список всех картинок, множества цветов которых входят во множество цветов картинки-"хозяина" списка (дублирование в списках допустимо)
при полном совпадении множеств цветов картинка с большим порядковым номером попадает в список к картинке с меньшим порядковым номером, но не наоборот
2) составить список картинок, не входящих ни в один список. всё, их число = числу перезаправок - 1
дубли исключить, конечно

видимо, думать над печатью каких-то картинок 2 разными наборами нужно будет, если это число получится слишком большим - тогда следует обработать списки, исключая дубли из меньших по объему списков, и самые короткие списки печатать в 2 прохода (если найдется возможность)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708686
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аптимизаторэлементарщина

да наверное не совсем так...

В конце получится 50 картинок, которые никуда... и придется чтоб распечатать каждую перед каждой картинкой пере заправлять все банки... вот тут то краске и пипец... очень наглядно в этом смысле решение транспортной задачи, в которой если идти таким способом получается самый не оптимальный результат, а оптимал как раз заключается в том, что нужно выбирать не всегда самые весомые узлы дабы общий вес узлов был максимален... например можно выбрать узлы с максимума по убыванию 5, 5, 5, 4, 2, 1, 1, 1, 1, 1, 1, 1 (последние как раз и есть сами по себе) и удельный вес узлов будет 28, а можно выбрать узлы 4, 4, 4, 3, 5, 4, 4, 3, 2, 3, 4, 4 и удельный вес узлов будет 44 что гораздо больше.... так и с краской будет - первые десять картинок распечатали с одним набором банок, а оставшиеся 50 картинок будем печатать с заменой всех банок перед каждой картинкой... вот это оптимизация будет...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708700
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

В общем случае это больше комбинаторика, по этому вот это:

anvanoЛадно завтра учебник по теорверу с полки достану

Скорее всего ни к чему...

Задача схожа с задачей выиграть в спортлото типа 5 из 36, только выигрышная комбинация не одна,
а несколько и они все известны (это наборы оттенков, описывающие картинки)...
Ну и сама задача состоит в том, что нужно так зачеркнуть карточки с 30 вариантами ответов (максимальное количество используемых банок) из возможных 100 вариантов оттенков, чтобы количество этих карточек было минимально (то есть минимальное количество заправок) для покрытия всех выигрышных комбинаций (печати всех картинок)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708787
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А растеризация делается? Или в палитре оттенков чистые цвета?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708801
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.А растеризация делается? Или в палитре оттенков чистые цвета?

угу... купить принтер с тремя банками (красный, синий и желтый) и херачить всё подряд, какая банка закончилась - такую и менять, а не морочить всем голову...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708823
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoЛадно завтра учебник по теорверу с полки достану, может там чего нить в корелляционном анализе нарою, сегодня уже голова пухнет :)вы все-таки обратите внимание и на мой пост :)

у вас там есть условие "охота, чтобы каждая картинка печаталась набором за один проход.", так мой подход учитывает это.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708828
vmagВ конце получится 50 картинок, которые никуда...1) как раз этому у меня был посвящен последний абзац - их можно печатать в 2 прохода (возможно, и больше) - а можно и в 1 - на усмотрение автора, но число перезаправок все равно можно уменьшить, только вводя 2-проходную печать
2) в условиях задачи про расход краски и экономию остатков ничего не говорилось. я понял так, что остатки сливаются из устройства обратно в большие банки
поэтому предположил, что алгоритм удаления дубликатов должен минимизировать число картинок, печатающихся в 2 и более прохода
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708857
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оптемезаторих можно печатать в 2 прохода (возможно, и больше)

Да выход... но это дополнительный учет: какую картинку в какие проходы посылать дополнительно и сколько раз... типа банки поменяли, значит напечатанные картинки 5, 7, 15,.... фигачим повторно еще и с этими банками.... ошибся, не ту подсунул и получил картину маслом - пикасо... а если красим на заводе бэху мера города (ну такая вот картинка у нас)... во веселуха получится... серо-буро-малиновый попугай....
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708871
дак и сам автор этого не хочет, но упомянул как возможность

главная задача - минимизация числа перезаправок - я считаю, решена
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708888
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagAlibek B.А растеризация делается? Или в палитре оттенков чистые цвета?

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

но вообще смущает необходимость печати чистыми цветами в количестве 30 оттенков постоянно. я еще понимаю разовые задачи. для прочих, ну правда, можно выбрать гамму из 30 и не париться, предлагая ее всем, а выбор из 100 за доп.плату.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38708967
тьфу ты, забыл совсем, что картинки из "списка невходящих" могут содержать и меньше 30 красок
то есть нужен еще этап объединения списков с доведением числа красок до 30
пока кажется, что лучше проверять возможность объединения, идя от больших списков к меньшим, но уверенности нет - нужно бы попробовать разные очередности объединения
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709054
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoс похожим классом задач и сразу сможет задать "вектор решения" или ключевые слова.

Мультиагентное планирование.

И стоит задуматься над тем, что практически полезен может быть любой более-менее очевидный алгоритм формирования очередности картинок.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709374
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


Мне почему-то вспомнился код Грея. У него такое свойство что два соседних числа
всегда отличаются 1 битом. Тоесть если-бы у нас были принтеры с 100 слотами для красок
то можно было просто отсортировать в сортировке Грея и получить профит.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709390
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне почему-то вспомнился код Грея. У него такое свойство что два соседних числа
всегда отличаются 1 битом. Тоесть если-бы у нас были принтеры с 100 слотами для красок
то можно было просто отсортировать в сортировке Грея и получить профит.Если бы был принтер с 100 слотами для красок, то порядок печати вообще перестал бы играть роль :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709398
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. Похоже на то.

На ум приходит группировать картинки. Или как-то сортировать.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709403
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас есть 3 действия с принтером.

Я-бы ввёл метрики стоимости.
OperationCostЗамена банки1.0Снятие банки0.5Установка банки0.5

И в целевой функции учитывал бы эти Costs.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709406
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonметрики стоимости.Судя по 16374212 , это вряд ли имеет смысл. Но сильно усложнит вычисления, которые и так простыми не выглядят.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда еще хуже. Нужна метрика количества краски на картинке. Причём
в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3%
краски - то сразу считаем ее пустой и перезаправляем.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709421
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНу тогда еще хуже. Нужна метрика количества краски на картинке. Причём
в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3%
краски - то сразу считаем ее пустой и перезаправляем.

Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета).

Пока прикинул примерный алгоритм с учетом всех советов выше :), попробую сегодня закодить, посмотрю что получится на примерах реальных данных.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709423
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoпопробую сегодня закодить, посмотрю что получится на примерах реальных данных.главное, чтобы время вычислений было меньше времени на "лишние" смены красок, а то не окупится :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709437
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoПока прикинул примерный алгоритм с учетом всех советов выше :), попробую сегодня закодить, посмотрю что получится на примерах реальных данных.


miksoftглавное, чтобы время вычислений было меньше времени на "лишние" смены красок, а то не окупится :)

Попробуй крутиться только в наборе картинок, иначе действительно компа и мощей не хватит....
1. Разложить палитру каждой картинки и N картинок и получить массив вариантов банок:
картинка1 : Банки - 1, 5, 7, 8, 33, 45, 48, 56, 60
картинка2 : Банки - 3, 4, 6, 7, 21, 34, 35, 39, 44, 49, 56, 77, 88, 99
.............................................................................................
картинка2 : Банки - 5, 6, 9, 10, 22, 35, 36, 40, 48, 50, 57, 79, 98, 99, 100
2. Ну а потом группировать только этот конечный набор картинок в максимальные количества банок 30 шт., дабы минимальным количеством вариантов по 30 банок покрыть все наборы картинок...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709443
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)
Я бы начал с вопроса "перезаправляется ли всё устройство разом, или же можно/нужно заменять отдельные оттенки побаночно и соответственно быстрее".

А вообще сходу напоминает задачу кластеризации. Для начала ищем префиксы - в смысле, варианты "картинка А печатается подмножеством оттенков картинки Б", ну а дальше, получив меньшее множество существенно разных картинок, ищем "кластера", в которые они укладываются.

П.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709447
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerП.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок...
Думаю вряд ли. Для проф. оборудования, емкость баночки явно значительно больше минимального тиража.

А для большого тиража и промыть офсет было бы не жалко. IMHO

конечно, интересно, что это за печать такая, где краски не смешиваются: шелкография, флексография (больше и слов то не знаю) ?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709451
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ бы начал с вопроса "перезаправляется ли всё устройство разом, или же можно/нужно заменять отдельные оттенки побаночно и соответственно быстрее".Уже отвечено - 16374212
softwarerДля начала ищем префиксы - в смысле, варианты "картинка А печатается подмножеством оттенков картинки Б"Уже было - 16374385 .
softwarerищем "кластера", в которые они укладываются.Есть варианты помимо полного перебора? Насколько я понял вопрос, он изначально и был "как ищем?".
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709453
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerП.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок...Полезет, но насколько я понял топикстартера, операция доливки краски значительно дешевле смены краски. Т.е. особой роли не играет.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709455
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЕсть варианты помимо полного перебора? Насколько я понял вопрос, он изначально и был "как ищем?".
Насколько я помню, для кластеризации нынче любят генетические алгоритмы. Но сам предпочёл бы погуглить, прежде чем утверждать.

http://ru.wikipedia.org/wiki/Кластерный_анализ
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709465
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanomaytonНу тогда еще хуже. Нужна метрика количества краски на картинке. Причём
в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3%
краски - то сразу считаем ее пустой и перезаправляем.

Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета).

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

Например в таком виде.
imageinksImage01.jpg1,2,3,4,5,6Image02.jpg1,2,3,4,7.....Image1000.jpg87,90,93,98,99
Мы конечно можем их нагенерить и сами но от качества и репрезентативности
выборки зависит и результат решения. По опыту знаю что слишком уж
"синтетические" случайные числа могут дать ложный эффект удачного
выбора алгоритма.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709467
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдается мне, что кластерный анализ здесь так просто не пришить...
В ряде случаев происходит странное. Например, картинка А использует уникальную краску №1 и картинка Б использует уникальную краску №2, их наборы красок не пересекаются, а в сумме они используют не более 30 красок, то их имеет смысл напечатать из одного набора красок (а если их не удалось объединить с другими картинками, то и придется). Хотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709472
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftХотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе.
Расстояние между ними равно одному (если они используют по одной уникальной краске). Вы, безусловно, правы в том, что как и в любом кластерном анализе, придётся что-то делать с "ошмётками", не попадающими ни в один кластер, как-то их собирать. В этой задаче ошмётки могут дополнительно образовываться и из-за похожих на "готовый кластер", но выводящих за лимит 30 красок картинок.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709481
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermiksoftХотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе.
Расстояние между ними равно одному (если они используют по одной уникальной краске).В той цитате пропущена фраза "их наборы красок не пересекаются".

Под уникальной краской подразумевалось, что эти краски не используются больше ни в какой другой картинке из набора, т.е. это именно "ошмётки". И, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709487
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftИ, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат.
Могут. Тем не менее, общая идея имхо остаётся той же - нужно найти минимальное число "кластеров", в которые улягутся все картинки. В частности, те картинки А и Б, которые Вы рассматриваете, таки имеют пересечения по цветам с какими-то другими картинками, то есть условно близки какому-то из кластеров.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709501
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermiksoftИ, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат.
Могут. Тем не менее, общая идея имхо остаётся той же - нужно найти минимальное число "кластеров", в которые улягутся все картинки. В частности, те картинки А и Б, которые Вы рассматриваете, таки имеют пересечения по цветам с какими-то другими картинками, то есть условно близки какому-то из кластеров.


Вода в ступе... обо всем этом говорилось в первом десятке реплик... и от того, что теперь об этом говорить другими словами (кластерами - шмастерами) - ничего не изменится.... нужно просто действительно дождаться реального примера от ТС а не тупо тролить типа кто заумнее....
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709518
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonanvanoпропущено...


Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета).

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


Вот пример реальных тестовых данных.
Первая строка - номера красок (их тут 70 разных)
Первый столбец - названия картинок
единицы - краска используется в картинке
нули - не используется

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

Файл: http://anvano.ru/images.xlsx
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709519
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevконечно, интересно, что это за печать такая, где краски не смешиваются: шелкография, флексография (больше и слов то не знаю) ?

Ну это я такую постановку задачи выбрал просто :) надо же было кейс придумать.

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

Задача от этого не меняется. Надо оптимизировать по количеству "перенастроек" оборудования.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709537
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, всё-таки поступило уточнение, нельзя картинку повторно пропечатать на другом наборе красок.
Так что считаем, что это скорее ткацкий станок с нитями и каждое изделие должно быть целиком соткано на заправленном наборе нитей, (типа нельзя полотнище повторно воткнуть в станок и вплести в середину нити из другого набора :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709541
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoНу это я такую постановку задачи выбрал просто :) надо же было кейс придумать.

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


anvanoДа, всё-таки поступило уточнение, нельзя картинку повторно пропечатать на другом наборе красок.
Так что считаем, что это скорее ткацкий станок с нитями и каждое изделие должно быть целиком соткано на заправленном наборе нитей

Это мля скорее всего новый вид ПРО с разными ракетами, ясен пень - все самолеты и ракеты нужно сбивать с первого раза....
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709553
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoВот пример реальных тестовых данных.
Первая строка - номера красок (их тут 70 разных)
Первый столбец - названия картинок
единицы - краска используется в картинке
нули - не используется

кому нужны данные в виде бд для удобства то качайте mdb в формате Акцесс 2000...
- таблица Лист1 собственно данные из экселя, просто добавил счетчик в начало и поле выбора в конец...
- запрос (Использование банок в картинках) покажет сколько раз банка используется при печати 25 картинок...

- Пример скорее всего не совсем реальный (банки представлены по убыванию рейтинга использования и нет ни одной банки, которая не используется вообще)....
- но есть вышеупомянутые хвосты (банки с 46 по 70 используются всего один раз) см. запрос
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709565
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>банки представлены по убыванию рейтинга использования и
ну в экселе отсортировал

>нет ни одной банки, которая не используется вообще)....
а зачем они нужны? первое что делается - отбрасываются неиспользуемые краски и засчет этого уменьшается матрица
представь, что банок 100, как в исходной постановке, но 30 из них не используются вообще ни в одной картинке

>но есть вышеупомянутые хвосты (банки с 46 по 70 используются всего один раз) см. запрос
да, хвосты есть в данных
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709580
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

Да не... все нормально... и примерчик удачный... башню можно снести... особенно что банки 64 - 70 используются только один раз и только для печати картинки 8, а банки 53-59 печатают только картинку 1...
с кандачка не получится решить задачку....
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709591
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут мысль пришла с рекурсивным обходом дерева.

Берём картинку №1 и начинаем мёрджить её массив рекурсивно с остальными картинками.
Условие выхода из рекурсии - количество элементов в мёрдже >= 30

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

Потом отсортировать полученные наборы по количеству покрытых картинок - выкинуть эти картинки из списка.
Для оставшихся картинок повторить всё заново.

Ща попробую закодить весь этот бред, мож чего получится.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709604
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При том варианте как ты нарисовал в мы имеем булеву матрицу.
По вертикали - файлы. По горизонтали - краски.
Задача - отсортировать строки таким порядком чтобы суммарное
расстояние Хэмминга между векторами красок было минимальным.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709748
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoТут мысль пришла с рекурсивным обходом дерева.

похоже если не удастся подвести условие задачи под уже известный тип задач, то всё будет упираться в неподъемный по ресурсам тупой перебор (комбинаторика тут просто космическая)...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709948
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу объема работ.

Думаю что алгоритм должен работать для пачки картинок.
Что такое пачка? Возможно это 1 рабочий цикл издательства.
Получили флешку с картинками. Пульнули ее в алгоритм.
Оптимизировали порядок. Отпечатали. Всё. Цикл закончен.

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

anvano, верно?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38709994
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо поводу объема работ.

Думаю что алгоритм должен работать для пачки картинок.
Что такое пачка? Возможно это 1 рабочий цикл издательства.
Получили флешку с картинками. Пульнули ее в алгоритм.
Оптимизировали порядок. Отпечатали. Всё. Цикл закончен.

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

anvano, верно?

Да, именно так.

Я закодил уже первую часть своего алгоритма с рекурсией - вобщем для пачек до 30 штук канает, получается оч хорошо.
В районе 30 штук рекурсия длится около 3 минут.

Конечно к тысяче сложно будет пришить это всё.
С другой стороны, я попробовал тупо прерывать рекурсию на какой-то итерации - результаты тоже хороши. Это конечно будет не оптимальный вариант (т.к. не было полного перебора дерева), но сойдет.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710316
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, допилил скрипт с рекурсивным алгоритмом для тестовых данных (25 штук) выполняется секунд 40.

За 4 перенастройки палитры можно распечатать все 25 картинок :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710337
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 50 картинок Execution time уже 364.8032 сек. в 10 раз больше.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710359
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano, делись софтом, хвастун!
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710381
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonanvano, делись софтом, хвастун!

Да какой там софт, обычный скрипт на PHP :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710386
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

ну чё, нормально... и время тоже приемлемое (это потому что всё внутри кастрюли)...
нужно еще прогнать около 10 - 50 вариантов для достоверности...
сколько пообещали за решение ? задачка то денежная, и материал и время, и сбережение оборудования...
а чё сразу то не сделал ? Без того чтоб в бока попинали никак ?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38710710
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше.
50 картинок оптимизирует 6 минут?????
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711017
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonanvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше.
50 картинок оптимизирует 6 минут?????

Одна так называемая "перезаправка" в реальности занимает около часа.

Так что если скрипт будет даже целый час выполняться и при этом уменьшит количество перезаправок - уже профит.
Т.к. это будет час работы компьютера, а не оплачиваемого специалиста
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711064
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... 6 минут ждать ответа от приложения. Это как-то жестоко.

Иногда пользователь согласен видеть "грубый результат" через несколько секунд
старта приложения. А уж потом - его уточнение.

И в твоём алгоритме как мне кажется это будет хорошим подходом.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711076
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonanvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше.
50 картинок оптимизирует 6 минут?????

Это язык интерпретируемый, плюс функции используются тяжелые ( array_merge, sort, array_unique) на каждой итерации.

Для 25 картинок там всего-лишь 240 тыс итераций, а оно целых 40 секунд их молотит. Это очень долго, согласен.

Простор для оптимизации алгоритма широк - можно заменить операции с массивами на какие-то битовые манипуляции, переписать всё на более низкоуровневом языке типа C++ - должно ускориться существенно.

Но всё равно, рекурсивный обход - сложность возрастает экспонециально (если не факториально) от количества элементов.

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

Плюс у меня не делется предварительная обработка массива данных.
Во-первых, надо заранее выкидывать их процесса оптимизации все картинки, которые полностью покрываются какой-то другой картинкой. Т.к. очевидно, если мы палитрой распечатаем эту родительскую картинку - то той же палитрой распечатаем все дочерние картинки, которые на 100% по краскам пересекаются с родительской.
Во-вторых, надо исходный набор отсортировать по увеличению количества красок и начинать оптимизацию с картинок, с наименьшим количеством красок. Тогда мы сможем очень быстро составлять палитры (просто стыкуя картинки), покрывающие большое количество картинок с малым набором красок - их выкидывание из дальнейших шагов так же сильно уменьшит объем расчетов.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711083
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

В третьих, на каждой итерации можно проверять еще не охваченные картинки на предмет возможности их печати текущей версией палитры.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711344
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano, предложу оптимизацию.

Посчитай частоты использования всех красок для всех картинок. Самые популярные краски
вынеси для 1-й итерации твоего алгоритма.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711355
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПосчитай частоты использования всех красок для всех картинок. Самые популярные краски
вынеси для 1-й итерации твоего алгоритма.

это я предложил в самом начале... проверил, оказалось - фигня... его первая тридцатка покрывает 13 картинок, а при таком подходе (по популярности) только 7 картинок и на второй итерации - вообще затык, ни одной картинки... по этому компоновка картинок перебором в 30- ку, которую он сам и предложил пока самая рулёзная... перекрыть ее может (по времени выполнения) только какой нибудь известный метод, который пока никто не усмотрел в этой задаче...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711389
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoВо-вторых, надо исходный набор отсортировать по увеличению количества красок и начинать оптимизацию с картинок, с наименьшим количеством красок. Тогда мы сможем очень быстро составлять палитры (просто стыкуя картинки), покрывающие большое количество картинок с малым набором красок - их выкидывание из дальнейших шагов так же сильно уменьшит объем расчетов.А я вот, считаю что надо наоборот - начинать с картинок с максимальньм количеством красок.
Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок, и будет затык для тех, у которых красок побольше.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711409
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок

Это как? В примере Есть картинки и с одной краской и с двумя, тут и слепому видно что в 30 банок влезет сразу минимум 30 картинок с одной уникальной краской, а одна картинка в 19 банок сразу съедает пол обоймы...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711412
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagS.G.Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок

Это как? В примере Есть картинки и с одной краской и с двумя, тут и слепому видно что в 30 банок влезет сразу минимум 30 картинок с одной уникальной краской, а одна картинка в 19 банок сразу съедает пол обоймы...Вы пропустили прочитать конец моего предложения, ну да ладно. Спорить, наверное можно долго, пусть ТС попробует прогнать несколко тестов с *реальными* данными, сортируя и так и иначе.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711421
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.,

На самом деле в его алгоритме никогда не будет затыков, хоть оттуда иди, хоть отсюда, ибо он сначала засовывает в обойму одну из картинок (грубо говоря), а потом добивает обойму до 30 за счет добавления других картинок, по этому самый плохой исход - это печать в конце по одной картинке, но все равно без затыков... а оптимальным решением как раз будет правильный выбор сразу всех оптимальных узлов вектора, а не подбор оттуда или отсюда, но пока никто не смог эту задачу приблизить к какой-то типовой задаче с готовым оптимальным алгоритмом решения...
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711633
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag по этому самый плохой исход - это печать в конце по одной картинке, но все равно без затыков... Именно это я и называю "затыком", когда в конце выполнения алгоритма, останутся несколько (много) картинок, с совершенно несовпадающими палитрами. Поэтому считаю, что начиная с картинок с большой палитрой, этого можно будет избежать. Но, к сожалению, доказать не могу (да и не собираюсь), назовем это интуицией ;)

vmag но пока никто не смог эту задачу приблизить к какой-то типовой задаче с готовым оптимальным алгоритмом решения...ну это уж сам автор, пусть попробует пару-тройку алгоритмов, погоняет на разных данных..
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38711685
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.Именно это я и называю "затыком", когда в конце выполнения алгоритма, останутся несколько (много) картинок, с совершенно несовпадающими палитрами. Поэтому считаю, что начиная с картинок с большой палитрой, этого можно будет избежать.
Не приходило ли Вам в голову, что одну и ту же последовательность картинок можно печатать и "он начала к концу", и "от конца к началу"? И что вопрос выбора "вначале много цветов или мало" по сути сводится к вопросу того или иного переворота этой последовательности?
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38811956
Ибн Хоттаб
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно написать метаэвристику, в которой пространством решений будет пространство всех возможных перестановок последовательности картинок, целевая функция будет имитировать процесс печати/перезарядки, а возвращать количество перезарядок. Какой именно алгоритм использовать - без разницы. Решение в любом случае будет достаточно неплохим. О решении этой задачи к оптимальности можете просто забыть, она NP-hard (частный случай Partition problem), при таком количестве переменных как у вас решить ее нереально.
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38827206
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут наткнулся на подробное описание Bin Packing Problem
http://www.or.deis.unibo.it/kp/Chapter8.pdf

И на весьма интересное описание генетического алгоритма оптимизации в приложении к этой проблеме.
http://www.codeproject.com/Articles/633133/ga-bin-packing

Понятно, что у меня не совсем чистая Bin Packing Problem, но есть очень много общего и можно попытаться натянуть сову на глобус и закодить этот генетический алгоритм. Вдруг чего выгорит :)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38828325
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano закодить Только возьмите компилируемый язык.
Скрипты для комбинаторных задач - не совсем то ;)
...
Рейтинг: 0 / 0
Алгоритмы. Оптимизация наборов красок при печати
    #38828710
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvanoИ на весьма интересное описание генетического алгоритма оптимизации в приложении к этой проблеме.
http://www.codeproject.com/Articles/633133/ga-bin-packing

Понятно, что у меня не совсем чистая Bin Packing Problem, но есть очень много общего и можно попытаться натянуть сову на глобус и закодить этот генетический алгоритм. Вдруг чего выгорит :)
Генетический алгоритм это вобщем-то даже не алгоритм а подход. К задачам поисков оптимальностей.
И выхлоп его будет зависеть от правильности оценочной формулы. И эта формула лежит не в ГА а в твоей
задаче. Ты сам должен разаработать оценку пригодности или непригодности кандидатов.
...
Рейтинг: 0 / 0
82 сообщений из 82, показаны все 4 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы. Оптимизация наборов красок при печати
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]