o3 mini против DeepSeek R1 против Google Gemini 2 Think
Развитие искусственного интеллекта все больше позволяет моделям LLM решать сложные математические задачи. Но насколько хорошо они справляются с логическими задачами уровня олимпиады для начальной школы? В предыдущем тесте я изучал производительность различных моделей, и теперь, с выпуском новой модели O3 от OpenAI, я провел обновленное сравнение.

Ранее я провел всестороннее тестирование возможностей решения математических задач для доступных на данный момент моделей LLM. В ходе исследования я предложил моделям задачу из национальной математической олимпиады, предназначенной для пятиклассников. В предыдущем тесте только DeepSeek R1 и OpenAI O1 смогли решить задачу правильно, в то время как другие модели либо полностью застряли, либо логически подошли к задаче, но в конечном итоге не смогли прийти к правильному ответу. Предыдущий сравнительный тест LLM можно найти здесь.
В этот раз я провел еще один тест, поводом для которого послужил выпуск модели OpenAI O3. Задача снова была взята из национальной математической олимпиады для пятого класса. Поскольку предыдущий эксперимент ясно показал, что традиционные модели (такие как Claude Sonnet 3.5, Qwen 2.5, Llama 3.3) не способны решать задачи такого типа, в этот раз я сравнил только ранее успешно справившийся DeepSeek R1 и недавно выпущенную модель Google Gemini 2.0 Flash Thinking Experimental с OpenAI O3.
Я слегка изменил текст задачи, чтобы убедиться, что на производительность моделей не влияют незначительные лингвистические детали. Таким образом, тест в первую очередь сравнивал их логическое мышление, а не навыки понимания текста.
Описание тестовой задачи:
Двенадцать человек сидят за столом. Они либо Рыцари (Р), Лжецы (Л), либо Крестьяне (К), причем присутствует хотя бы по одному представителю каждого типа. Рыцари всегда говорят правду, Лжецы всегда лгут, а Крестьяне ведут себя следующим образом: Крестьянин говорит правду, если его левый сосед – Лжец, лжет, если его левый сосед – Рыцарь, и может говорить правду или лгать, если его левый сосед – Крестьянин. Каждый утверждает, что его правый сосед – Лжец. Сколько Лжецов сидит за столом?
В этот раз я не буду публиковать полный пошаговый процесс рассуждений, только решение и результат, так как подробные выводы полностью фрагментировали предыдущую статью (хотя модели выводили вычисления очень интересными и наглядными способами и «думали» совершенно по-разному).
OpenAI o3
Успешное решение с первой попытки, за 1 минуту 21 секунду. После долгих рассуждений и обоснований решение было объяснено в более развернутом ответе. Хотя он каким-то образом упустил деталь о том, что за столом сидит хотя бы по одному человеку каждого типа, окончательный вывод, тем не менее, был верным:
Пусть 12 человек за столом будут x1, x2, …, x12 по порядку (по модулю 12). У каждого человека есть тип:
- Р (Рыцарь, который всегда говорит правду),
- Л (Лжец, который всегда лжет),
- К (Крестьянин, чье поведение зависит от его левого соседа):
- если его левый сосед – Л, он говорит правду,
- если его левый сосед – Р, он лжет,
- если его левый сосед – К, он может выбирать свободно (говорить правду или лгать).
Каждый утверждает:
«Мой правый сосед – Лжец».
Это означает, что утверждение, сделанное человеком i («xi+1 – Лжец»), должно быть истинным в соответствии со следующими правилами (или ложным, если говорящий лжет):
- Если xi=Р, утверждение должно быть истинным, поэтому xi+1 действительно Лжец.
- Если xi=Л, утверждение должно быть ложным, поэтому xi+1 не может быть Лжецом (следовательно, Рыцарь или Крестьянин).
- Если xi=К, это зависит от его левого соседа (xi−1):
- Если xi−1=Л, то xi говорит правду, поэтому xi+1 должен быть Лжецом.
- Если xi−1=Р, то xi лжет, поэтому xi+1 не может быть Лжецом.
- Если xi−1=К, то xi может вести себя «свободно» – в этом случае нет обязательного следствия для типа xi+1.
Первое, «нетривиальное» наблюдение
Давайте посмотрим, что произойдет, если кто-то – Лжец (Л):
- Предположим, xi=Л. Поскольку Лжец всегда лжет, согласно его утверждению, xi+1 не может быть Лжецом. Итак
xi+1 ∈ {Р, К}.
- Рассмотрим два возможных типа для xi+1:
- Если xi+1=Р (Рыцарь), то, поскольку Рыцарь всегда говорит правду, его утверждение подразумевает
xi+2=Л.
- Если xi+1=К (Крестьянин), то его левый сосед xi – Лжец, поэтому xi+1 говорит правду, и, следовательно, также
xi+2=Л.
Таким образом, в каждом случае, когда xi=Л (Лжец), оказывается, что через два места, в xi+2, также должен быть Лжец.Следствие: Полярность стола
Поскольку количество людей за столом равно 12 (четное число), если есть хотя бы один Лжец, то «цепь Лжецов» распространяется на каждого второго человека по кругу. Другими словами:
- Если xi=Л, то все люди, принадлежащие к тому же классу четности, что и i (например, если i нечетное, то все на нечетных позициях будут Лжецами), вынуждены быть Лжецами.
- Однако для Лжеца (Л) правый сосед – который принадлежит к противоположному классу четности – не может быть Лжецом (поскольку Лжец лжет).
Следовательно, если мы выбираем из смеси (не полное «количество крестьян»), единственная возможность, если есть хотя бы один Рыцарь или Лжец, это:
- Один класс четности (скажем, нечетные позиции) полностью состоит из Лжецов (Лжецов).
- Другой класс (четные позиции) не содержит Лжецов (могут присутствовать только Рыцари или Крестьяне).
Поскольку при 12 местах как четные, так и нечетные позиции представляют по 6 человек, такое (не «тривиальное») решение будет иметь ровно 6 Лжецов.
Тривиальный случай
Конечно, также возможно, что все – Крестьяне (К). В этом случае:
- Левый сосед каждого – Крестьянин, поэтому, согласно «правилу Крестьянина», они не обязаны говорить правду, а значит, могут выбрать ложь.
- Поскольку утверждение всегда: «Мой правый сосед – Лжец», – но правый сосед на самом деле Крестьянин – утверждение ложно. Каждый Крестьянин, таким образом, может решить солгать, удовлетворяя правилам.
Это решение «все Крестьяне» имеет 0 Лжецов.
Какой «правильный» ответ?
В таких задачах обычно есть неявное предположение, что мы ищем не «тривиальное» (невырожденное) решение, то есть мы предполагаем, что за столом есть хотя бы один человек, который не является Крестьянином (например, Рыцарь или Лжец). Это предположение исключает решение «все Крестьяне», и, таким образом, в нетривиальном случае предыдущие рассуждения приводят к 6 Лжецам (т.е. 6 Л).
Окончательный ответ
Если мы предполагаем «нетривиальное» решение для стола, то есть не все – Крестьяне, мы приходим к следующему выводу:
За столом сидят 6 Лжецов.
DeepSeek R1
Успешное решение с первого запуска, за 4 минуты 1 секунду. В отличие от этого, ответ был очень коротким, состоящим только из этого:
Решение включает в себя анализ ограничений, налагаемых каждым типом человека (Рыцарь, Лжец, Крестьянин) и их утверждениями. Поскольку каждый утверждает, что его правый сосед – Лжец (Л), мы делаем вывод:
Рыцари (Р) должны иметь Лжеца справа от себя.
Лжецы (Л) должны иметь не-Лжеца (Р или К) справа от себя.
Крестьяне (К) зависят от своего левого соседа:
Если левый сосед – Л, они говорят правду (правый сосед – Л).
Если левый сосед – Р, они лгут (правый сосед не Л).
Если левый сосед – К, их утверждение неоднозначно.
- Используйте код с осторожностью.
Учитывая круговое расположение, максимальное количество Лжецов возникает в чередующемся узоре, где каждый Лжец отделен не-Лжецом. Действительные узоры, такие как Л-К-Л-К... или Р-Л-Р-Л... дают 6 Лжецов (каждое второе место). Введение Крестьян не увеличивает количество Лжецов из-за их ограничений на правдивость, когда они находятся рядом с Лжецами.
Ответ: За столом 6 Лжецов.
Google Gemini 2.0 Flash Thinking Experimental
Успешное решение с первого запуска за 41 секунду. Ответ здесь также очень короткий, и вывод также короче по сравнению с двумя другими моделями. Еще один интересный момент в Gemini заключается в том, что он в основном использовал «сухой» математический вывод.
Найденные нами допустимые конфигурации:
Р, Л, Р, Л, Р, Л, Р, Л, Р, Л, Р, Л (6 лжецов)
Л, Р, Л, Р, Л, Р, Л, Р, Л, Р, Л, Р (6 лжецов)
К, Л, Р, Л, Р, Л, Р, Л, Р, Л, Р, Л (6 лжецов)
Л, К, Л, Р, Л, Р, Л, Р, Л, Р, Л, Р (6 лжецов)
К, Л, К, Л, К, Л, К, Л, К, Л, К, Л (6 лжецов)
Л, Р, Л, К, Л, Р, Л, К, Л, Р, Л, К (6 лжецов)
В каждой допустимой конфигурации количество лжецов равно 6. Поэтому мы заключаем, что за столом 6 лжецов.
Финальный ответ: Окончательный ответ – 6