Какую структуру данных выбрать для описания конфигуратора изделия? Стоит задача написать программу-конфигуратор для выбора совместимых опций изделия (конкретно - производство измерительных приборов). У каждой опции есть одно числовое значение из заданного диапазона. Опций много (до 100) и они между собой взаимосвязаны. Пример исходного описания: Прибор ТИП1-ABCDEFG. Взаимоисключающие опции: Если выбрана опция "А", то опции "D" и "G" выбрать нельзя. А если сначала выбрана опция "D", то нельзя выбрать опцию "A". Зависимые опции: Если в опции "B" выбрано значение <100, то: для опции "G" допустимые значения от 200 до 300, опция "F" недоступна, и т.п. Список опций и связи между ними будут периодически изменяться. Программа будет написана на C++ или Python. Посоветуйте: Как представить и в какой структуре данных хранить описания взаимосвязей? Может есть готовые open-source решения (не нашел)?

24 Мар 2023 в 19:52
59 +1
0
Ответы
1

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

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

Например, для Python вы можете использовать библиотеку NetworkX для работы с графами, а для C++ можете реализовать свой класс для работы с графом.

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

16 Апр в 16:29
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир