3,583 papers
arXiv:2512.14138 67 16 дек. 2025 г. FREE

LAPPI: превращаем расплывчатые предпочтения в задачу оптимизации через диалог с LLM

КЛЮЧЕВАЯ СУТЬ
LAPPI — метод, который помогает сформулировать задачу оптимизации через естественный диалог с LLM. Система работает в два этапа: сначала LLM помогает перечислить варианты (например, достопримечательности в Париже), затем назначает числовые оценки каждому варианту на основе предпочтений пользователя. После этого готовая задача передаётся специализированному оптимизатору, который находит лучшее решение с учётом всех ограничений.
Адаптировать под запрос

TL;DR

LAPPI — метод, который помогает сформулировать задачу оптимизации через естественный диалог с LLM. Система работает в два этапа: сначала LLM помогает перечислить варианты (например, достопримечательности в Париже), затем назначает числовые оценки каждому варианту на основе предпочтений пользователя. После этого готовая задача передаётся специализированному оптимизатору, который находит лучшее решение с учётом всех ограничений.

Главная проблема: LLM хорошо понимает расплывчатые предпочтения ("хочу культурные места, но не слишком коммерческие"), но плохо соблюдает жёсткие ограничения ("уложиться ровно в 6 часов"). LLM генерирует вероятностно — может выдать маршрут на 8 часов, когда нужно 6. Классические оптимизаторы, наоборот, гарантируют соблюдение ограничений, но не понимают естественный язык. Пользователям сложно самостоятельно перевести "хочу видеть искусство Парижа" в "Лувр = 9 баллов, 2 часа; Эйфелева башня = 5 баллов, 1 час".

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

🔬

Схема метода

ЭТАП 1: Перечисление вариантов (Item Enumeration)
→ Ввод: описание предпочтений в свободной форме
→ LLM генерирует список кандидатов с обоснованием
→ Пользователь выбирает релевантные варианты

ЭТАП 2: Назначение оценок (Value Assignment)  
→ Ввод: выбранные варианты + уточнение предпочтений
→ LLM назначает числовые оценки каждому варианту
→ Система получает точные данные из внешних источников (API)

ЭТАП 3: Оптимизация (внешний solver)
→ Специализированное ПО находит оптимальное решение
→ Строгое соблюдение всех ограничений

ЭТАП 4: Итерация (опционально)
→ Пользователь корректирует предпочтения через диалог
→ Возврат к этапу 1 или 2 → новая оптимизация

Все этапы требуют связки LLM + код + оптимизатор.

🚀

Пример применения

Задача: Организовать девичник в Санкт-Петербурге — хочется культурную программу без толп туристов, уложиться в бюджет 15 000₽ на компанию, все места в пешей доступности, максимум 5 часов на всё.

Промпт (Этап 1 — перечисление мест):

Помоги спланировать культурную программу для девичника в Петербурге.

Предпочтения:
- Камерные места, где можно поговорить (не массовые локации)
- Эстетичные для фото
- Культурная программа: галереи, арт-пространства, красивые кафе
- Без стандартных туристических маршрутов

Предложи варианты мест с кратким описанием, почему они подходят.

Промпт (Этап 2 — оценка вариантов):

Мои предпочтения: приоритет на камерные галереи и необычные кафе, 
эстетика важнее известности места.

Места:
- Эрарта
- Музей стрит-арта
- Кофейня "Север-Метрополь"
- Лофт Проект Этажи (тихие залы)
- Книжный магазин "Подписные издания"

Для каждого места укажи:
1. Балл соответствия предпочтениям (0-10)
2. Примерное время на посещение (часы)
3. Примерная стоимость на человека (рубли)

Результат:

На этапе 1 модель выдаст список из 7-10 мест с обоснованиями ("Музей стрит-арта — не переполнен туристами, яркие локации для фото"). На этапе 2 — структурированные данные: каждое место получит балл (Эрарта = 8, Подписные издания = 9), время (1.5 часа, 0.5 часа), стоимость (400₽, 0₽).

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

🧠

Почему это работает

Слабость LLM: модель не умеет строго соблюдать числовые ограничения. Если попросить составить маршрут на 6 часов, она может выдать вариант на 7.5 часов — генерация вероятностная, нет механизма систематического поиска оптимума. Prompt engineering ("обязательно уложись в 6 часов!") улучшает результат, но не гарантирует точность.

Сильная сторона LLM: модель отлично понимает контекст и нюансы естественного языка. "Хочу культурные места, но не слишком коммерческие" — LLM уловит, что Эрмитаж подходит под "культурное", но массовость может быть минусом. Модель может оценить релевантность вариантов предпочтениям и назначить примерные числа (баллы, длительность) на основе здравого смысла.

Как метод обходит слабость: LAPPI разделяет задачи по компетенциям. LLM делает то, что умеет — переводит расплывчатые предпочтения в структурированные данные (список + баллы + оценки времени). Специализированный solver делает то, что LLM не умеет — находит математически оптимальное решение с гарантированным соблюдением всех ограничений (время ≤ 6 часов, бюджет ≤ 15000₽). Итеративный цикл добавляет гибкость: после первого результата можно сказать "хочу больше галерей, меньше кафе" → система пересчитает оценки → оптимизатор найдёт новый маршрут.

Рычаги управления (при использовании с кодом): - Количество вариантов на этапе 1 — больше вариантов = шире выбор, но дольше оценка - Шкала оценок — 0-10 или 0-100 влияет на "разрешающую способность" предпочтений - Веса в функции цели (λv для предпочтений, λt для времени) — если два маршрута одинаково хороши по баллам, можно приоритизировать более короткий - Источник точных данных — API для расстояний vs оценки LLM (точность vs простота)

📌

Применимые принципы для чата

Полную систему LAPPI воспроизвести в чате нельзя — требуется оптимизатор и код. Но принципы структурирования задачи применимы:

📌

1. Двухэтапный подход: сначала варианты, потом оценки

Не делай за один запрос: "Посоветуй маршрут по Петербургу с культурными местами на 5 часов"

Делай в два шага:

Шаг 1 — Генерация вариантов:

Предложи 10 культурных мест в Петербурге: галереи, арт-пространства, 
необычные книжные. Камерные, не массовые. Кратко объясни, почему каждое подходит.

Шаг 2 — Оценка выбранных:

Оцени каждое место по шкале 0-10 по критериям:
- Камерность (мало людей)
- Эстетика для фото
- Культурная ценность
- Необычность

Укажи примерное время на посещение и стоимость.

Места: [список из шага 1]

Почему работает: на первом шаге модель фокусируется на релевантности (соответствие критериям), на втором — на сравнении (числовые оценки). Смешивание задач в одном запросе даёт менее чёткий результат.

📌

2. Структурированный вывод через явные инструкции

Вместо: "Оцени места с учётом моих предпочтений"

Пиши:

Выведи результат в формате таблицы:
Место | Балл камерности | Балл эстетики | Время (часы) | Стоимость (₽)

Правила оценки:
- Камерность: 10 = пустые залы, 0 = толпы туристов
- Эстетика: 10 = Instagram-worthy, 0 = обычный интерьер

Чёткий формат + правила оценки = структурированные данные, с которыми легче работать дальше.

📌

3. Разделяй то, что LLM оценивает, и то, что нужно проверить

LLM может оценить (estimands): - Релевантность места предпочтениям (субъективно) - Примерное время на посещение (порядок величины) - Относительная стоимость ("недорого", "средне", "дорого")

LLM плохо знает (observables — проверяй отдельно): - Точное расстояние между местами → Google Maps - Актуальный график работы → сайт заведения - Точная цена билета → официальный источник

Принцип: используй LLM для оценок и фильтрации, проверяй критичные данные вручную или через инструменты.

📌

4. Итеративное уточнение через диалог

После первого результата:

Твой список слишком ориентирован на кафе. Замени 2 кафе на дополнительные галереи,
приоритет на современное искусство. Пересчитай оценки.

Модель возьмёт контекст предыдущего ответа + новые критерии → скорректирует список и оценки.

⚠️

Ограничения применения в чате

⚠️ Нет гарантий оптимальности: Без специализированного оптимизатора LLM может предложить хороший вариант, но не обязательно лучший. Если задача "найти максимум мест за 5 часов в бюджет 10000₽", модель не переберёт все комбинации математически — даст правдоподобный ответ.

⚠️ Слабое соблюдение жёстких ограничений: "Уложись строго в 5 часов" → модель может выдать маршрут на 5 часов 20 минут. Чем сложнее ограничения (время + бюджет + последовательность + расстояния), тем выше вероятность нарушения.

⚠️ Большие задачи не потянет: 50 вариантов мест × 5 критериев × проверка комбинаций — модель потеряет структуру или начнёт упрощать. Метод работает для задач с 10-15 вариантами, не для 100.

⚠️ Субъективные оценки зависят от контекста промпта: "Камерность" может трактоваться по-разному. Если не дать чёткую шкалу ("10 = пустые залы"), модель применит своё понимание, которое может не совпадать с вашим.

🔗

Ресурсы

LAPPI: Interactive Optimization with LLM-Assisted Preference-Based Problem Instantiation

Авторы: So Kuroki (Sakana AI), Manami Nakagawa (UC Davis), Shigeo Yoshida, Kozuno Tadashi (OMRON SINIC X), Yuki Koyama (University of Tokyo)


📖 Простыми словами

LAPPI: превращаем расплывчатые предпочтения в задачу оптимизации через диалог с LLM

arXiv: 2512.14138

Суть в том, что современные нейронки — это отличные собеседники, но катастрофически плохие математики. Когда ты просишь ChatGPT составить маршрут прогулки ровно на пять часов с бюджетом в десять тысяч, он просто угадывает слова, которые звучат правдоподобно. У него нет внутри калькулятора или логического движка, который проверит каждое ограничение на прочность. В итоге ты получаешь красивый план, который в реальности разваливается, потому что тайминги не бьются, а бюджет превышен в полтора раза. Метод LAPPI решает эту проблему, разделяя болтовню и расчеты.

Это как если бы ты планировал ремонт с дизайнером и прорабом одновременно. Дизайнер (LLM) фонтанирует идеями, подбирает цвета и фактуры, понимая тебя с полуслова. Но как только дело доходит до сметы и закупки материалов, в дело вступает суровый прораб с таблицей Excel (специализированный оптимизатор). Дизайнер накидывает варианты, а прораб жестко отсекает всё, что не лезет в бюджет или не проходит по ГОСТу. Без прораба ты банкрот, без дизайнера — живешь в серой коробке.

Работает это через двухэтапную инстанциацию задачи. Сначала ты просто болтаешь с моделью, накидывая варианты — например, список баров или музеев. Затем LLM превращает твои туманные «хочу что-то уютное» в конкретные числовые оценки для каждого варианта. Получается сухая математическая матрица, где у каждого места есть вес, цена и время посещения. Эту таблицу скармливают алгоритму оптимизации, который не умеет шутить, зато умеет перебирать миллионы комбинаций, чтобы найти тот самый идеальный маршрут, который не нарушит ни одного твоего условия.

Хотя в исследовании мучили примеры с поездками, принцип универсален для любой сложной логистики или выбора. Это может быть составление графика смен для сотрудников, подбор инвестиционного портфеля или даже планирование рациона на неделю. Везде, где есть куча вариантов и жесткие рамки, обычный промпт-инжиниринг — это попытка забить гвоздь микроскопом. Нужно разделять творческий хаос нейронки и холодную логику кода, и LAPPI как раз строит мостик между этими мирами.

Короче, хватит надеяться, что нейронка сама «сообразит» и уложится в твои лимиты — она этого просто не умеет по своей природе. Будущее за гибридами, где LLM работает интерфейсом для сбора хотелок, а черную работу по вычислениям делает старая добрая математика. Либо ты используешь такие связки и получаешь работающий результат, либо продолжаешь верить галлюцинациям модели и удивляться, почему идеальный план не имеет ничего общего с реальностью.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с