Визуальное представление множеств - PullRequest
3 голосов
/ 22 декабря 2010

У меня есть некоторые экспериментальные данные, и я решил представить их как наборы.

Скажем, есть основной набор, называемый E = {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s} ( синий круг ) и несколько подмножеств B ( красные пунктирные эллипсы ), которые содержат элементы из основного набора E .

Мне нужно представить эти подмножества в основном наборе E и покажите их пересечения, более или менее похожие на рисунок ниже.

Вот почему мне нужны некоторые алгоритмы (с примером) для рисования этой фигуры.Желательно в PHP или Javascript ( с использованием спецификации SVG ), потому что я собираюсь реализовать эту проблему в веб-приложении.

Graphical representation of set-covering problem

Заранее спасибо!

1 Ответ

1 голос
/ 22 декабря 2010

Мне кажется, что это то, что генетический алгоритм был бы хорош, потому что:

  1. Общая длина пути всех периметров подмножеств может использоваться в качестве функции пригодности (минимизация этого приведет к получению «хороших» решений без длинных тощих подмножеств), и эта функция является непрерывной.
  2. Должно быть просто реализовать мутацию (покачивать позиции одного или нескольких элементов) и кроссовер (поменять местами позиции некоторых элементов).

Еще одно важное предложение для фитнес-функции: суровое наказание любое решение, когда периметр одного поднабора включает в себя элемент, который не принадлежит этому набору.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...