Как реализовать C # код / ​​логику на основе дерева решений? - PullRequest
2 голосов
/ 14 июня 2011

У меня есть большое дерево решений со многими вопросами Да / Нет.

Мне нужно реализовать некоторый код на c #, пройти через это дерево и получить уникальный идентификатор в качестве возврата.

if-> 1=true, A=true, C=true -> return 111;

if -> 1=true, A=true, C=false -> return 110;

как я могу реализовать такую ​​логику без, если еще? мое дерево решений намного, намного больше, чем этот пример, и если / еще не является хорошим решением. Я думаю, чтобы сделать это в 2 методах. сначала получите QuestionID, а второй метод получит уникальный идентификатор ответа на основе вопросов. пожалуйста, помогите мне с некоторыми идеями кода ..

дерево решений: enter image description here

Ответы [ 2 ]

1 голос
/ 14 июня 2011

если это дерево исправлено, вы можете установить все альтернативы в таблице решений (что-то вроде таблицы истинности) и сохранить ее в словаре, а затем использовать этот словарь для возврата соответствующего результата.

Dictionary["1,A"]=OutCome_1;
Dictionary["1,A,C,true"]=OutCome_2;
Dictionary["1,A,C,false"]=OutCome_3;

и т. Д.

1 голос
/ 14 июня 2011

Вы должны определить матрицу решений. Ваш код будет выглядеть так: дискриминант = решающая матрица (1, A, B, C, 2) переключатель (дискриминант) { дело исход_1: ... перерыв;

case case_2: ... перерыв;

по умолчанию: бросить ... перерыв; }

...