|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|
Слишком медленный алгоритм искусственного интеллекта игры Балда03.11.2016, 18:48. Показов 2213. Ответов 5
Метки нет (Все метки)
Здравствуйте!
Столкнулся с одной сложностью при создании искусственного интеллекта (ИИ) для своей игры Балда. Сначала опишу алгоритм словами, затем приведу код. Итак, мой алгоритм ИИ можно разделить на 4 этапа (попытаюсь описать максимально понятно): • [1] Рекурсивно анализируется каждая клетка до заданной глубины. Результат (буква/пустая клетка, координаты и глубина рекурсии соответственно) сохраняется в переменные. • [2] Из полученного результата (отдельные буквы/пустые клетки) на основе глубины рекурсии формируются последовательности букв/пустых клеток и сохраняются в новые переменные, предварительно отсекаются последовательности с дублированными клетками, с 2-мя и более пустыми клетками и без пустых клеток (т.е. проходят только с одной пустой клеткой). • [3] В каждой полученной последовательности пустые клетки заменяются на каждую букву алфавита и результат сравнивается с каждым словом словаря (т.е. 3 цикла). Совпавшие слова (и другие данные) записываются в новые переменные. • [4] Из совпавших слов выбирается 1 слово. Я не знаю, насколько правильно я мыслю, если есть другие варианты - рад буду услышать. Проблема же заключается в том, что на эмуляторе Genymotion данный алгоритм выполняется около 30 секунд, на реальном устройстве - больше минуты. Это слишком долго. Если же проверить на чистой Java, то выполняется быстро - 0,8 секунд. Возникает вопрос: что нужно сделать, чтобы на Android-устройствах или -эмуляторах выполнялось хотя бы за 1-2 секунды? Ведь в приложениях-аналогах ИИ работает почти мгновенно. Пока что я без понятия, что в алгоритме можно улучшить. Теперь приведу код. Т.к. он большой (не помещается в посту) - прикрепил файлами.
0
|
|
| 03.11.2016, 18:48 | |
|
Ответы с готовыми решениями:
5
Алгоритм искусственного интеллекта (ИИ) Интегральная теория искусственного интеллекта Реализация алгоритмов искусственного интеллекта |
|
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
| 03.11.2016, 18:52 | |
|
много букв, ниасилил
к тому же надо что-то качать раскидать логи по методам (или воспользоваться профайлером) и отловить какой участок кода выполняется долго - вот его можно сюда и показать, а не два архива
0
|
|
|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
||||||
| 03.11.2016, 19:20 [ТС] | ||||||
|
Паблито, самый долгий участок, который несравнимо дольше других выполняется, находится на 3-ем этапе (который я описал выше). Привожу код:
upd: в словаре 11880 слов. Добавлено через 11 минут upd2: если закомментировать внутри if() - по скорости ничего не изменится. А вот если сам if(), т.е. не сравнивать со словарём - то скорость сразу становится приемлемой, около секунды.
0
|
||||||
|
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
|
|
| 06.11.2016, 03:12 | |
|
может не стоит sb.toString() 24к раз вызывать?
0
|
|
|
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
|
|
| 09.11.2016, 07:22 | |
|
Да тут как ни крути долго ждать. Логику надо другую, нейросети сейчас в тренде.
0
|
|
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
| 09.11.2016, 11:55 | |
|
Алгоритм и правда никакой, в лоб искать тоже уметь надо. Я, конечно, не шибко понял, что там происходит, но 1) если идёт поиск в чём -то большом, и if выполняется только однажды, зачем проходить потом ещё 100500 раз, используй break/continue. 2) я не знаю, что у тебя в словаре, но почти наверняка его можно упорядочить или разбить на части. 3) опять же для меня загадка зачем проходить словарь в трёх циклах ("добавляем найденное в словаре слово"), ну и добавь всё сразу в одном цикле 1 раз.
0
|
|
| 09.11.2016, 11:55 | |
|
Помогаю со студенческими работами здесь
6
Написать программу искусственного интеллекта Модели и методы искусственного интеллекта Редакторы и языки искусственного интеллекта Разработка Искусственного Интеллекта (Дневник разработчика) Теоретический способ создания искусственного интеллекта 2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|