OptiFlow: интеллектуальный подбор UI‑контролов для форм и интерфейсов

OptiFlow: интеллектуальный подбор UI‑контролов для форм и интерфейсов




Исходный код на GitHub

Описание приложения

OptiFlow — настольное приложение на базе PyQt для проектирования интерфейсов ввода данных. Оно помогает подобрать оптимальный набор UI‑контролов (input, select, checkbox, slider и др.) для каждого поля формы с учётом:

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

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

Основная идея и область применения

Кому полезно OptiFlow:

  • UX‑исследователям и продуктовым дизайнерам, которые хотят обосновывать выбор паттернов интерфейса не только интуицией.
  • Архитекторам и тимлидам, стандартизирующим UI‑компоненты в крупных проектах.
  • Преподавателям и студентам, изучающим оптимизационные методы на прикладном UX‑кейсе.

Какие задачи закрывает:

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

Как устроено приложение

Интерфейс разделён на вкладки:

  • «Данные, тип, длина»

Задаются поля: имя, тип данных (число, текст, булево, дата, список и др.) и характерный размер (длина строки, количество элементов и т.п.).

  • «Настройка задачи»

Для каждого типа контрола определена функция `score(t, n)`, возвращающая тройку значений (результативность, оперативность, ресурсоэкономность). Эти функции можно редактировать прямо в приложении, код компилируется в безопасной среде.

  • «Алгоритмы»

Выбирается оптимизационный алгоритм и его параметры (размер популяции, число итераций, параметры отжига, табу‑списка, муравьёв и т.д.). Можно запускать расчёт и сравнивать разные методы.

  • «Графики»

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

  • Экспорт HTML

Лучший найденный набор контролов можно экспортировать в готовую HTML‑страницу (через меню «Файл → Экспорт веб‑страницы») — это прототип формы, который можно использовать как основу для дальнейшей доработки.

Алгоритмы оптимизации в OptiFlow

Приложение реализует несколько классов методов на одном и том же UX‑кейсе:

  • Многокритериальный (NSGA-II) — строит популяцию решений и Парето‑фронт по трём критериям, использует недоминирующую сортировку и crowding distance.
  • Локальный поиск (Hill Climb) — улучшает текущее решение, перебирая варианты для каждого поля.
  • Алгоритм роя частиц (PSO) — моделирует «рой» кандидатов, которые обмениваются информацией о лучших решениях.
  • Случайный поиск — базовая линия для сравнения с более сложными методами.
  • Жадный (Greedy) — для каждого поля независимо выбирает лучший контрол по текущим весам критериев.
  • Имитация отжига (SA) — допускает временные ухудшения, чтобы выбираться из локальных минимумов.
  • Поиск с запретами (Tabu) — ведёт локальный поиск, запрещая недавние ходы (табуация), уменьшая зацикливание.
  • Муравьиный алгоритм (ACO) — моделирует муравьёв, строящих решения и оставляющих феромон на удачных комбинациях контролов.

Типичные проблемы и как их решает OptiFlow

  • Неформализованный выбор контролов

Вместо интуитивного выбора вводится явная модель качества с функциями `score(t, n)` и весами критериев.

  • Комбинаторный взрыв при больших формах

Пространство решений задаётся через `DecisionSpace`, а метаэвристики (NSGA-II, PSO, SA, Tabu, ACO) автоматически ищут хорошие комбинации контролов.

  • Сложность аргументации решений перед стейкхолдерами

Модель прозрачна: функции оценки видны и редактируемы, веса настраиваются ползунками, результаты алгоритмов можно показать на графиках.

  • Разрыв между исследованием и прототипом

Лучшее решение можно сразу экспортировать в HTML‑форму и использовать как прототип в реальном проекте.

Скриншоты

Ссылки на научные статьи

  • Курта П.А. Система статистического измерения атомарной эффективности графических элементов интерфейсов // Труды учебных заведений связи. 2024. Т. 10. № 6. С. 112-125. DOI:10.31854/1813-324X-2023-9-6-112-125
    Статья описывает систему статистического измерения атомарных эффективностей графических элементов интерфейса (текстовое поле, выпадающий список, кнопка, счетчик, ползунок) по результатам выполнения заданий пользователями. Система измеряет три показателя эффективности: результативность (качество ввода), оперативность (скорость работы) и ресурсоэкономность (психоэмоциональное напряжение). Реализована как Web-сайт на PHP, проведены эксперименты с 50 пользователями.

    — Описывает методологию получения атомарных эффективностей элементов
    — Является источником данных для функций оценки контролов в OptiFlow
    — Объясняет, как измеряются зависимости эффективности от типа и размера данных
  • Курта П.А. Эффективностная модель взаимодействия пользователя с информационным сервисом запросного типа // Труды учебных заведений связи. 2023. Т. 9. № 6. С. 102-115. DOI: 10.31854/1813-324X-2023-9-6-102-115
    Статья описывает построение аналитической модели взаимодействия пользователя с информационной системой запросного типа для оценки эффективности интерфейса. Модель формализует эффективность интерфейса как произведение эффективностей форм и элементов, учитывает атомарные эффективности элементов и форм, корректировки в зависимости от порядка расположения. Создан программный прототип, проведены эксперименты по трем сценариям.
    — Описывает математическую модель, лежащую в основе OptiFlow
    — Формализует задачу проектирования интерфейса как оптимизационную
    — Упоминает необходимость применения генетических алгоритмов для оптимизации
  • Курта П.А., Израилов К.Е. Обзор способов построения динамических адаптивных интерфейсов и их интеллектуализация // Научно-аналитический журнал «Вестник Санкт-Петербургского университета Государственной противопожарной службы МЧС России». 2023. № 4. С. 119-132. DOI: 10.61260/2218-130X-2024-2023-4-119-132

    Обзорная статья, анализирующая 20 научных публикаций о динамических адаптивных интерфейсах. Рассматриваются различные способы построения адаптивных интерфейсов, применение машинного обучения, области применения. Показано, что только 10% работ используют машинное обучение. Обосновывается необходимость создания общего интеллектуального подхода к построению интерфейсов.

    — Обосновывает актуальность задачи, решаемой OptiFlow
    — Упоминает генетические алгоритмы как один из подходов
    — Демонстрирует недостаточность существующих решений