Шведский программист, Ханс Андерссон, использовал комплект Lego Mindstorms NXT для разработки робота, который может решать головоломки Судоку (Sudoko).
Робот использует оптический датчик для сканирования головоломки. Сначала выполняется быстрая проверка, чтобы определить, какие ячейки пусты. Отмечаются пустые квадраты и цифры, далее робот медленно продвигается вперед для сканирования новой строки. Размытое и «шумное» изображение – за счет использования роботом алгоритма Otsu (The Otsu Method) – затем преобразуются в более четкое черно-белое изображение, и робот определяет все записанные в клетках цифры.
После этого робот решает головоломку и заполняет пустые квадраты. Причем исползуется
Процессор Lego Mindstorms слишком медленный для работы по сложному математическому алгоритму, причем он не позволяет использовать рекурсивные операции (возврат назад по алгоритму). Так что Андерссон, видимо, был вынужден серьезно оптимизировать алгоритм работы этого – типового – робота.
В результате маленький робот может решить головоломку Судоку за несколько минут.
Смотрите видео.
По материалам PhysOrg.com