Имеется направленный граф, иллюстрирующий причинно-следственные процессы в проблемной области. Т.е. каждые две связанные вершины А->B можно прочесть как: "Если A, то B", или "увеличение А приводит к увеличению B" и т.п. Имеется ещё один вид связи "A-|B", которая обозначает: "Увеличение A приводит к уменьшению B" ("тормозящая" связь).
Задача состоит в том, чтобы ранжировать вершины по их значимости для достижения какой-либо одной заранее выбранной вершины — цели. Например, если бы граф был экспертной системой по ремонту двигателей, то целевой вершиной могло бы быть "Исправная работа двигателя".
За счет того, что в графе рёбер больше чем вершин, многие вершины-"причины" дают больше чем одно вершин-"следствий" и в результате этого значимость таких вершин-причин считается настолько же большей.
На примере с двигателем, граф содержит разные способы починки двигателя (а те в свою очередь дробятся на более мелкие задачи). Содержит также разные отрицательные факторы, которые наоборот приводят к его поломке. Важный момент — исправная работа двигателя величина нечёткая и даже один какой-нибудь задействованный способ его починки из множества необходимых уже даст какой-то толк.
Целью ранжирования вершин является определение самых эффективных способов починки двигателя и самых вредных "отрицательных факторов".
Я думал, можно определить значимость вершины просто посчётом всех её следствий (включая следствия следствий и т.д. вплоть до целевой вершины), но такой алгоритм пригоден только для одного вида связей — обычных следствий, а тормозящие связи уже как в него вписать не пойму.
Подскажите, плиз, как называется такая задача? И если кто знает, алгоритм, как её можно решить.
Здравствуйте, objMihail, Вы писали:
M>Имеется направленный граф, иллюстрирующий причинно-следственные процессы в проблемной области. Т.е. каждые две связанные вершины А->B можно прочесть как: "Если A, то B", или "увеличение А приводит к увеличению B" и т.п. Имеется ещё один вид связи "A-|B", которая обозначает: "Увеличение A приводит к уменьшению B" ("тормозящая" связь).
По моему, это похоже на задачу минимизации ф-и нескольких переменных F(A,B,...). Увеличивающая связь A->B означает, что B = B0 + k*A, тормозящая связь A-|B означает, что B = B0 — k*A, где B0 — дефолтное значение B, k>=0.
Здравствуйте, Аноним, Вы писали:
А>По моему, это похоже на задачу минимизации ф-и нескольких переменных F(A,B,...). Увеличивающая связь A->B означает, что B = B0 + k*A, тормозящая связь A-|B означает, что B = B0 — k*A, где B0 — дефолтное значение B, k>=0.
Здравствуйте, 67108864, Вы писали:
6>"когнитивные карты".
6>не понятно: 6>- что делать с циклами, 6>- как работать с транзитивностью
6>так как я этот термин увидел только 1.5 месяца назад, то ничего более сказать не смогу.
Спасибо, почитал, но термин вообще какой-то очень обширный...