Комбинаторика чётко упорядоченной структуры

Автор темы marko (Mr. Kook) 
ОбъявленияПоследний пост
ОбъявлениеРаботодателям и кадровым агентствам: Размещение вакансий26.03.2008 03:07
ОбъявлениеПравила и принципы форума «Высшая математика»28.10.2009 15:17
ОбъявлениеЗапущен новый раздел «Задачки и головоломки»29.08.2019 00:42
24.09.2007 14:17
Комбинаторика чётко упорядоченной структуры
Толь забыл комбинаторный анализ, вылетел у меня из головы, то ли что-то не то.
Сформулирую проблему.
X - множество первых n натуральных чисел.
X={1, 2, ..., n}
X^n- n-ая декардова степень множества X.
X^n=XxXxXx...xX={(a1, a2, a3, ... , an): ai in X, i=1, 2, ... , n}
dim(X^n)=n^n - количество элементов X^n.
M - подмножество X^n.
a - произвольный елемент M. Определяется следующим образом.
a=(a1, a2, a3, ... , an).
Вводится понятие ранга a rang(a)=dim({a1, a2, a3, ... , an})
и максимума a max(a)=max({a1, a2, a3, ... , an}).
Для элемента a должно иметь место соотношение rang(a)=max(a) (первое условие).
Числа элемента a занумерованы слева направо, притом для любого ai, i=1, 2, ... , n,
выполнется второе условие ai<=i.
И третье последнее условие
Пусть max(a)=am, a1<=am<=an, тогда dim({a1, a2, a3, ... , am})=am.
Например. а=(1, 1, 2, 3, 1)
Условие
1) rang(a)=dim({1, 1, 2, 3, 1})=3
max(a)=max({1, 1, 2, 3, 1})=3
rang(a)= max(a).
2) ai<=i,i=1, ... , 5
3) max(a)=3, тогда dim({1, 1, 2, 3})=3.
Нужно определить количесто элементов М для произвольного n.
Для n=1 будет 1.
Для n=2 будет 2.
Для n=3 будет 5.
Для n=4 будет 15.
Для n=5 будет 52.
Для n=6 будет 203.
Для n=7 будет 877.
Для восьми прога 8^8 долго обрабатывала и я недождался :-).
Если кто владеет информацией о формуле для любого n, то поделитесь, плиз.
Буду весьма признателен, если кто-то кроме того что поделится формулой,
даст краткие разьяснение о том, откуда взялась эта формула.

24.09.2007 17:31
Вот это что за зверь:
http://mathworld.wolfram.com/BellNumber.html
24.09.2007 18:15
Как их называют - "упорядоченные раскраски"?
Вот ещё одна ссылка - на энциклопедию целочисленных последовательностей:
http://www.research.att.com/~njas/sequences/A000110
Похоже, что хорошей (замкнутой) формулы для чисел Белла нет. Но есть простая рекуррентная схема для их вычисления (треугольник Белла). Ещё известна асимптотика. Наконец, число Белла можно представить как сумму чисел Стирлинга второго рода.

Раскраской множества {1,...,n} будем называть любое отображение c: {1,...,n}->{1,....,n}. Условия, которые сформулировал Mr. Kook, можно короче записать в виде следующей системы:
c(1)=1,
c(k)<=max(c(1),...,c(k-1))+1 при 1<k<=n.
Раскраски, удовлетворяющие системе этих условий, биективно соответствуют разбиениям множества {1,...,n}.
Кстати, как принято называть такие раскраски? Упорядоченные? Нормальные? Нормализованные?

Легко организовать рекурсивный перебор упорядоченных раскрасок. На k-м уровне рекурсии перебирать возможные значения цвета k-го элемента. В качестве одного из аргументов рекурсивной функции передавать ранг уже сформированного куска (максимальное значение среди предыдущих цветов).

Легко сделать и нерекурсивный перебор - для каждой упорядоченной раскраски строить лексикографически следующую.

27.09.2007 17:10
Вопрос о разбиении множества Mn на левые классы Грина (L-классы Грина)
Доброго времени суток, уважаемые участники Форума!
Вопрос о разбиении множества Mn на левые классы Грина (L-классы Грина)
a=(a1, a2, ... , an) из Mn
am=max(a), am-первый попавшийся наибольший элемент, 1<=m<=n
Например, a=(1, 1, 2, 3, 1, 3) , am=3, m=4.
Будем говорить, что a и b пребывают в одном L-классе Грина <=>
rang(a)=rang(b), am=max(a) и
(a1, a2, ... , am)=(b1, b2, ... , bm).
Например, разбиение множества М3={(1, 1, 1), (1, 1, 2), (1, 2, 1),(1, 2, 2), (1, 2, 3)}
L1={(1, 1, 1)},
L2={(1, 1, 2)},
L3={(1, 2, 1),(1, 2, 2)}
L4={(1, 2, 3)}
Для n=4 будет 9 L-классов Грина
Для n=5 будет 52 L-классов Грина
Для n=6 будет 76 L-классов Грина
Для n=7 будет 279 L-классов Грина
Для n=8 будет 1156 L-классов Грина
Для n=9 будет 5296 L-классов Грина
Для десяти долго не смог дождаться.
Обрабатывает 13,5 млрд итераций.
Есть ли формула для подсчёта L-классов Грина?
И может кто подскажет быстрый способ генерации таких L-классов Грина?

27.09.2007 23:00
Число классов и генерация классов
Цитата

Mr. Kook писал:
Для n=4 будет 9 L-классов Грина
Для n=5 будет 52 L-классов Грина
Для n=6 будет 76 L-классов Грина
Для n=7 будет 279 L-классов Грина
Для n=8 будет 1156 L-классов Грина
Для n=9 будет 5296 L-классов Грина
Для n=5 не 52, а 24 класса.
Нашёл в энциклопедии целочисленных последовательностей:
http://www.research.att.com/~njas/sequences/A005001
Оказалось, что это последовательность частичных сумм чисел Белла.
Числа Белла умеем считать с помощью простой рекуррентной схемы (треугольник Белла).
Цитата

Mr. Kook писал:
И может кто подскажет быстрый способ генерации таких L-классов Грина?
Каждый такой класс задаётся куском упорядоченной раскраски до элемента со значением rang включительно (остальная часть будет разной для разных раскрасок, входящих в этот класс).

Для заданного n перебираем rang от 1 до n.
Для заданных n и rang перебираем упорядоченные раскраски длины не больше n, заканчивающиеся значением rang.
Это типичное упражнение на метод ветвей и границ (спасибо за упражнение!).

Для n=15 получается 223578344 класса. Программа работает около минуты (если только перебирать и считать классы, но никуда не выводить).

Любопытно, а для чего нужны эти L-классы Грина?

28.09.2007 02:53
это числа Белла
28.09.2007 16:36
Некоторые применения L-классов Грина
Вкратце.
В теории реляционных баз данных, а именно для нахождения наиболее близких реляционных связок, там под связкой как известно
понимают упорядоченный набор данных (сортированный кортеж), вобщем что-то вроде элементов множества М.
В криптографии разрабатывались специальные алгоритмы шифрования, связанные с левыми классами Грина (только они не имеют широкого применеия, может быть где-то какая-то организация сама для себя что-то подобное и сделала)
В теоретической физике есть такие себе полугрупповые методы в
суперсимметрических теориях, а там задействованы особенности L-классов Грина, про это подробно сказать не могу, слышал что в терфизике в такой теории применяют, но более детально сказать не могу как конкретно.
28.09.2007 19:19
Спасибо за обзор! (-)
Спасибо за обзор!

03.10.2007 17:46
Спасибо за ответы и подсказки! Если кого заинтересует: такой вопрос о MLn(k)(+)
Mn - тоже самое множество всех упорядоченных наборов первых n натуральных чисел.
Mn(k) - подмножество множества Mn, у которого все элементы ранга k.
Известно, что количество элементов множества Mn(k) равно числу Стирлинга второго рода,
то есть dim(Mn(k))=S(n, k).
MLn - множество всех L-классов Грина Mn.
MLn(k) - подмножество множества Ln, у которого все L-классы Грина состоят из элементов ранга k.
Известна формула для dim(MLn), но она не даёт отвена на следующий вопрос, хотя я могу и заблуждаться,
а имено: какой формулой определять количество элементов множества MLn(k)?
29.10.2007 17:41
Вопрос: доказать свойство Ln(y1, y2, ... , ym) (+)
Подмножество Ln(y1, y2, ... , ym) множества Mn, где y из Mn,
ym=max{y1, y2, ... , ym}, y(1)=y1, y(2)=y2, ... , y(m)=ym и
y(1)=1, yk<=max(y(1),...,y(k-1))+1, 1<k<=m.
Например., для M3.
L3(1)={(1, 1, 1)},
L3(1, 1, 2) ={(1, 1, 2)},
L3(1, 2)={(1, 2, 1), (1, 2, 2)}
L3(1, 2, 3)={(1, 2, 3)}.
Нужно подтвердить, что Ln(y1, y2, ... , ym) есть L-классом Грина.
То есть возникла необходимость обосновать справедливость следующего утверждения.
Для любых двух элементов a и b произвольного класса Грина
Ln(y1, y2, ... , ym), m<=n Mn,
где
y(1)=1, yk<=max(y(1),...,y(k-1))+1, 1<k<=m.
множества Mn найдутся такие элементы x и y из множества Mn такие, что
a = x*b и
b = y*a
Элементы множества Mn перемножаются следующим образом. Для перемножения элементы множества Mn записывают в виде перестановок с повторениями и умножаются точно также как перестановки.
Например, (1, 2, 3, 4, 4)*(1, 2, 2, 1, 1)=(1, 2, 2, 1, 1).
Или
(1, 1, 2)*(1, 1, 2)=(1, 1, 1).
Если у кого есть какие-то мысли, то, пожалуйста, поделитесь.

Извините, только зарегистрированные пользователи могут публиковать сообщения в этом форуме.

Кликните здесь, чтобы войти