n=5, n-2 = 3 |
n=6, 2(n-1)=10, n-2 = 4 |
3 0 0 0 0 2 1 0 0 0 1 1 1 0 0 сначала размещаем n-2 единицы |
4 0 0 0 0 0 | 5 1 1 1 1 1 - 1 3 1 0 0 0 0 | 4 2 1 1 1 1 - 2 2 2 0 0 0 0 | 3 3 1 1 1 1 - 3 2 1 1 0 0 0 | 3 2 2 1 1 1 - 4 1 1 1 1 0 0 | 2 2 2 2 1 1 - 5 потом - в каждую лунку добавим 1 |
Нарисуем эти деревья. Четвертому вектору соответствуют два неизоморфных дерева!!! В одном из них соседями единственной вершины степени 3 являются 2 висячих вершины и одна со степенью 2, а во второй – наоборот.
3.2. ИЗОМОРФИЗМ ГРАФОВ.
В качестве необходимого условия изоморфизма графов подойдет совпадение любых легко считаемых характеристик: мин.разрез, наличие цикла, вектор степеней вершин и т.д. После этого задача установления изоморфизма разбивается на более мелкие задачи. Аналог разложимых СП.
V(k) — множество вершин графа G ={V, E}, имеющих степень k, |V| ¾ мощность множества V,
S(V) — убывающий вектор степеней вершин из множества V,
N(a) — множество вершин, смежных с вершиной a,
N(a,k) — множество вершин из N(a), имеющих степень k,
C(k, m) ¾ множество вершин, входящих ровно в m циклов длины k,
d(a,g) ¾ минимальноечисло ребер на пути из a в g ,
f: VL® VR —перевод. f(a)=b означает, что a переводится словом b, f({a1,...,ak})={f(a1),...,f(ak)}.
Выделим часть необходимых условий изоморфизма графов GR и GL.
1) Число вершин и ребер в графах GR и GL совпадает.
2) Если граф GL связный, то и граф GR связный.
3) Вектора степеней вершин S(VR) и S(VL) совпадают.
4) |VR(k)|=|VL(k)| и f(VL(k))=VR(k) для каждого k. В т.ч., если VL(k)={a} и VR(k)={b}, то f(b)=a.
5) f(a)=b Þ S(N(a))=S(N(b)) и f(N(a,k))=N(b,k) при каждом k.
6) VL(k)={a,g} и VR(k)={b,d} Þ dL(a,g)=dR(b,d).
7) f(a)=b и f(g)=dÞdL(a,g)=dR(b,d). Вершину d надо искать на расстоянии d(a,g) от вершины b.
8) Число циклов длины k в обоих графах совпадает при всех k.
9) |CL(k,m)| = |CR(k,m)| и f(CL(k,m)= CR(k,m) при всех k и m.
Свойства 4, 5, 7 и 9 позволяют частично формировать соответствие f.
Выделение двусвязных компонент в графе за O(|E|). Классификация ребер.
№18. Лингвистическая задача, использующая изоморфизм графов.
Дано множество слов языка суахили L = {kibuzi, mbuzi, mgeni, mtu, jitu, jito}и множество их переводов на русский язык R = {великан, человек, большая река, козочка, коза, гость}. Перевести на русский язык отдельно каждое слово языка суахили.
Решение. Все русские переводы можно представить в виде пар повторяющихся имен объектов (человек, коза, гость, река) и их размеров (большой, маленький, средний): великан = большой человек, козочка = маленькаякоза, коза = средняя коза. Нарисуем граф множества русских слов из R. В нем различны степени вершин, соответствующих размерам. Выделим повторяющиеся части в словах языка суахили: buzi повторяется с ki и m, с m еще встречаются geni и tu, с tu – ji, с ji – to. Естественно предположить, что это морфемы языка, имеющие самостоятельное значение.
Нарисуем граф множества морфем языка суахили.
В каждом слове языка суахили одна морфема принадлежит трехэлементному множеству {ji, m, ki}, а вторая четырехэлементному множеству {to, tu, geni, buzi}. Þ {ji, m, ki} – размеры, а {to, tu, geni, buzi} - объекты.
Размеры различаются по числу повторений, значит
ki = маленький, m = средний, а ji = большой. Размер ki
встречается только в слове kibuzi, а маленькой в русском тексте бывает только коза, значит
buzi = коза. Средний размер m встречается кроме
козы в повторяющемся 1 раз слове geni=гость и 2 раза слове tu=человек. В графах осталось по одному неопознанному слову.
Значит to=река.
Решить задачу можно проще. Оба графа – деревья, содержащие по одной вершине степени 3: m=средний, причем все 3 поддерева являются цепочками из различного числа элементов.
3.3. ОСТОВНЫЕ ДЕРЕВЬЯ.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.