Как стать автором
Обновить
8
0
Антон Подавалов @apodavalov

Разработчик

Отправить сообщение

То, про что Вы говорите в первом абзаце по сути есть накопление знаний и опыта. Хорошо, если "ai-кодер" это быстро поймет.

По поводу второго абзаца: задача может включать в себя "должно работать вплоть до 1 000 000 элементов". А тут "квадрат" на ровном месте ...

Отвечу на последний пункт: мы же не знаем какой код ему скормили: плохой/хороший, правильный/неправильный, делающий то, что нужно или нет. Как тут вообще можно на что-то рассчитывать, если "ai-кодер" не может оценить "ошибку"?

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

Хотелось бы понять как "ai-кодер, который не может написать ни одной строки кода" будет оценивать, например, следующие пункты: адекватность написанных тестов (они имеются?) пусть даже со 100% покрытием, соблюдение единого стиля, следование лучшим практикам (не только выбранного языка/фрейморка, но и например использования криптографических библиотек вместо "велосипедизма")? Как "ai-кодер" поймет, что задача решена правильным способом (например, квадратичный алгоритм вместо линейного)? Какими критериями этот "разработчик" будет руководствоваться? Работает или нет?

В общем, считаю задачу на 100% решеной.

Подкрутил немного метрику и теперь отгадываются все 100% слов словаря в рамках 6 попыток. Соответствующий коммит.

Тут уже много говорили о том, что при угадывании 3-4 букв может начаться "информационный голод". Пример из одного комментария: весть, жесть, месть, лесть, честь.

Идея в том, что нужно подобрать такое слово, чтобы как можно больше таких вариантов отсеить за раз.

Что доделано в итоге.

  • Каждая попытка теперь может использовать все слова из словаря, а не только из оставшихся.

  • Мы предполагаем, что слова загадываются из словаря и поэтому должно остаться хотя бы одно слово. Если слово вычеркивает все оставшиеся слова (оно теперь может это делать), то получает не нулевое значение метрики, а наоборот - самое наибольшее. Самое наибольшее значение - это количество оставшихся слов.

  • Отдельно нужно обработать случай когда осталось одно слово - и тут в качестве кандидата нужно его просто вернуть. Это нужно отдельно обрабатывать, так как в противном случае метрика (после всех изменений выше) будет одинакова для всех слов словаря. Это происходит по причине того, что подходящее слово имеет значение метрики в рамках одного предположения всегда 1, так как оно: либо все слова отсеивает и получает значение 1, либо оставляет только загаданное слово и получает тоже значение 1.

Ну ... и ничего страшного. Еще и слова "тренд" нет. Оба добавил. Едем дальше.

Проанализировал Ваш словарь - он в точности повторяет мой, за исключением слов, которые я добавил: коран и мамон. +Теперь еще бренд и тренд.

P.S. Сегодняшнее слово все равно отгадал :-)

Как я уже написал выше: рекомендую обратить внимание на статистику.

  • Слово "серка": 51 проблемное слово.

  • Слово "кроат": 49 проблемных слов (близко к лидеру!)

  • Слово "кайло": 36 проблемных слов (а вот и лидер, который обогнал "коран"!)

Я никак не учитываю частоту букв. Положение букв учитываю в ограничениях:

  • жёлтый: точное совпадение

  • белый: присутствие буквы и отсуствие ее на позиции

  • серый: отсутствие букву

Рекомендую подсчитать еще статистики и обратить внимание на количество проблемных слов.

Что касается Вашей метрики - она совсем другая. Вероятнее всего тоже имеет место быть.

Здесь. Поделитесь, пожалуйста, своим.

По поводу сокращения словаря: да, действительно так и работает.

Вот немного сухой статистики.

  • Метрика слова "норка": 101 слов. Статистика: 53 проблемных слова.

  • Метрика слова "порка": 118 слов. Статистика: 44 проблемных слова.

  • Метрика слова "икона": 146 слов. Статистика: 66 проблемных слов.

  • Метрика слова "океан": 146 слов. Статистика: 61 проблемное слово.

  • Метрика слова "коран": 111 слов. Статистика: 42 проблемных слова.

Лидер по минимальному количеству проблемных слов: "коран". В общем-то, это то, о чем я говорил в статье: жадность не 100% решение, так как можно упереться в локальный минимум.

Я думаю можно.

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

То, про что Вы говорите как раз и является тем же подходом, но не с глубиной 1 - а с глубиной 2.

Для первого кандидата сложность будет порядка 3475^6=1760876321572509765625.

Для второй попытки уже может быть значительно меньше (если мы выбрали слово "норка"): 101^6=1061520150601, но всё ещё достаточно большой.

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

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

Итого:

  • Для "норка": 352401/3475\approx101слово.

  • Для "коран": 386809/3475\approx111слов.

Я добавил четвертный режим работы: вычисления метрики для слова. Можно теперь проделывать эти эксперименты самостоятельно.

  • Значение моей метрики для слова "норка": 352401.

  • Значение моей метрики для слова "коран": 386809.

Вот в этом комментарии выяснилось, что ограниченный. Для более полного словаря (3474 слов) это слово: "норка".

Вот в этом комментарии выяснилось, что мой словарь (2068 слов) несколько ограничен. По более полному словарю (3474 слова) моё топовое слово: "норка". Интересно, что "норка" и "коран" являются палиндромами. Для Вашего метода метрика этих двух слов одинаковая. Моя модель считает, что "норка" всё же лучше. Правда насколько я сейчас не могу сказать. Но можно поэкспериментировать. Видимо нужно ввести 4 режим работы: подсчет метрики для конкретного слова.

Да я просто пошутить (тоже?) хотел :)

Ваше слово на букву Ж состоит из 4 букв, а не из 5. Поэтому и нет :)

Оно может "выродиться" в простой подбор. Такое случается если например остались возможные слова "кошка, конка". Оба кандидата имеют одинаковые шансы быть загаданными.

Забрал у Вас словарь, спасибо )

Итого теперь 3473 слова.

В качестве первой попытки теперь должно быть слово: "норка" (3 минуты для получения).

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

Вероятность выигрыша по этому словарю составляет 98,4%.

В Вашем словаре отсутствуют следующие слова: жилое, любое, рябая, сытая, умная, чалая, худое, мамон. Все, кроме "мамон", скажем так, как минимум прилагательно-подобные. Скорее их надо удалить из моего словаря. А вот слово "мамон" кажется надо добавить в Ваш.

Теперь есть повод задуматься на тем, что игра дает больше информации, чем использует модель.

P.S. Добавление слова "мамон" в словарь не меняет ни первого кандидата, ни множества проблемных слов. Вероятность выигрыша разве что незначительно повышается :-)

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность