|
|
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Предыстория: Есть примерно 100 оттенков красок ( N штук ) Надо напечатать 50-1000 картинок. Каждая картинка печатается разным набором (от 5 до 30, в среднем 15) оттенков, заранее известных В печатающее устройство можно одновременно залить не более 30 оттенков (30 баночек там). Чтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.) Задача: Имея на руках таблицу с оттенками для каждой картинки, надо оптимизировать количество перезаправок печатающего устройства. Теоретически одну и ту же картинку можно прогнать на нескольких разных наборах, но на практике это вызывает некоторые сложности (краска должна высохнуть) и конечно охота, чтобы каждая картинка печаталась набором за один проход. P.S: Пишу наобум, вдруг кто-то сталкивался с похожим классом задач и сразу сможет задать "вектор решения" или ключевые слова. А сам пока пойду гуглить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 21:22 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, хочешь повторить http://www.xrite.com/inkformulation-software ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 21:37 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Ого, вообще в первые слышу про такую софтину. Повторять конечно в мыслях не было, у меня узкая прикладная задача. Мне сам алгоритм важен, а не конкретное уже существующее проприетарное решение. За отсылку к какому-то паттерну (типа "о, это же типичная задача о рюкзаке") был бы особенно благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 21:57 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoЗа отсылку к какому-то паттерну (типа "о, это же типичная задача о рюкзаке") был бы особенно благодарен.ну да, похоже, так оно и есть! :) Что-то вроде: Начинаем с одной картинки с *максимальным* количеством оттенков (30, если такая есть). Далее подбираем следующие картинки с оттенками, множество которых входит в множество оттенков первой картинки. Если начальное кол-во меньше 30-ти, то можно будет добавлять и такие картинки, которые бы дополняли начальное множество до 30-ти. Вполне возможно, этого будет достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:11 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
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. Моем почти все пустые банки для перехода на новую порцию картинок. Примечание: Не утверждаю, что это оптимально (первое что пришло в голову), но уверен, что от этого можно оттолкнуться… может кто-то предложит и получше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:13 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, Второй способ - итерационный / интерактивный: Позволяет печатать в реальном времени картинки, с учетом поступления во время печати новых картинок. 1. Вычисляем набор оттенков из максимального количества банок в 30 штук, которые позволяют распечатать максимальное количество картинок из текущего набора картинок. 2. Заполняем банки и печатаем... 3. Добавляем новые картинки. 4. Выполняем пункт 1, но уже очищаем не используемые банки и заливаем в них новые оттенки и опять печатаем... Итак пункты 3 и 4 в цикле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:30 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmag, Спасибо, я думал о распределении по встречаемости. Но тут смущает вероятность наткнуться на распределение, при котором загрузив 4 наиболее часто встречающихся цвета мы не сможем вообще ни одной картинки напечатать. Хотя при увеличении количества картинок такая вероятность стремится к нулю Вот например, если загрузить 1,2,3,4 то мы не напечатаем ни одной картинки: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:39 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmaganvano, Второй способ - итерационный / интерактивный: Позволяет печатать в реальном времени картинки, с учетом поступления во время печати новых картинок. 1. Вычисляем набор оттенков из максимального количества банок в 30 штук, которые позволяют распечатать максимальное количество картинок из текущего набора картинок. Собственно в этом пункте моя задача и состоит :) мне надо вычленить набор, который позволит распечатать максимальное количество картинок из набора. Если данный пункт алгоритмизировать - то его можно повторять потом до бесконечности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:51 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)А технологически возможно перезаправлять отдельно взятые баночки? Или только все сразу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2014, 23:57 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
miksoftanvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.)А технологически возможно перезаправлять отдельно взятые баночки? Или только все сразу? Возможно, но на практике 70% времени это (разборка аппарата + калибровка после перезаправки). То есть наверное можно считать, что "все сразу". Поэтому и пытаюсь сократить именно количество перезаправок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 00:08 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Если взять логическую функцию со следующими предположениями: 1) На вход подается N разрядов с логическими значениями 0/1, они соответствуют оттенкам. 2) Функция возвращает значение 1, если в исходном наборе картинок есть картинка, которая печатается этим набором оттенков. Иначе 0. Тогда задача сводится к минимизации ДНФ этой функции. К сожалению, я не в курсе, как задача решается на произвольно большом количестве переменных. На небольшом (до 4 включительно) это удобно делать диаграммами Вейча. Ссылка (первая попавшаяся) на тему - http://ptca.narod.ru/lec/lec4.html P.S. Мысль ускакала, и теперь я уже не уверен в правильно написанного. Возможно, это полуночный бред :) И в минимизацию нужно как-то пришить количество баночек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 00:29 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
miksoftЕсли взять логическую функцию со следующими предположениями: 1) На вход подается N разрядов с логическими значениями 0/1, они соответствуют оттенкам. 2) Функция возвращает значение 1, если в исходном наборе картинок есть картинка, которая печатается этим набором оттенков. Иначе 0. Тогда задача сводится к минимизации ДНФ этой функции. К сожалению, я не в курсе, как задача решается на произвольно большом количестве переменных. На небольшом (до 4 включительно) это удобно делать диаграммами Вейча. Ссылка (первая попавшаяся) на тему - http://ptca.narod.ru/lec/lec4.html P.S. Мысль ускакала, и теперь я уже не уверен в правильно написанного. Возможно, это полуночный бред :) И в минимизацию нужно как-то пришить количество баночек. Почитал по ссылке - как я понял смысл текстов и методов - там просто всё сводится к перебору всех возможных сочетаний по K элементов из N элементов. И тупо проверке сколько какой набор покроет картинок. Для малого набора красок это применимо, но для 100 красок получается равным 10 в 25 степени, никакой современный компьютер не прожуёт столько сочетаний :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 00:43 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanovmag, Спасибо, я думал о распределении по встречаемости. Но тут смущает вероятность наткнуться на распределение, при котором загрузив 4 наиболее часто встречающихся цвета мы не сможем вообще ни одной картинки напечатать. Хотя при увеличении количества картинок такая вероятность стремится к нулю Неудачный ваш пример (на счет ни одной картинки).... у вас 30 банок на 15 оттенков за картинку (в 2 раза больше перекрытие), по этому в примере вашем неудачном на каждую картинку (пропорционально) должно быть не 4 банки а минимум 6 - 8 и тогда опять все напечатается за один заход... по этому первый вариант можно отмести только после виртуального прогона на реальных данных... так любую идею можно зарубить на корню.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 01:09 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Еще можно провести ряд оптимизаций. Например, исключить из рассмотрения все картинки, у которых набор оттенков совпадает или входит в набор какой-либо другой картинки. Такие "исключенные" картинки можно печатать одновременно с исходной ("покрывающей") картинкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 01:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Ладно завтра учебник по теорверу с полки достану, может там чего нить в корелляционном анализе нарою, сегодня уже голова пухнет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 02:06 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Кстати, если маркировать краски не ноликами и единицами, а порядковым номером краски, то задача сводится к следующей: Есть некоторое количество наборов чисел (в каждом наборе от 1 до 30 штук разных чисел от 1 до 100 ). Надо найти такой массив из 30 чисел, который включает в себя наибольшее количество исходных наборов. Или как-то "максимально пересекается" с наибольшим количеством наборов... Короче спать пора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 02:28 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
элементарщина 1) для каждой из картинок - составить список всех картинок, множества цветов которых входят во множество цветов картинки-"хозяина" списка (дублирование в списках допустимо) при полном совпадении множеств цветов картинка с большим порядковым номером попадает в список к картинке с меньшим порядковым номером, но не наоборот 2) составить список картинок, не входящих ни в один список. всё, их число = числу перезаправок - 1 дубли исключить, конечно видимо, думать над печатью каких-то картинок 2 разными наборами нужно будет, если это число получится слишком большим - тогда следует обработать списки, исключая дубли из меньших по объему списков, и самые короткие списки печатать в 2 прохода (если найдется возможность) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 04:01 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
аптимизаторэлементарщина да наверное не совсем так... В конце получится 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 картинок будем печатать с заменой всех банок перед каждой картинкой... вот это оптимизация будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 09:04 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, В общем случае это больше комбинаторика, по этому вот это: anvanoЛадно завтра учебник по теорверу с полки достану Скорее всего ни к чему... Задача схожа с задачей выиграть в спортлото типа 5 из 36, только выигрышная комбинация не одна, а несколько и они все известны (это наборы оттенков, описывающие картинки)... Ну и сама задача состоит в том, что нужно так зачеркнуть карточки с 30 вариантами ответов (максимальное количество используемых банок) из возможных 100 вариантов оттенков, чтобы количество этих карточек было минимально (то есть минимальное количество заправок) для покрытия всех выигрышных комбинаций (печати всех картинок) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 09:20 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
А растеризация делается? Или в палитре оттенков чистые цвета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 10:29 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Alibek B.А растеризация делается? Или в палитре оттенков чистые цвета? угу... купить принтер с тремя банками (красный, синий и желтый) и херачить всё подряд, какая банка закончилась - такую и менять, а не морочить всем голову... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 10:39 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoЛадно завтра учебник по теорверу с полки достану, может там чего нить в корелляционном анализе нарою, сегодня уже голова пухнет :)вы все-таки обратите внимание и на мой пост :) у вас там есть условие "охота, чтобы каждая картинка печаталась набором за один проход.", так мой подход учитывает это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 10:56 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmagВ конце получится 50 картинок, которые никуда...1) как раз этому у меня был посвящен последний абзац - их можно печатать в 2 прохода (возможно, и больше) - а можно и в 1 - на усмотрение автора, но число перезаправок все равно можно уменьшить, только вводя 2-проходную печать 2) в условиях задачи про расход краски и экономию остатков ничего не говорилось. я понял так, что остатки сливаются из устройства обратно в большие банки поэтому предположил, что алгоритм удаления дубликатов должен минимизировать число картинок, печатающихся в 2 и более прохода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 11:00 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
оптемезаторих можно печатать в 2 прохода (возможно, и больше) Да выход... но это дополнительный учет: какую картинку в какие проходы посылать дополнительно и сколько раз... типа банки поменяли, значит напечатанные картинки 5, 7, 15,.... фигачим повторно еще и с этими банками.... ошибся, не ту подсунул и получил картину маслом - пикасо... а если красим на заводе бэху мера города (ну такая вот картинка у нас)... во веселуха получится... серо-буро-малиновый попугай.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 11:13 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38708629&tid=1341142]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 479ms |

| 0 / 0 |
