LINUX.ORG.RU

Придумайте генетический алгоритм

 ,


1

2

Алгоритм должен сгенерировать N разных глифов (например 60), удовлетворяющих требованиям (ограничениям?).

Глифы должны:
1) Быть двумерными, связными (чтобы можно было по несвязности разделить текст на отдельные символы). Никаких «ы».
2) Не переходить друг в друга при сдвигах, наклонах, масштабированиях/сжатиях и поворотах.
3) Подсказывать направление текста (чтобы текст читался правильно только с одного направления, а при поворачивании на 90, 180 и 270 было понятно, что текст повёрнут).
4) Быть несложными = простыми (чтобы их было быстро писать) с точки зрения описания инструкциями (например состоять из минимального количества точек и соединяющих отрезков.
5) Максимально отличаться друг от друга по внешнему виду.

2017-й год на дворе, онлайн переводы давно уже не являются сложностью, а потому если надо чтоб «кто-то придумал и сделал» - это конечно в раздел www.linux.org.ru/forum/job/

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от MyTrooName

парад мартышек в трекере

Молодец, ты выделился, все взгляды устремлены на тебя в ожидании красноречивой речи ))) Не мартышки, просто на такую наглую постановку вопроса есть только 1 ответ. Это почти тоже самое если бы он спросил 2+2, нет ответа кроме как 4. Так и тут. Вот если бы он предложил свой кусок кода реализации и спросил, а как бы вы такое делали что-бы оценить все плюсы и минусы разных взглядов на задачу это был бы совсем другой тред.

Dron ★★★★★ ()

Основную проблему вызывает требование «отличаться друг от друга».

с топологической точки зрения все символы делятся на дефис/точку и совокупности колец (от одного до 59 штук в комплекте) Если мы не умеем отличать другие детали, помимо связности областей.

Поэтому топологическая точка зрения признаётся ограниченной и прийдётся ввести другие виды различий в символах.

Например, можно к кольцам добавлять «ножки» (это то же самое, что «хвостики»). Если символ, это цепочка колец с хвостиками, то хвостиками можно кодировать в двоичной системе. Получатся примерно такие символы (для пяти колец):

ooooo
qoooo
qqooo
qqqoo
Мысленно представьте, что это четыре слитных символа Тут можно посчитать, сколько их нужно штук разной длины, если подумать про размещения и сочетания.

Но кажется, что такие символы слишком сложно рисовать (много рисовать в каждом). Для сокращения пути рисовательных инструментов хочется для различения символов использовать такие визуальные элементы, как «особые точки» и «точки перегиба». Но как именно это сделать - фантазии не хватает.

Einstok_Fair ★★★ ()

Но зачем это делать?
Зачем это делать в автоматическом режиме?

Ты хоть как-то заинтриговал бы.

MimisGotAPlan ()

Четвёртый и пятый пункты в www.linux.org.ru/forum/job/ опиши поподробнее, а то очень непонятно, кому проще и кто писать должен, да и для кого отличия по внешнему виду нужны.

peregrine ★★★★★ ()
Ответ на: комментарий от Einstok_Fair

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

Желательно минимизировать и количество повторных пробегов по уже обработанным местам.

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

Einstok_Fair ★★★ ()
Ответ на: комментарий от Einstok_Fair

Очевидно, шрифт для невесомости будет отличаться бОльшей разлапистостью/воздушностью (так как меньше затраты на отрыв пера), а шрифт для гравитации будет более «плотным».

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

Хотелось бы ещё понимать, как выделять признаки с изображения, для того, чтобы в дальнейшем намеренно формировать эти признаки.

Например ножки/хвостики могут быть «наружу», а могут быть вовнутрь. Это можно описать, пронумеровав топологические области и сравнивая их номера. Но как быть с выделением признаков в целом - мне не ясно.

Einstok_Fair ★★★ ()
Ответ на: комментарий от Einstok_Fair

тут имеется в виду физико-химический процесс в условиях гравитации

Чего? Ты упоролся? Ты точно о символах?

2) Не переходить друг в друга при сдвигах, наклонах, масштабированиях/сжатиях и поворотах.
3) Подсказывать направление текста (чтобы текст читался правильно только с одного направления, а при поворачивании на 90, 180 и 270 было понятно, что текст повёрнут).

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

Aswed ★★★★★ ()
Ответ на: комментарий от Aswed

Возми за основу систему как в индусских ведах

Я не хочу брать основу. Если бы я придумывал сам, то мне не нужен был бы автоматизированный метод генерации. Я хочу установить ограничения и получить результат.

Индусские веды не так хороши, как решение задачи Эйлера (о калининградских мостах). Там символ имеет два хвоста (входной и выходной) и всё у символа будет хорошо с точки зрения написания.

Einstok_Fair ★★★ ()
Ответ на: комментарий от Einstok_Fair

А зачем тебе вообще задача в настолько общем виде? Ты разрабатываешь какую-то всеобщую теорию писменности?

Aswed ★★★★★ ()
Ответ на: комментарий от Aswed

в настолько общем виде

Это потому что менее общий и более формализованный я ещё не придумал. Твоё добавление надчёркивания - необоснованно. Есть ощущение, что оно недостаточно энергетически эффективно по сравнению с другими системами письменности.

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

Einstok_Fair ★★★ ()
Ответ на: комментарий от Einstok_Fair

Да что вообще ты делаешь? Хочешь изобрести самую оптимальную систему писменности что-ли? Мне прям интересно стало.

Aswed ★★★★★ ()
Ответ на: комментарий от Einstok_Fair

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

Aswed ★★★★★ ()
Ответ на: комментарий от Aswed

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

Einstok_Fair ★★★ ()
Ответ на: комментарий от Dron

опубликуйте, пожалуйста, смету проекта. Учитывая лично Ваш не очень высокий уровень подсказываю, что смета должна быть подготовлена при помощи GNOME Planner и опубликована в формате .pdf 1.7 (он же ISO 32000)

Einstok_Fair ★★★ ()

Привет. Заплати своему учителю, он тебе решит.

Nefalius ()
Ответ на: комментарий от Einstok_Fair

Во первых тут на «Вы» это почти оскорбление, но да ладно. Во вторых я не заинтересован в предложенной тобой задаче и смету составлять не собираюсь. В третьих, уровень чего? В четвёртых, не надо воспринимать подсказки на нужный раздел как упрёк, всё правильно сказали выше, вопрос поставлен так, как его расписывают в job ветке форума. Либо переформулируй вопрос на именно вопрос, а не требование и всё. Люди же тут тоже живые и как к людям надо относиться, а не придумай/сделай/мне надо. Просто переформулировать более мягко, для людей, так что бы заинтересовать их, сказать что сам пытался сделать, что не получилось, где конкретно нужна помощь. Или же просто продублировать то что есть в job и указать там сколько готов заплатить. Либо так, либо так. Ну честно, я без иронии и сарказма пишу, читается выше топик так будто ты от нас требуешь алгоритм, мы же тоже люди, ты либо заинтересуй или попроси помощи, либо требуй, но за деньги и в разделе job. Вот и всё. )

Dron ★★★★★ ()
Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от Dron

Очевидно, что я не твоя персональная армия и не нанимался писать интересные именно тебе сообщения интересным именно тебе образом. Что вообще за требования такие? Иди в job и нанимай копирайтера, если хочешь интересненькое читать. По-хамски выглядит такой совет, не так ли? Так зачем же ты хамишь, дружище? Если ты не заинтересован - просто пройди в следующую тему, в которой ты заинтересован.

Einstok_Fair ★★★ ()
Ответ на: комментарий от i-rinat

Я не сметчик и не аналитик.

значит балабол

Возможно, там вам помогут.

и Вы понимаете, что по таким требованиям не смогут, их сначала надо обсудить. Просто хотели меня потроллить, это наверное потому что у Вас какие-то комплексы.

Einstok_Fair ★★★ ()
Ответ на: комментарий от Einstok_Fair

по таким требованиям не смогут, их сначала надо обсудить

Вот и нужно было обсуждать, а не требовать. С требованиями — проследуйте в /job.

i-rinat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.