7. Kenig, E. Rigorous dynamic modelling of complex reactive absorption processes [Text] / E. Kenig, R. Schneider, A. Gorak // Chem. Eng. Sci. - 1999. - № 54. - pp. 5195-5203.
8. Bugaeva, L. N. An application of expert system to choice, simulation and development of gases purification processes [Text] / L. N. Bugaeva, Yu. A. Beznosik, G. A. Statjukha, A. A. Kvitka // J. Computers Chem. Engng. — 1996. — Vol. 20. — pp. 401—402.
9. Безносик, Ю. А. Математическое моделирование процесса нейтрализации в производстве хлорметанов [Текст] / Ю. А. Безносик, А. Г. Бондарь, Г. А. Статюха // Хими-чекая технология. — 1980. — № 1. — С. 48—50.
10. Безносик, Ю. А. Абсорбция хлора и хлористого водорода из отходящих газов в производстве хлорметанов [Текст] / Ю. А. Безносик, Т. В. Бойко // Химическое машиностроение. — 1981. — Вып. 34. — С. 77—82.
11. Реутский, В. А. Процессы хемосорбции [Текст] / В. А. Реут-ский // Итоги науки и техники. Сер. Процессы и аппараты химической технологии. — T. 4. — М.: ВИНИТИ, 1976. — С. 5—81.
ОЧИСТКА ГАЗОВЫХ ВЫБРОСОВ ОТ ХЛОРА И ХЛОРИСТОГО ВОДОРОДА В ПРОИЗВОДСТВЕ ВИНИЛХЛОРИДА
В работе приводятся данные по математическому моделированию одновременной абсорбции хлора и хлористого водорода растворами щелочи. В основу математического описания процесса положена модель вытеснения. Рассмотрены различные области протекания двухкомпонентной абсорбции с химической реакцией по высоте колонны.
Ключевые слова: зонная модель, абсорбция, хемосорбция, хлор, хлористый водород.
Гармаш Роман Вікторович, кафедра кібернетики хіміко-тех-нологічних процесів, Національний технічний університет України «Київський політехнічний інститут», Україна, e-mail: rondo104@mail.ru.
Гармаш Роман Викторович, кафедра кибернетики химико-технологических процессов, Национальный технический университет Украины «Киевский политехнический институт», Украина.
Garmash Roman, National Technical University of Ukraine «Kyiv Polytechnic Institute, Ukraine, e-mail: rondo104@mail.ru
УДК 004.652.5
Горбань Г. В. ЗАСТОСУВАННЯ В*-ДЕРЕВ ДЛЯ
СТВОРЕННЯ ТА ОБЧИСЛЕННЯ ОЬАР-КУБІВ З ВИКОРИСТАННЯМ КОМБІНАТОРНОГО АЛГОРИТМУ
В статті представлено підхід до створення багатомірного кубу OLAP у вигляді структури В*-дерева. Розглянуто комбінаторні залежності між підсумковими (агрегатними) значеннями кубу та на їх основі запропоновано алгоритм побудови кубу. Представлено приклад обчислення даних у кубі з використанням запропонованого алгоритму.
Ключові слова: OLAP, багатомірний куб, таблиця фактів, таблиця вимірів, В*-дерево, рівень деталізації, комбінація, агрегування.
1. Вступ
На сьогоднішні день інформація, що зберігається у базах даних (БД), може досягати достатньо великих розмірів. Тому сучасні напрямки інформаційних технологій концентруються на методах видобутку знань з великих обсягів інформації, що зберігається у БД. Одним з таких напрямів є технологія OLAP (On-Line Analytical Processing) [1, 2], яка вже стала частиною таких комерційних програмних продуктів як Microsoft SQL Server [3], Oracle [4] та інших. Однак питання подальшого дослідження систем OLAP ще досі не втратило своєї актуальності.
2. Аналіз літературних даних і постановка проблеми
Одним із шляхів підвищення ефективності виконання запитів в OLAP-системах є матеріалізація кубів. Але при збільшенні кількості вимірів кількість даних у кубі зростає експоненціально, і тому у випадках достатньо великого числа вимірів повністю матеріалізований гіперкуб, у якому
розраховані всі можливі підкуби з агрегованими даними, може займати достатньо великий об’єм пам’яті [5]. Наступною достатньо складною проблемою є розрідженість кубів, тому для ефективного обчислення кубу важливими є алгоритми його стискання (DWARF [б], MultiWay [7] та інші). Кожний з алгоритмів має свої переваги та недоліки. Тому питання про найкращу структуру кубу і досі залишається відкритим.
3. Результати досліджень
Як альтернативний варіант пропонується зберігати багатомірний куб даних у вигляді B*-дерева [8], що є різновидом B-дерева [9]. Їх відмінність полягає у тому, що у B*-дерева кожний ключ вказує на певний блок даних, що надає можливість інтеграції області покажчиків та області даних. На рис. 1. представлений приклад тривимірного кубу у вигляді вищеописаної структури.
У загальному випадку B*-дерево має n + 1 рівнів, де n — кількість вимірів у кубі. Коренева вершина дерева позначається як нульовий рівень. Теоретично вона може мати m1 вузлів, де m1 — кількість атрибутів
І 10
технологический аудит и резервы производства — № 5/4(13), 2013, © Горбань Г В.
першого виміру кубу. Перехід до вузлів першого рівня з кореневої вершини здійснюється за допомогою ключа, що містить відповідний порядковий номер певного атрибуту у вимірі. Якщо ключ містить значення «0», то це означає, що за відповідним виміром виконується агрегування. Вершини дерева на першому рівні матимуть такий вигляд: V(0), V(і), V(2), ..., V(т4).
Рис. 1. Структура OLAP-кубу у вигляді В*-дерева
У свою чергу, кожна вершина першого рівня може мати m2 вузлів, де m2 — кількість атрибутів другого рівня. Перехід до певного вузла другого рівня здійснюється так само, як для вузлів першого рівня. Вершини дерева на другому рівні матимуть вигляд: V(0,0), V(0,1), V(0,2), ...,
V (m1, m2). Описаний механізм формування дерева продовжується до вершин n-го рівня, в яких і зберігаються значення мір OLAP-кубу. Таким чином, вершини n-го рівня мають вигляд: V(, a2, a3,..., an), де a1 = 0..m1, a2 = 0..m2, ..., an = 0..mn, mt — відповідна кількість атрибутів у г-ому вимірі.
Пропонується алгоритм, за яким будується OLAP-куб у вигляді відповідного дерева. За даним алгоритмом проходження по фактичних даних відбувається тільки один раз, і для кожного об’єкту одночасно обраховується декілька агрегованих значень.
В основу алгоритму покладено той факт, що всі можливі агрегати за певним рівнем деталізації представляють собою всі можливі комбінації за вимірами кубу, кількість яких дорівнює Ckn, де n — кількість вимірів, k — рівень деталізації.
Позначимо множину порядкових номерів кубу як N, тобто N = {1,2,3,..., n}. В свою чергу, множина всіх можливих комбінацій елементів множини N за відповідним рівнем деталізації дорівнюють:
C1 = {{1},{2},{3},...,{n}};
C2 = {{1,2},{1,3},...,{1,n},{2,3},...,{2, n},...,{n -1, n}};
C3 = {{1,2,3},{1,2,4},...,{n-2,n-1,n\} і т.д.
Кількість всіх можливих підкубів дорівнює C° + C\ + + Cn2 +... + Cn = 2n. При цьому C0 = 1 означає загальний агрегат за всім кубом, а Cn = 1 — підкуб фактичних значень. Таким чином, кількість підкубів, в яких хоча б один вимір є фіксованим, а за всіма іншими вимірами здійснюється агрегування, дорівнюватиме C1 + Cn2 +... + Cnn-1 = 2n - 2.
Суть алгоритму полягає у наступному: спочатку здійснюється генерація всіх можливих комбінацій [10] множини n з рівнем деталізації від 1 до n - 1, і отримані комбінації записуються у відповідний масив comb. Потім
здійснюється проходження за всіма об’єктами таблиці фактів, за яке один об’єкт почергово завантажується в оперативну пам’ять.
Наступним кроком є підрахунок загального підсумку кубу. Відбувається це наступним чином: якщо був відкритий лише перший об’єкт, то відповідно створюється вершина V(0,0,...,0), в іншому випадку застосовується
n
відповідна функція агрегування для збереженого раніше значення вершини та поточного значення факту: V(0,0,...,0) = faggr(V(0,0,...,0),fact). Всі інші можливі
n n
агрегати обраховуються за допомогою масиву comb, кількість елементів якого дорівнюватиме 2п - 2.
Для кожного елементу масиву здійснюється перебір всіх порядкових номерів вимірів кубу з метою здійснення перевірки: чи є номер поточного виміру у відповідному елементі масиву для подальшого формування ключів у дереві. Якщо порядковий номер існує, то у ключ за рівнем дерева, що відповідає виміру, записується поточний ID значення відповідного виміру В іншому випадку у ключ записується значення «0», що означає агрегацію за відповідним виміром. Якщо вершина дерева за сформованим шляхом з послідовності ключів ще не існує, то вона створюється, і в неї записується поточне фактичне значення, а інакше до неї застосовується визначена для певної міри функція агрегування:
V (a1,a2,...,an ) = faggr (V (fl1,a2,...,an ), fact), причому в послі-
п n
довності a1,a2,...,an повинен міститись хоча б один нуль, що буде означати агрегацію хоча б за одним виміром.
Розглянемо приклад з базою даних деякої торговельної мережі. Позначимо виміри відповідними порядковими номерами: «Місяць» — 1, «Магазин» — 2, «Товар» — 3 (рис. 2).
Вимір «Магазин» Вимір "Товар" Вимір "Місяць" Таблиця фактів
m маг. Назва магазину Ш ТОЕ. Назва товару ш міс. Назва місяця Ш фасту ID міс. Ш маг. Ш тов. Дохід
1 «Зоря» 1 Алкогольні напої 1 Січень 2011 1 1 1 1 30570
2 «Капгган» 2 Безалкогольні напої 2 Лютий 2011 2 1 1 2 11351
3 «Промінь» 3 Хлі бо було чні вироби 3 Березень 2011 3 1 1 3 21392
4 «Троянда» 4 Кондитерські вироби 4 Квітень 2011 4 1 1 4 44299
5 «Тюльпан» 5 М'ясні продукти
6 Молочні продукти
Рис. 2. Приклад таблиць вимірів і таблиці фактів
Для створення багатомірного кубу за допомогою описаного вище алгоритму спочатку треба згенерувати множину N що буде містити всі можливі комбінації вимірів для обчислення агрегованих значень. Для трьох вимірів N = {«1»,«2»,«3»,«12»,«13»,«23»}, де «1» — агре-говані значення за певним місяцем, «2» — за певним магазином, «3» — за певним товаром, «12» — за певним місяцем і магазином, «13» — за певним місяцем і товаром, «23» — за певним магазином і товаром.
Після обробки першого об’єкту таблиці фактів будуть отримані наступні результати:
V (1,0,0) = 30570;
«1» ^ V (1,0,0) = 30570; «2» ^ V (0,1,0) = 30570;
TECHNOLOGY AUDiT AND PRODUCTiON RESERVES — № 5/4(13), 2013
773^)
MOTE МАТИ ЧЕСКОЕ МОДЕЛИРОВАНИЕ — ПРИКЛАДНЫЕ АСПЕКТЫ
ISSN 222Б-37В0
«3» ^ V (0,0,1) = 30510;
«12» ^ V (1,1,0) = 30510; «13» ^ V (1,0,1) = 30510;
«23» ^ V (0,1,1) = 30510.
Після обробки другого об’єкту таблиці фактів результати обчислення будуть наступними:
V(1,1,2) = 11351; V(0,0,0) = 30510 +11351 = 41951;
«1» ^ V (1,0,0) = 30510 +11351 = 41951;
«2» ^ V (0,1,0) = 30510 +11351 = 41951;
«3» ^ V (0,0,2) = 11351;
«12»^ V (1,1,0) = 30510 +11351 = 41951;
«13» ^ V (1,0,2) = 11351;
«23» ^ V (0,1,2) = 11351.
Відповідні кроки алгоритму застосовуються для кожного об’єкту таблиці фактів доти, доки не буде досягнутий її кінець.
4. Висновки
Представлено підхід до створення OLAP-кубу у вигляді В*-дерева, який має переваги в тому, що дана структура дозволяє зберігати як щільні, так і розріджені куби, а також здатна швидко виконувати запити користувачів.
Запропоновано алгоритм, в основі якого лежить комбінаторний підхід щодо обчислення агрегатних значень кубу.
В подальшому планується дослідження методів пошуку асоціативних правил в OLAP-кубі, побудованим за допомогою вищеописаного алгоритму.
Література
1. Барсегян, А. А. Методы и модели анализа данных: OLAP и Data Mining [Текст] / А. А. Барсегян, М. С. Куприянов, В. В. Степаненко, И. И. Холод. — СПБ: БХВ-Петербург, 2004. — 336 с.
2. Паклин, H. Б. Бизнес-аналитика: от данных к знаниям [Текст] : учеб. пособ. / H. Б. Паклин, В. И. Орешков. — 2-е изд. — СПб.: Питер, 2010. — 104 с.
3. Харинатх С., Куинн С. SQL Server 2005 Analysis Services
и MDX для профессионалов [Текст] : пер. с англ. — М.:
ООО «И. Д. Вильямс», 2008. — 848 с.
4. Архипенков, С. ORACLE Express OLAP [Текст] / С. Ар-
хипенков. — М.: Диалог МИФИ, 2000. — 320 с.
5. Кудрявцев, Ю. А. OLAP технологии: обзор решаемых задач и исследований [Текст] / Ю. А. Кудрявцев // Бизнес-информатика. — 2008. — № 1. — С. 66—10.
6. Sismanis, Ya. Dwarf: Shrinking the petacube [Text] / Yannis Sismanis, Antonios Deligiannakis, Nick Roussopoulos, Yannis Kotidis. — In VLDB, 2002.
7. Zhao, Y. An array-based algorithm for simultaneous multidimensional aggregates [Text] / Yihong Zhao, Prasad M. Deshpande, Jeffrey F. Naughton // In SIGMOD. — 1991. — pp. 159—110.
8. Иванчева, H. А. Постреляционная СУБД Cache [Текст] / H. А. Иванчева, Т. А. Иванчева. — Новосибирск: Новосибирский государственный университет, 2004. — 120 с.
9. Кормен, Т. Алгоритмы: построение и анализ [Текст] : пер. с англ / Т. Кормен и др. — 2-е изд. — М.: Издательский дом «Вильямс», 2005. — 1296 с.
10. Липский, В. Комбинаторика для программистов [Текст] / В. Липский. — М.: Мир, 1988. — 200 с.
применение в*-деревьев для создания и вычисления olap-кубов с использованием комбинаторного алгоритма
В статье представлен подход к созданию многомерного куба OLAP в виде структуры В*-дерева. Рассмотрены комбинаторные зависимости между итоговыми (агрегатными) значениями куба и на их основе предложен алгоритм его построения. Представленный пример вычисления данных в кубе с использованием предложенного алгоритма.
Ключевые слова: OLAP, многомерный куб, таблица фактов, таблица измерений, В*-дерево, уровень детализации, комбинация, агрегирование.
Горбань Гліб Валентинович, аспірант, кафедра інтелектуальних
інформаційних систем, Чорноморський державний університет
імені Петра Могили, Україна, e-mail: bobsley2006@ukr.net.
Горбань Глеб Валентинович, аспирант, кафедра интеллектуальных информационных систем, Черноморский государственный университет имени Петра Могилы, Украина.
Gorban Glib, Petro Mohyla Black Sea State University, Ukraine, e-mail: bobsley2006@ukr.net
УДК 519.63
Михайлова І. Ю. моделювання температурного поля з урахуванням залежності фізичних характеристик від температури
У статті розглянуто результати комп’ютерного моделювання температурного поля пластини під впливом лазерного променя з урахуванням залежності густини, теплоємності та теплопровідності матеріалу від температури. В основу моделі покладено тривимірне нестаціонарне нелінійне рівняння теплопровідності, що розв’язується за допомогою методу покоординатного розщеплення з використанням адаптивної сітки.
ключові слова: тривимірне нестаціонарне нелінійне рівняння теплопровідності, метод покоординатного розщеплення.
технологический аудит и резервы производства — № 5/4(13), 2013, © Михайлова І. Ю.