@AlexPro197

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

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


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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы