powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы. Оптимизация наборов красок при печати
25 сообщений из 82, страница 1 из 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
25 сообщений из 82, страница 1 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алгоритмы. Оптимизация наборов красок при печати
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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