diff --git a/README.md b/README.md index e568021..a2197a9 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,130 @@ -# Планирование эксперимента и оптимизация смесей +# Mixture Optimizer -Программа для автоматизированного планирования эксперимента, построения регрессионных моделей, проверки значимости факторов и крутого восхождения (градиентного метода) для поиска оптимума в задачах со смесями. +**Интерактивная система для планирования эксперимента и оптимизации многокомпонентных смесей.** + +Программа для автоматизированного планирования эксперимента, построения регрессионных моделей, проверки значимости факторов и градиентного поиска оптимума (крутое восхождение) в задачах со смесями. + +--- ## Основные возможности -- **Редактор состава**: создание и изменение ингредиентов смеси (проценты, разбавление, плотность). -- **Планирование эксперимента**: генерация различных планов: - - Полный факторный план `2^k` +- Редактор состава смеси (проценты, плотность, разбавление) +- Генерация планов: + - Полный факторный `2^k` - Центральный композиционный план (ЦКП) с возможностью дробного ядра - - Дробный факторный план `2^(k-p)` - - План Плакетта-Бермана - - План Бокса-Бенкена -- **Ввод откликов**: добавление, редактирование, переименование и удаление откликов. -- **Анализ значений**: - - Построение линейной регрессии (МНК) - - Проверка значимости коэффициентов по t-критерию с заданным уровнем α - - R², скорректированный R², F-критерий - - Дисперсия в центре и доверительный интервал - - Исключение незначимых факторов и пересчёт модели -- **Крутое восхождение**: - - Расчёт коэффициентов модели для выбранного отклика - - Генерация точек вдоль градиента (максимизация или минимизация) - - Возможность установить выбранную точку как новый состав -- **Экспорт данных**: все таблицы можно сохранить в CSV или скопировать в буфер обмена (TSV). + - Дробный факторный `2^(k-p)` + - План Плакетта–Бермана + - План Бокса–Бенкена +- Ввод и управление множественными откликами (добавление, редактирование, переименование, удаление) +- Регрессионный анализ (МНК) с t-критерием, R², скорректированным R², F-критерием +- Проверка дисперсии в центре, доверительные интервалы +- Исключение незначимых факторов с пересчётом модели +- Крутое восхождение (градиентный метод) с генерацией точек и возможностью установки нового состава +- Экспорт таблиц в CSV и буфер обмена (TSV) + +Все данные хранятся в едином JSON-файле. Сохранение – по команде пользователя (без автоматического сохранения). + +--- + +## Технологии + +- Python 3.8+ +- NumPy – матричные вычисления +- SciPy – статистические функции (распределения, матрица Адамара) +- pyperclip – работа с буфером обмена (опционально) + +Интерфейс – консольный, с удобной табличной печатью. + +Разработано для химиков, биологов, технологов, инженеров и всех, кто занимается оптимизацией многокомпонентных систем. + +--- ## Установка и запуск 1. Клонируйте репозиторий: + ```bash - git clone - cd experiment + 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`. + +--- + +## Контакты и вклад + +По вопросам коммерческого использования, предложений и сообщений об ошибках обращайтесь по адресу: [ваш email]. + +Приветствуются сообщения об ошибках и предложения по улучшению через Issues и Merge Requests (для некоммерческих изменений).