Files

7.4 KiB
Raw Permalink Blame History

Mixture Optimizer

Интерактивная система для планирования эксперимента и оптимизации многокомпонентных смесей.

Программа для автоматизированного планирования эксперимента, построения регрессионных моделей, проверки значимости факторов и градиентного поиска оптимума (крутое восхождение) в задачах со смесями.


Основные возможности

  • Редактор состава смеси (проценты, плотность, разбавление)
  • Генерация планов:
    • Полный факторный 2^k
    • Центральный композиционный план (ЦКП) с возможностью дробного ядра
    • Дробный факторный 2^(k-p)
    • План Плакетта–Бермана
    • План Бокса–Бенкена
  • Ввод и управление множественными откликами (добавление, редактирование, переименование, удаление)
  • Регрессионный анализ (МНК) с t-критерием, R², скорректированным R², F-критерием
  • Проверка дисперсии в центре, доверительные интервалы
  • Исключение незначимых факторов с пересчётом модели
  • Крутое восхождение (градиентный метод) с генерацией точек и возможностью установки нового состава
  • Экспорт таблиц в CSV и буфер обмена (TSV)

Все данные хранятся в едином JSON-файле. Сохранение – по команде пользователя (без автоматического сохранения).


Технологии

  • Python 3.8+
  • NumPy – матричные вычисления
  • SciPy – статистические функции (распределения, матрица Адамара)
  • pyperclip – работа с буфером обмена (опционально)

Интерфейс – консольный, с удобной табличной печатью.

Разработано для химиков, биологов, технологов, инженеров и всех, кто занимается оптимизацией многокомпонентных систем.


Установка и запуск

  1. Клонируйте репозиторий:

    git clone https://gitlab.artemkas.ru/artemiy/mixture_optimizer.git
    cd mixture_optimizer
    
  2. Создайте виртуальное окружение (рекомендуется):

    python -m venv venv
    source venv/bin/activate   # Linux / macOS
    # или
    venv\Scripts\activate      # Windows
    
  3. Установите зависимости:

    pip install -r requirements.txt
    
  4. Запустите программу:

    python main.py
    

Пример использования

  1. В главном меню выберите Редактор состава, добавьте ингредиенты (например, Меласса, Глицерин, Этанол). Растворитель (Вода) пересчитывается автоматически.
  2. Перейдите в Планирование эксперимента, задайте шаги для активных факторов (например, 1%, 0.5%, 0.5%) и сгенерируйте план (ЦКП, дробный факторный и т.д.).
  3. В Ввод откликов добавьте название отклика (например, «Сухая НЦ») и введите значения для каждого опыта.
  4. В Анализ значений выберите отклик, задайте уровень значимости α (например, 0.05) – получите регрессионную модель, значимость коэффициентов, дисперсию в центре и доверительный интервал. При необходимости исключите незначимые факторы.
  5. В Крутое восхождение выберите тот же отклик, укажите шаг движения и количество шагов – программа покажет точки градиента. Выберите лучшую точку и установите её как новый состав.
  6. Повторяйте цикл, пока не достигнете оптимума.

Структура проекта

mixture_optimizer/
├── main.py              # Главное меню
├── editor.py            # Редактор состава
├── plan.py              # Планирование эксперимента
├── response.py          # Ввод откликов
├── analysis.py          # Анализ значений
├── ascent.py            # Крутое восхождение
├── table.py             # Вывод таблиц
├── core/
│   ├── classes.py       # Классы Ingredient, Mixture
│   ├── fs.py            # Сохранение/загрузка проекта (JSON)
│   ├── doe.py           # Генерация планов
│   ├── experiment.py    # Класс ExperimentDesign
│   ├── statistics.py    # Статистические функции
│   └── table_io.py      # Экспорт таблиц
├── requirements.txt
├── README.md
└── .gitignore

Сохранение данных

Все данные (состав, план, отклики) хранятся в файле project.json. Сохранение не автоматическое – вы сами решаете, когда сохранить изменения через пункты «Сохранить» в соответствующих подменю. Это защищает от случайной перезаписи.


Лицензия

Проект распространяется под проприетарной лицензией с открытым исходным кодом (Source Available).

Вы можете использовать, копировать, модифицировать и распространять код для некоммерческих целей при сохранении уведомления об авторских правах. Коммерческое использование запрещено без явного письменного разрешения автора.

Подробности см. в файле LICENSE.


Контакты и вклад

По вопросам коммерческого использования, предложений и сообщений об ошибках обращайтесь по адресу: kolobov-artem@bk.ru

Приветствуются сообщения об ошибках и предложения по улучшению через Issues и Merge Requests (для некоммерческих изменений).