|
|
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
дак и сам автор этого не хочет, но упомянул как возможность главная задача - минимизация числа перезаправок - я считаю, решена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 11:22 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmagAlibek B.А растеризация делается? Или в палитре оттенков чистые цвета? угу... купить принтер с тремя банками (красный, синий и желтый) и херачить всё подряд, какая банка закончилась - такую и менять, а не морочить всем голову... не тот кол о р будет но вообще смущает необходимость печати чистыми цветами в количестве 30 оттенков постоянно. я еще понимаю разовые задачи. для прочих, ну правда, можно выбрать гамму из 30 и не париться, предлагая ее всем, а выбор из 100 за доп.плату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 11:32 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
тьфу ты, забыл совсем, что картинки из "списка невходящих" могут содержать и меньше 30 красок то есть нужен еще этап объединения списков с доведением числа красок до 30 пока кажется, что лучше проверять возможность объединения, идя от больших списков к меньшим, но уверенности нет - нужно бы попробовать разные очередности объединения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 12:24 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoс похожим классом задач и сразу сможет задать "вектор решения" или ключевые слова. Мультиагентное планирование. И стоит задуматься над тем, что практически полезен может быть любой более-менее очевидный алгоритм формирования очередности картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 13:33 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Мне почему-то вспомнился код Грея. У него такое свойство что два соседних числа всегда отличаются 1 битом. Тоесть если-бы у нас были принтеры с 100 слотами для красок то можно было просто отсортировать в сортировке Грея и получить профит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:26 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonМне почему-то вспомнился код Грея. У него такое свойство что два соседних числа всегда отличаются 1 битом. Тоесть если-бы у нас были принтеры с 100 слотами для красок то можно было просто отсортировать в сортировке Грея и получить профит.Если бы был принтер с 100 слотами для красок, то порядок печати вообще перестал бы играть роль :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:32 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Мда. Похоже на то. На ум приходит группировать картинки. Или как-то сортировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:37 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
У нас есть 3 действия с принтером. Я-бы ввёл метрики стоимости. OperationCostЗамена банки1.0Снятие банки0.5Установка банки0.5 И в целевой функции учитывал бы эти Costs. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:42 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonметрики стоимости.Судя по 16374212 , это вряд ли имеет смысл. Но сильно усложнит вычисления, которые и так простыми не выглядят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:45 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Ну тогда еще хуже. Нужна метрика количества краски на картинке. Причём в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3% краски - то сразу считаем ее пустой и перезаправляем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:48 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonНу тогда еще хуже. Нужна метрика количества краски на картинке. Причём в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3% краски - то сразу считаем ее пустой и перезаправляем. Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета). Пока прикинул примерный алгоритм с учетом всех советов выше :), попробую сегодня закодить, посмотрю что получится на примерах реальных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:57 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoпопробую сегодня закодить, посмотрю что получится на примерах реальных данных.главное, чтобы время вычислений было меньше времени на "лишние" смены красок, а то не окупится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 18:59 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
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 банок покрыть все наборы картинок... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoЧтобы перезаправить устройство на другой набор оттенков надо потратить прилично времени (слить краску, промыть головки и т.п.) Я бы начал с вопроса "перезаправляется ли всё устройство разом, или же можно/нужно заменять отдельные оттенки побаночно и соответственно быстрее". А вообще сходу напоминает задачу кластеризации. Для начала ищем префиксы - в смысле, варианты "картинка А печатается подмножеством оттенков картинки Б", ну а дальше, получив меньшее множество существенно разных картинок, ищем "кластера", в которые они укладываются. П.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:31 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
softwarerП.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок... Думаю вряд ли. Для проф. оборудования, емкость баночки явно значительно больше минимального тиража. А для большого тиража и промыть офсет было бы не жалко. IMHO конечно, интересно, что это за печать такая, где краски не смешиваются: шелкография, флексография (больше и слов то не знаю) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:34 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
softwarerЯ бы начал с вопроса "перезаправляется ли всё устройство разом, или же можно/нужно заменять отдельные оттенки побаночно и соответственно быстрее".Уже отвечено - 16374212 softwarerДля начала ищем префиксы - в смысле, варианты "картинка А печатается подмножеством оттенков картинки Б"Уже было - 16374385 . softwarerищем "кластера", в которые они укладываются.Есть варианты помимо полного перебора? Насколько я понял вопрос, он изначально и был "как ищем?". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:37 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
softwarerП.С. Но что-то мне подсказывает, что в реале полезет ещё и вопрос ёмкости баночек с краской, тоже влияющий на количество перезаправок...Полезет, но насколько я понял топикстартера, операция доливки краски значительно дешевле смены краски. Т.е. особой роли не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:39 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
miksoftЕсть варианты помимо полного перебора? Насколько я понял вопрос, он изначально и был "как ищем?". Насколько я помню, для кластеризации нынче любят генетические алгоритмы. Но сам предпочёл бы погуглить, прежде чем утверждать. http://ru.wikipedia.org/wiki/Кластерный_анализ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:40 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanomaytonНу тогда еще хуже. Нужна метрика количества краски на картинке. Причём в алгоритме - округлять в большую сторону. Тоесть если в банке осталось 3% краски - то сразу считаем ее пустой и перезаправляем. Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета). Пока прикинул примерный алгоритм с учетом всех советов выше :), попробую сегодня закодить, посмотрю что получится на примерах реальных данных. Anvano. Ты мог-бы дать нам реальных тестовых данных? Например в таком виде. imageinksImage01.jpg1,2,3,4,5,6Image02.jpg1,2,3,4,7.....Image1000.jpg87,90,93,98,99 Мы конечно можем их нагенерить и сами но от качества и репрезентативности выборки зависит и результат решения. По опыту знаю что слишком уж "синтетические" случайные числа могут дать ложный эффект удачного выбора алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:52 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Сдается мне, что кластерный анализ здесь так просто не пришить... В ряде случаев происходит странное. Например, картинка А использует уникальную краску №1 и картинка Б использует уникальную краску №2, их наборы красок не пересекаются, а в сумме они используют не более 30 красок, то их имеет смысл напечатать из одного набора красок (а если их не удалось объединить с другими картинками, то и придется). Хотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 19:54 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
miksoftХотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе. Расстояние между ними равно одному (если они используют по одной уникальной краске). Вы, безусловно, правы в том, что как и в любом кластерном анализе, придётся что-то делать с "ошмётками", не попадающими ни в один кластер, как-то их собирать. В этой задаче ошмётки могут дополнительно образовываться и из-за похожих на "готовый кластер", но выводящих за лимит 30 красок картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 20:06 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
softwarermiksoftХотя с точки зрения кластерного анализа расстояние между ними равно максимальному в системе. Расстояние между ними равно одному (если они используют по одной уникальной краске).В той цитате пропущена фраза "их наборы красок не пересекаются". Под уникальной краской подразумевалось, что эти краски не используются больше ни в какой другой картинке из набора, т.е. это именно "ошмётки". И, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 20:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
miksoftИ, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат. Могут. Тем не менее, общая идея имхо остаётся той же - нужно найти минимальное число "кластеров", в которые улягутся все картинки. В частности, те картинки А и Б, которые Вы рассматриваете, таки имеют пересечения по цветам с какими-то другими картинками, то есть условно близки какому-то из кластеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 20:23 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
softwarermiksoftИ, судя по входным данным и моим ощущениям, этих ошметков вполне может быть достаточно много - единицы, а иногда и десятки процентов от всего набора. А если так, то они могут дать значительно число перезаправок, т.е. сильно влиять на итоговый результат. Могут. Тем не менее, общая идея имхо остаётся той же - нужно найти минимальное число "кластеров", в которые улягутся все картинки. В частности, те картинки А и Б, которые Вы рассматриваете, таки имеют пересечения по цветам с какими-то другими картинками, то есть условно близки какому-то из кластеров. Вода в ступе... обо всем этом говорилось в первом десятке реплик... и от того, что теперь об этом говорить другими словами (кластерами - шмастерами) - ничего не изменится.... нужно просто действительно дождаться реального примера от ТС а не тупо тролить типа кто заумнее.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 20:54 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonanvanoпропущено... Количество краски в банках вообще учитывать не надо. Допустим объем банок настолько велик, что его хватает на печать всего набора картинок. Под заправкой понимается "смена палитры" (то бишь замена хотя бы одного цвета). Пока прикинул примерный алгоритм с учетом всех советов выше :), попробую сегодня закодить, посмотрю что получится на примерах реальных данных. Anvano. Ты мог-бы дать нам реальных тестовых данных? Вот пример реальных тестовых данных. Первая строка - номера красок (их тут 70 разных) Первый столбец - названия картинок единицы - краска используется в картинке нули - не используется В более удобочитаемый формат (массив из номеров красок) у меня конвертится сейчас уже в самой программе, некогда выковыривать. Поэтому привожу только исходные данные. Файл: http://anvano.ru/images.xlsx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 21:22 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevконечно, интересно, что это за печать такая, где краски не смешиваются: шелкография, флексография (больше и слов то не знаю) ? Ну это я такую постановку задачи выбрал просто :) надо же было кейс придумать. В реальности это что угодно может быть, печатающее устройство с банками, токарный станок с кассетой инструментов, ткацкий станок с мотками нитей и т.д. и т.п. любое устройство имеющее ограниченный магазин инструментов/материалов, набирающийся их широкого исходного набора этих инструментов/материалов. Задача от этого не меняется. Надо оптимизировать по количеству "перенастроек" оборудования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 21:27 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Да, всё-таки поступило уточнение, нельзя картинку повторно пропечатать на другом наборе красок. Так что считаем, что это скорее ткацкий станок с нитями и каждое изделие должно быть целиком соткано на заправленном наборе нитей, (типа нельзя полотнище повторно воткнуть в станок и вплести в середину нити из другого набора :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 21:53 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoНу это я такую постановку задачи выбрал просто :) надо же было кейс придумать. В реальности это что угодно может быть, печатающее устройство с банками, токарный станок с кассетой инструментов, ткацкий станок с мотками нитей и т.д. и т.п. любое устройство имеющее ограниченный магазин инструментов/материалов, набирающийся их широкого исходного набора этих инструментов/материалов. anvanoДа, всё-таки поступило уточнение, нельзя картинку повторно пропечатать на другом наборе красок. Так что считаем, что это скорее ткацкий станок с нитями и каждое изделие должно быть целиком соткано на заправленном наборе нитей Это мля скорее всего новый вид ПРО с разными ракетами, ясен пень - все самолеты и ракеты нужно сбивать с первого раза.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 22:07 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoВот пример реальных тестовых данных. Первая строка - номера красок (их тут 70 разных) Первый столбец - названия картинок единицы - краска используется в картинке нули - не используется кому нужны данные в виде бд для удобства то качайте mdb в формате Акцесс 2000... - таблица Лист1 собственно данные из экселя, просто добавил счетчик в начало и поле выбора в конец... - запрос (Использование банок в картинках) покажет сколько раз банка используется при печати 25 картинок... - Пример скорее всего не совсем реальный (банки представлены по убыванию рейтинга использования и нет ни одной банки, которая не используется вообще).... - но есть вышеупомянутые хвосты (банки с 46 по 70 используются всего один раз) см. запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 22:48 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
>банки представлены по убыванию рейтинга использования и ну в экселе отсортировал >нет ни одной банки, которая не используется вообще).... а зачем они нужны? первое что делается - отбрасываются неиспользуемые краски и засчет этого уменьшается матрица представь, что банок 100, как в исходной постановке, но 30 из них не используются вообще ни в одной картинке >но есть вышеупомянутые хвосты (банки с 46 по 70 используются всего один раз) см. запрос да, хвосты есть в данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 23:10 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, Да не... все нормально... и примерчик удачный... башню можно снести... особенно что банки 64 - 70 используются только один раз и только для печати картинки 8, а банки 53-59 печатают только картинку 1... с кандачка не получится решить задачку.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 23:40 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Тут мысль пришла с рекурсивным обходом дерева. Берём картинку №1 и начинаем мёрджить её массив рекурсивно с остальными картинками. Условие выхода из рекурсии - количество элементов в мёрдже >= 30 Итого при каждом выходе из рекурсии получаем набор красок (мёрдж), а картинки, покрываемые этим набором - это путь до узла. По идее дерево получается кособокое (т.к. каждый узел имеет смысл складывать только со следующими по порядку) и условие выхода из рекурсии довольно быстро достигается (глубина дерева не оч большая) То бишь до какого-то количества картинок будет работать даже быстро. Потом отсортировать полученные наборы по количеству покрытых картинок - выкинуть эти картинки из списка. Для оставшихся картинок повторить всё заново. Ща попробую закодить весь этот бред, мож чего получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 00:08 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
При том варианте как ты нарисовал в мы имеем булеву матрицу. По вертикали - файлы. По горизонтали - краски. Задача - отсортировать строки таким порядком чтобы суммарное расстояние Хэмминга между векторами красок было минимальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 01:04 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoТут мысль пришла с рекурсивным обходом дерева. похоже если не удастся подвести условие задачи под уже известный тип задач, то всё будет упираться в неподъемный по ресурсам тупой перебор (комбинаторика тут просто космическая)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 10:16 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
По поводу объема работ. Думаю что алгоритм должен работать для пачки картинок. Что такое пачка? Возможно это 1 рабочий цикл издательства. Получили флешку с картинками. Пульнули ее в алгоритм. Оптимизировали порядок. Отпечатали. Всё. Цикл закончен. Тоесть никто не говорит что будет больше 1000. Возможно это просто некая верхняя оценка. anvano, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 12:59 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonПо поводу объема работ. Думаю что алгоритм должен работать для пачки картинок. Что такое пачка? Возможно это 1 рабочий цикл издательства. Получили флешку с картинками. Пульнули ее в алгоритм. Оптимизировали порядок. Отпечатали. Всё. Цикл закончен. Тоесть никто не говорит что будет больше 1000. Возможно это просто некая верхняя оценка. anvano, верно? Да, именно так. Я закодил уже первую часть своего алгоритма с рекурсией - вобщем для пачек до 30 штук канает, получается оч хорошо. В районе 30 штук рекурсия длится около 3 минут. Конечно к тысяче сложно будет пришить это всё. С другой стороны, я попробовал тупо прерывать рекурсию на какой-то итерации - результаты тоже хороши. Это конечно будет не оптимальный вариант (т.к. не было полного перебора дерева), но сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 13:36 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
В общем, допилил скрипт с рекурсивным алгоритмом для тестовых данных (25 штук) выполняется секунд 40. За 4 перенастройки палитры можно распечатать все 25 картинок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 18:38 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Для 50 картинок Execution time уже 364.8032 сек. в 10 раз больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 19:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, делись софтом, хвастун! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 20:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonanvano, делись софтом, хвастун! Да какой там софт, обычный скрипт на PHP :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 21:20 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, ну чё, нормально... и время тоже приемлемое (это потому что всё внутри кастрюли)... нужно еще прогнать около 10 - 50 вариантов для достоверности... сколько пообещали за решение ? задачка то денежная, и материал и время, и сбережение оборудования... а чё сразу то не сделал ? Без того чтоб в бока попинали никак ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2014, 21:32 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше. 50 картинок оптимизирует 6 минут????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 12:28 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonanvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше. 50 картинок оптимизирует 6 минут????? Одна так называемая "перезаправка" в реальности занимает около часа. Так что если скрипт будет даже целый час выполняться и при этом уменьшит количество перезаправок - уже профит. Т.к. это будет час работы компьютера, а не оплачиваемого специалиста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 15:55 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Ну... 6 минут ждать ответа от приложения. Это как-то жестоко. Иногда пользователь согласен видеть "грубый результат" через несколько секунд старта приложения. А уж потом - его уточнение. И в твоём алгоритме как мне кажется это будет хорошим подходом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:27 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonanvanoДля 50 картинок Execution time уже 364.8032 сек. в 10 раз больше. 50 картинок оптимизирует 6 минут????? Это язык интерпретируемый, плюс функции используются тяжелые ( array_merge, sort, array_unique) на каждой итерации. Для 25 картинок там всего-лишь 240 тыс итераций, а оно целых 40 секунд их молотит. Это очень долго, согласен. Простор для оптимизации алгоритма широк - можно заменить операции с массивами на какие-то битовые манипуляции, переписать всё на более низкоуровневом языке типа C++ - должно ускориться существенно. Но всё равно, рекурсивный обход - сложность возрастает экспонециально (если не факториально) от количества элементов. Грубый результат можно получать , ограничив глубину обхода дерева, может так и сделаю. Плюс у меня не делется предварительная обработка массива данных. Во-первых, надо заранее выкидывать их процесса оптимизации все картинки, которые полностью покрываются какой-то другой картинкой. Т.к. очевидно, если мы палитрой распечатаем эту родительскую картинку - то той же палитрой распечатаем все дочерние картинки, которые на 100% по краскам пересекаются с родительской. Во-вторых, надо исходный набор отсортировать по увеличению количества красок и начинать оптимизацию с картинок, с наименьшим количеством красок. Тогда мы сможем очень быстро составлять палитры (просто стыкуя картинки), покрывающие большое количество картинок с малым набором красок - их выкидывание из дальнейших шагов так же сильно уменьшит объем расчетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:39 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, В третьих, на каждой итерации можно проверять еще не охваченные картинки на предмет возможности их печати текущей версией палитры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2014, 16:43 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano, предложу оптимизацию. Посчитай частоты использования всех красок для всех картинок. Самые популярные краски вынеси для 1-й итерации твоего алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 12:56 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
maytonПосчитай частоты использования всех красок для всех картинок. Самые популярные краски вынеси для 1-й итерации твоего алгоритма. это я предложил в самом начале... проверил, оказалось - фигня... его первая тридцатка покрывает 13 картинок, а при таком подходе (по популярности) только 7 картинок и на второй итерации - вообще затык, ни одной картинки... по этому компоновка картинок перебором в 30- ку, которую он сам и предложил пока самая рулёзная... перекрыть ее может (по времени выполнения) только какой нибудь известный метод, который пока никто не усмотрел в этой задаче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 13:28 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoВо-вторых, надо исходный набор отсортировать по увеличению количества красок и начинать оптимизацию с картинок, с наименьшим количеством красок. Тогда мы сможем очень быстро составлять палитры (просто стыкуя картинки), покрывающие большое количество картинок с малым набором красок - их выкидывание из дальнейших шагов так же сильно уменьшит объем расчетов.А я вот, считаю что надо наоборот - начинать с картинок с максимальньм количеством красок. Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок, и будет затык для тех, у которых красок побольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 15:26 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
S.G.Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок Это как? В примере Есть картинки и с одной краской и с двумя, тут и слепому видно что в 30 банок влезет сразу минимум 30 картинок с одной уникальной краской, а одна картинка в 19 банок сразу съедает пол обоймы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 16:53 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmagS.G.Почему? Потому что иначе набор "30" быстро заполнится несколькими картинками с малым количеством красок Это как? В примере Есть картинки и с одной краской и с двумя, тут и слепому видно что в 30 банок влезет сразу минимум 30 картинок с одной уникальной краской, а одна картинка в 19 банок сразу съедает пол обоймы...Вы пропустили прочитать конец моего предложения, ну да ладно. Спорить, наверное можно долго, пусть ТС попробует прогнать несколко тестов с *реальными* данными, сортируя и так и иначе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 17:15 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
S.G., На самом деле в его алгоритме никогда не будет затыков, хоть оттуда иди, хоть отсюда, ибо он сначала засовывает в обойму одну из картинок (грубо говоря), а потом добивает обойму до 30 за счет добавления других картинок, по этому самый плохой исход - это печать в конце по одной картинке, но все равно без затыков... а оптимальным решением как раз будет правильный выбор сразу всех оптимальных узлов вектора, а не подбор оттуда или отсюда, но пока никто не смог эту задачу приблизить к какой-то типовой задаче с готовым оптимальным алгоритмом решения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 17:49 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
vmag по этому самый плохой исход - это печать в конце по одной картинке, но все равно без затыков... Именно это я и называю "затыком", когда в конце выполнения алгоритма, останутся несколько (много) картинок, с совершенно несовпадающими палитрами. Поэтому считаю, что начиная с картинок с большой палитрой, этого можно будет избежать. Но, к сожалению, доказать не могу (да и не собираюсь), назовем это интуицией ;) vmag но пока никто не смог эту задачу приблизить к какой-то типовой задаче с готовым оптимальным алгоритмом решения...ну это уж сам автор, пусть попробует пару-тройку алгоритмов, погоняет на разных данных.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2014, 17:21 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
S.G.Именно это я и называю "затыком", когда в конце выполнения алгоритма, останутся несколько (много) картинок, с совершенно несовпадающими палитрами. Поэтому считаю, что начиная с картинок с большой палитрой, этого можно будет избежать. Не приходило ли Вам в голову, что одну и ту же последовательность картинок можно печатать и "он начала к концу", и "от конца к началу"? И что вопрос выбора "вначале много цветов или мало" по сути сводится к вопросу того или иного переворота этой последовательности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2014, 19:22 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Можно написать метаэвристику, в которой пространством решений будет пространство всех возможных перестановок последовательности картинок, целевая функция будет имитировать процесс печати/перезарядки, а возвращать количество перезарядок. Какой именно алгоритм использовать - без разницы. Решение в любом случае будет достаточно неплохим. О решении этой задачи к оптимальности можете просто забыть, она NP-hard (частный случай Partition problem), при таком количестве переменных как у вас решить ее нереально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2014, 14:29 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
Я тут наткнулся на подробное описание Bin Packing Problem http://www.or.deis.unibo.it/kp/Chapter8.pdf И на весьма интересное описание генетического алгоритма оптимизации в приложении к этой проблеме. http://www.codeproject.com/Articles/633133/ga-bin-packing Понятно, что у меня не совсем чистая Bin Packing Problem, но есть очень много общего и можно попытаться натянуть сову на глобус и закодить этот генетический алгоритм. Вдруг чего выгорит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 01:24 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvano закодить Только возьмите компилируемый язык. Скрипты для комбинаторных задач - не совсем то ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 18:19 |
|
||
|
Алгоритмы. Оптимизация наборов красок при печати
|
|||
|---|---|---|---|
|
#18+
anvanoИ на весьма интересное описание генетического алгоритма оптимизации в приложении к этой проблеме. http://www.codeproject.com/Articles/633133/ga-bin-packing Понятно, что у меня не совсем чистая Bin Packing Problem, но есть очень много общего и можно попытаться натянуть сову на глобус и закодить этот генетический алгоритм. Вдруг чего выгорит :) Генетический алгоритм это вобщем-то даже не алгоритм а подход. К задачам поисков оптимальностей. И выхлоп его будет зависеть от правильности оценочной формулы. И эта формула лежит не в ГА а в твоей задаче. Ты сам должен разаработать оценку пригодности или непригодности кандидатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2014, 11:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1341142]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 366ms |

| 0 / 0 |
