Поле не заполнено.
'%1' не похож на адрес электронной почты.
Пожалуйста, заполните это поле.
Значение поля должно содержать как минимум %1 символов.
Значение не должно быть длиннее %1 символов.
Значение поля не совпадает с полем '%1'
Введен неверный символ. Допустимые символы:'%1'.
Ожидается число.
Ожидается положительное число.
Ожидается целое число.
Ожидается положительное целое число.
Значение должно быть в диапазоне [%1 .. %2]
Символ '%1' уже присутствует в наборе допустимых символов.
Значение поля должно быть меньше %1.
Первым символом должна быть буква латинского алфавита.
Вс
Пн
Вт
Ср
Чт
Пт
Сб
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
век
до Н.Э.
Возникла ошибка при импорте данных в строке:%1. Значение: '%2'. Ошибка: %3
Невозможно определить разделитель полей. Для разделения полей можно использовать следующие символы: Tab, точку с запятой (;) или запятую (,).
%3.%2.%1%4
%3.%2.%1%4 %6:%7
с.ш.
ю.ш.
в.д.
з.д.
да
нет
минут
минут
минута
минуты
минуты
минуты
минут
минут
минут
минут
минут
минут
минут
час
часа
часа
часа
часов
часов
часов
часов
часов
часов
часов
дней
день
дня
дня
дня
дней
дней
дней
дней
дней
дней
дней
месяц
месяца
месяца
месяца
месяцев
месяцев
месяцев
месяцев
месяцев
месяцев
месяцев
год
года
года
года
лет
лет
лет
лет
лет
лет
лет
назад
HTML код со ссылки на эту страницу
  1. Внешний вид
    1. Пример
  2. Закрыть
Калькуляторы
  1. Преобразование 4-х буквенных слов при помощи генетического алгоритма
  2. Сохранить в Мои калькуляторы
Получить код ссылкиДобавить на мой сайтДобавить закладку
  1. delicious
  2. google
  3. bobrdobr
  4. memori
  5. mrwong
  6. yandex
  7. myscoop
Отправить
  1. Создан 2009-10-03 08:20:37
  2. пользователем Anton

Онлайн калькулятор: Как из мухи сделать слона.

Рейтинг:ПлоховатоНичего особенногоВполне приличноДовольно хорошоОтлично!Голосов:
Недавно ребенок принес из школы задачку. В пятом классе на уроках русской словесности детям задают такие задания: составить цепочку слов, каждое последующее из которых, отличается от предыдущего всего на одну букву. Изначально задано первое и последнее слово цепочки. Решив прекратить мучения любимой дочки, которая в течение нескольких часов тщетно пыталась сделать из мухи слона, я написал следующий калькулятор:
 Преобразование 4-х буквенных слов при помощи генетического алгоритма
  1. Рассчитать


Описание решения


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

С первого раза конечно же ничего не заработало - мой рекурсивный алгоритм быстренько переполнил ограниченный стек джаваскрипта. Преобразование рекурсивного алгоритма в циклический дало более удачный результат - муха была трансформирована в слона минут этак за 10.

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

Генетический алгоритм


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

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

В модифицированном алгоритме была применена улучшенная функция селекции, которая отбирает только самые похожие на конечное слово варианты. Количество самых жизнеспособных вариантов задается параметром Размер популяции, чем меньше это число, тем быстрее работает алгоритм, чем больше - тем качественнее получается результат.

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

Функция приспособленности (похожести текущего слова на конечное) оценивала каждый вариант по 12 бальной шкале.
  • за каждую букву, совпадающую по положению и значению с конечным результатом, начислялось 3 балла
  • если гласная буква слова находилась на том же месте, что и другая гласная буква искомого слова - 2 балла
  • и один балл начислялся просто за наличие гласной буквы.
Таким образом, конечное слово СЛОН оценивалось в 12 баллов, а начальная МУХА всего в 2.

Желающие более детально ознакомиться с алгоритмом, могут это сделать, путем исследования содержимого функции calculate из javascript'а этой страницы.

P.S.



Один наш пользователь, увлекающийся построением подобных цепочек, попросил сделать Преобразование 5-и буквенных слов перестановкой одной буквы. Этот онлайн калькулятор берет 5-и буквенные слова из справочника: Слова из 5-и букв






Материал доступен на условиях Creative Commons Attribution/Share-Alike License 3.0 (Unported) Creative Commons Attribution/Share-Alike License 3.0 (Unported)
 

Комментарии

  1. Защита от спама
  2. Отправить комментарий
  1. Калькуляторы на эту тему
  2. Расстояния в попугаях
  3. Цена одного часа (точнее, километра)
  1. Реклама