# Mixture Optimizer **Интерактивная система для планирования эксперимента и оптимизации многокомпонентных смесей.** Программа для автоматизированного планирования эксперимента, построения регрессионных моделей, проверки значимости факторов и градиентного поиска оптимума (крутое восхождение) в задачах со смесями. --- ## Основные возможности - Редактор состава смеси (проценты, плотность, разбавление) - Генерация планов: - Полный факторный `2^k` - Центральный композиционный план (ЦКП) с возможностью дробного ядра - Дробный факторный `2^(k-p)` - План Плакетта–Бермана - План Бокса–Бенкена - Ввод и управление множественными откликами (добавление, редактирование, переименование, удаление) - Регрессионный анализ (МНК) с t-критерием, R², скорректированным R², F-критерием - Проверка дисперсии в центре, доверительные интервалы - Исключение незначимых факторов с пересчётом модели - Крутое восхождение (градиентный метод) с генерацией точек и возможностью установки нового состава - Экспорт таблиц в CSV и буфер обмена (TSV) Все данные хранятся в едином JSON-файле. Сохранение – по команде пользователя (без автоматического сохранения). --- ## Технологии - Python 3.8+ - NumPy – матричные вычисления - SciPy – статистические функции (распределения, матрица Адамара) - pyperclip – работа с буфером обмена (опционально) Интерфейс – консольный, с удобной табличной печатью. Разработано для химиков, биологов, технологов, инженеров и всех, кто занимается оптимизацией многокомпонентных систем. --- ## Установка и запуск 1. Клонируйте репозиторий: ```bash git clone https://gitlab.artemkas.ru/artemiy/mixture_optimizer.git cd mixture_optimizer ``` 2. Создайте виртуальное окружение (рекомендуется): ```bash python -m venv venv source venv/bin/activate # Linux / macOS # или venv\Scripts\activate # Windows ``` 3. Установите зависимости: ```bash pip install -r requirements.txt ``` 4. Запустите программу: ```bash python main.py ``` --- ## Пример использования 1. В главном меню выберите **Редактор состава**, добавьте ингредиенты (например, Меласса, Глицерин, Этанол). Растворитель (Вода) пересчитывается автоматически. 2. Перейдите в **Планирование эксперимента**, задайте шаги для активных факторов (например, 1%, 0.5%, 0.5%) и сгенерируйте план (ЦКП, дробный факторный и т.д.). 3. В **Ввод откликов** добавьте название отклика (например, «Сухая НЦ») и введите значения для каждого опыта. 4. В **Анализ значений** выберите отклик, задайте уровень значимости α (например, 0.05) – получите регрессионную модель, значимость коэффициентов, дисперсию в центре и доверительный интервал. При необходимости исключите незначимые факторы. 5. В **Крутое восхождение** выберите тот же отклик, укажите шаг движения и количество шагов – программа покажет точки градиента. Выберите лучшую точку и установите её как новый состав. 6. Повторяйте цикл, пока не достигнете оптимума. --- ## Структура проекта ```text 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 (для некоммерческих изменений).