@AlexPro197

Какую структуру данных выбрать для описания конфигуратора изделия?

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


Список опций и связи между ними будут периодически изменяться.
Программа будет написана на C++ или Python.

Посоветуйте:
Как представить и в какой структуре данных хранить описания взаимосвязей?
Может есть готовые open-source решения (не нашел)?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
Непонятно зачем автор протегал это АЛГОРИТМАМИ. Тут вобщем-то имеет место обычная работа с формочкой.
Дизайнеры форм лабают это и не зная ваших умных абстракций. Просто пишут там хендлер на каждую радио-кнопку или на чек-боксик и в зависимости от действий - скрывают некоторые филды или подсвечивают.

Но если вам интересна теория, то такое поведение можно описать небольшим конечным автоматом. Или
в данной задаче несколькими конечными автоматами которые взаимосвязаны по реакции на переходы.

Гуглить можно по FSM (Finite State Machine) и библиотек по сям и питонам будет много.

Вообще данная задача еще не набрала критическую массу знаний чтоб кодить ее в автоматах.
Время потраченное на библиотеки и на привязку их к формам может быть слишком большим
и эффекта не будет. Будет разочарование.
Ответ написан
vovka3003
@vovka3003
Фрилансер. Инженер систем безопасности.
Попробуйте конструктор DataExpress, может быть он подойдёт под ваши задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы