Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Proceedings of 6th International Conference of Young Scientisis on Solutions of Applied Problems in Control and Communications

..pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
6.07 Mб
Скачать

act UC09.01 Export list of chemicals

User

System

Select row s to export

Select columns to export

[No]

Select export format

Export the chemical list

Are any rows or columns selected?

 

 

[Yes]

 

 

Open a w indow to select

 

 

path to the file

Close the

 

[Yes]

window

 

 

 

 

[Nie]

Cancel export

 

 

Confirm the path to the file

Generate list

Sav e the file to the driv e

Fig. 3. Activity diagram – export list of chemicals

Activity diagram describes use case diagram as a sequence of activities. It is a graphical representation of a use case diagram. This diagram shows all activities necessary to generate list of chemicals. That is one of most used functions in this information system.

111

Next in my diploma work I created class diagram and additional sequence and state-machine diagrams.

3.3. Data model of the system

At this point I was able to create a data model of the system. It begins with creating a class diagram. Then I transformed this diagram using SW Sparx Enterprise Architect and created a physical data model of the system. This model shows the database with all tables, connections, attributes and data types.

class DDL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

pv eta

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«column»

 

 

kbu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*PK cislo: nvarchar(20)

 

«column»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

popis: nvarchar(max)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

extension: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«PK»

 

 

 

kbu: varbinary(max)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

PK_pveta(nvarchar)

 

kbusize: bigint

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*PK kbuID: int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v zorecobr

 

 

 

 

 

 

 

 

 

 

 

+PK_pveta

1

 

«PK»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

PK_kbu(int)

 

«column»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vzorecobr: varbinary(max)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+PK_kbu

1

 

vzorecsize: bigint

 

 

 

 

 

 

 

 

 

 

 

 

 

+cislo

0..*

 

*PK vzorecobrID: int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JoinchemikaliaTopv eta

 

 

 

 

«PK»

 

 

 

 

rv eta

 

 

 

 

 

 

 

 

(kbuID = kbuID)

+

PK_vzorecobr(int)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«column»

 

 

 

 

«FK»

 

 

 

 

«column»

 

 

 

 

 

 

 

 

 

 

 

 

 

*PK

cislo: nvarchar(20)

 

 

 

FK

cislo: nvarchar(20)

 

 

 

 

+PK_vzorecobr

1

 

 

 

 

 

 

 

 

 

 

popis: nvarchar(max)

 

 

 

FK

chemikaliaID: int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«FK»

 

 

 

+FK_chemikalia_kbu

1..*

 

 

 

 

«PK»

 

 

 

 

 

 

 

 

 

 

 

 

 

+

PK_rveta(nvarchar)

 

 

 

+

FK_JoinchemikaliaTopveta_chemikalia(int)

 

 

 

 

 

 

 

 

 

 

 

chemikalia

 

 

 

 

 

 

 

 

 

 

 

 

+

FK_JoinchemikaliaTopveta_pveta(nvarchar)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..*

«column»

 

 

(vzorecobrID = vzorecobrID)

 

+PK_rveta

1

 

 

 

 

+FK_JoinchemikaliaTopveta_chemikalia

 

«FK»

 

 

 

 

 

 

 

 

 

 

 

 

casnumber: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(cislo = cislo)

 

 

 

 

 

 

 

 

 

 

 

cena: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cobjednavky: nvarchar(30)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(chemikaliaID = chemikaliaID)

datumexp: nvarchar(10)

 

 

+FK_JoinchemikaliaTorveta_rveta

0..*

 

 

JoinchemikaliaTohv eta

 

 

 

dodavatel: nvarchar(100)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hmbrutto: decimal(10,3)

+FK_chemikalia_vzorecobr

 

JoinchemikaliaTorv eta

«column»

 

 

 

 

 

 

 

 

hmnadoby: decimal(10,3)

 

 

 

 

 

 

 

 

 

 

 

 

1..*

 

 

 

 

 

 

 

 

FK

cislo: nvarchar(20)

 

 

 

 

 

 

 

hmnetto: decimal(10,3)

 

«column»

 

 

 

 

FK

chemikaliaID: int

 

 

 

 

 

 

 

hustota: decimal(10,3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FK

cislo: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

+PK_chemikalia

 

iupacname: nvarchar(45)

 

 

 

 

 

 

 

 

 

 

 

 

 

+FK_JoinchemikaliaTorveta_chemikaliaFK

chemikaliaID: int

 

 

«FK»

 

 

 

 

 

 

 

 

jednotka: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

FK_JoinchemikaliaTohveta_chemikalia(int)

+FK_JoinchemikaliaTohveta_chemikalia

 

jednotkamn: nvarchar(5)

 

 

«FK»

 

 

 

 

 

+

FK_JoinchemikaliaTohveta_hveta(nvarchar)

0..*

1

 

miestnost: nvarchar(10)

 

 

 

 

 

 

 

 

 

 

 

+

FK_JoinchemikaliaTorveta_chemikalia(int)

 

 

 

 

 

 

 

 

 

 

mnozstvo: decimal(10,3)

 

 

+FK_JoinchemikaliaTohveta_hveta

0..*

 

 

 

 

(chemikaliaID = chemikaliaID)

 

 

 

0..* +

FK_JoinchemikaliaTorveta_rveta(nvarchar)

 

 

 

 

 

molhmotnost: decimal(10,3)

 

 

 

 

(cislo = cislo)

 

 

 

 

 

 

nazov: nvarchar(50)

(chemikaliaID = chemikaliaID)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

objednat: nvarchar(5)

+PK_chemikalia

 

 

 

 

 

 

 

 

 

+PK_hveta

1

 

 

 

 

 

 

pikto1: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

+PK_chemikalia 1

 

pikto2: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

JoinchemikaliaTosv eta

 

 

 

 

 

 

 

 

 

 

pikto3: nvarchar(5)

 

 

 

 

 

 

hv eta

 

 

 

 

 

 

+PK_chemikalia

 

 

 

 

 

 

 

 

 

 

 

pikto4: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(chemikaliaID = chemikaliaID)

«column»

 

 

 

 

 

 

 

 

 

 

 

 

 

pikto5: nvarchar(5)

 

 

 

 

«column»

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

pikto6: nvarchar(5)

 

 

FK

cislo: nvarchar(20)

 

 

*PK

cislo: nvarchar(20)

 

 

 

 

 

 

+FK_JoinchemikaliaTosveta_chemikalia0..*

 

 

 

 

 

 

 

 

pikto7: nvarchar(5)

FK

chemikaliaID: int

 

 

 

popis: nvarchar(max)

 

 

 

 

 

 

 

 

 

 

 

+PK_chemikalia

 

pikto8: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«FK»

 

 

 

 

 

«PK»

 

 

 

 

 

 

 

pikto9: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

regal: nvarchar(10)

 

 

 

+

FK_JoinchemikaliaTosveta_chemikalia(int)

 

+

PK_hveta(nvarchar)

 

 

 

 

 

 

 

+

FK_JoinchemikaliaTosveta_sveta(nvarchar)

 

 

 

 

 

 

rezervacia: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

(chemikaliaID = chemikaliaID)

 

 

 

 

 

 

 

 

 

 

 

 

 

skrina: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+PK_chemikalia

+FK_JoinchemikaliaTosveta_sveta 0..*

 

 

 

 

 

 

 

 

 

 

vyradenie: nvarchar(5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+FK_JoinchemikaliaToeuh_chemikalia 0..*

 

vzorec: nvarchar(30)

1

 

 

 

 

 

(cislo = cislo)

 

 

 

 

 

 

 

 

 

 

zaradenie: nvarchar(50)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JoinchemikaliaToeuh

 

zdroj: nvarchar(100)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zosoba: nvarchar(45)

 

 

 

 

 

+PK_sveta

1

 

 

 

 

 

 

 

 

 

 

(chemikaliaID = chemikaliaID)

 

 

 

 

 

 

«column»

 

 

 

*PK

chemikaliaID: int

«FK»

 

 

 

 

 

 

 

 

 

 

 

 

FK

cislo: nvarchar(20)

 

*FK

vzorecobrID: int

 

 

 

 

 

 

sv eta

 

 

 

 

 

FK

chemikaliaID: int

 

*FK

kbuID: int

 

 

 

+FK_pouzitie_chemikalia

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«PK»

 

 

0..*

 

 

 

«column»

 

 

 

 

 

«FK»

 

 

 

 

 

 

 

*PK cislo: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

FK_JoinchemikaliaToeuh_chemikalia(int)

+

PK_chemikalia(int)

 

 

pouzitie

 

 

 

popis: nvarchar(max)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

FK_JoinchemikaliaToeuh_euh(nvarchar)

«FK»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+FK_JoinchemikaliaToeuh_euh

0..*

+

FK_chemikalia_vzorecobr(int)

 

«column»

 

 

 

«PK»

 

 

 

 

+

FK_chemikalia_kbu(int)

 

 

 

+

PK_sveta(nvarchar)

 

 

 

 

datum: nvarchar(10)

 

 

 

 

 

 

 

 

(cislo = cislo)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+PK_euh

1

 

 

 

 

 

meno: nvarchar(45)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mnozstvo: decimal(10,3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

euh

 

 

 

 

 

*PK

pouzitieID: int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FK

chemikaliaID: int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«column»

 

 

 

 

 

«PK»

 

 

 

 

 

 

 

 

 

 

 

*PK

cislo: nvarchar(20)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

PK_pouzitie(int)

 

 

 

 

 

 

 

 

 

 

 

 

popis: nvarchar(max)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«FK»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«PK»

 

 

 

 

 

 

+

FK_pouzitie_chemikalia(int)

 

 

 

 

 

 

 

 

 

 

+

PK_euh(nvarchar)

 

 

 

 

 

 

 

 

 

 

 

 

Fig. 4. Physical data model

After creating a physical data model, I was able to generate a SQL script and create a database using Microsoft SQL Server Management Studio.

112

3.4. Application

After database was created, I could start to work on a final phase of the development which is creating an application. I started with the design of user interface and then I added functions. The result of my work is shown in the Fig. 5.

Fig. 5. The main window of application (beta version)

Functions overview:

The main window of application shows the list of the chemicals with all necessary details such as Name, Formula, Weight (brutto, netto), Location (room), Molecular weight, date of last change and many more. There is a possibility to recalculate the amount of chemical using its density and volume. Then user can go to another card and see more details – such as order number, expiration date, price, etc. User can search chemical by chosen parameter. On the other card there is a menu for attaching files to the chemical (picture of formula, safety card), details of usage, safety information. In usage card, user can see who used the chemical, when it was used and the amount used. If the amount of chemical is equal to zero, the chemical is automatically marked as “to discard”. E xport menu is located on the right side. It is possible to select which rows and columns should be exported to a file. User can choose an export format and there is also

113

a button for generating a label for chemical together with available sizes (formats). Rows of the table might have different colors – based on attributes of the chemical (reserved, to order, to discard). The application (database) also stores a list of safety warnings which can be added to chemical. Double-click on each chemical shows a window with quick overview of safety information – warnings, safety signs.

Results

I started my diploma work with describing business process models using BPMN. Then using UML I created all necessary diagrams to support development. With creating a physical data model it was easy to generate a SQL script and create the database in chosen DBMS. The next step was to implement the application in chosen programming language, which is C#. The system documentation together with security policy and testing protocols will be elaborated, when the development and testing is complete.

The application is still being developed, but currently it is stable and functional. I am really looking forward to finish it and see how customers (employers of chemical laboratory) will use it. I really hope it will be helpful and makes everyday handling with chemicals much easier. Since this application is part of my diploma work, total cost for its using are equal to zero. This is a big advantage over similar products.

References

1.Evolutionary Software Process Model. – URL: http:// it.toolbox.com/ wiki/index.php/Evolutionary_Software_Process_Model (accessed: 27.02.2015).

2.OMG: Business process modeling notation specification. February 2006. – URL: http://www.omg.org/bpmn/Documents/OMG_ Final_ Adopted_ BPMN_ 1-0_Spec_06-02-01.pdf (accessed: 03.03.2015).

3.An XML Representation for Crew Procedures, Richard C. Simpson Final Report NASA Faculty Fellowship Program. – Johnson Space Center, 2004.

4.Process Modeling Notations and Workflow Patterns, paper by Stephen A. White of IBM Corporation, 2006.

5.OMG: Unified modeling languagetm (OMG UML), superstructure. May 2010. – URL: http://www.omg.org/spec/UML/ (accessed: 10.03.2015).

114

РАЗРАБОТКА И ВНЕДРЕНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ СБОРА ХИМИЧЕСКИХ ДАННЫХ В ЛАБОРАТОРИИ

Томаш ВАГОВИЧ

Словацкий технологический университет, факультет материаловедения и техники в г. Трнава, Словакия

(e-mail: vagovic.tomas@gmail.com)

Аннотация. Цель данной работы заключается в создании дипломной работы. Эта работа состоит из пяти глав. После краткого введения в первой и во второй главах описываются цели дипломного проекта. В следующей части рассказывается о методах, используемых для разработки информационной системы. Четвертая глава включает в себя процесс разработки программного обеспечения. Все результаты представлены в виде диаграмм, например, таких как BPMN-диаграмм, диаграмм прецедентов и, наконец, представлена физическая модель данных. В последней главе описаны результаты.

Ключевые слова: документальное сведение, химические вещества, информационная система, BPMN, UML, база данных, MS SQL, C #.

115

A FUZZY LOCAL GRID REFINEMENT METHOD

FOR SPARSE-GRID-BASED FUNCTION APPROXIMATIONS

Le Hoang Thanh

Anhalt University of Applied Sciences

Abstract. Grids are a mathematical tool to represent and interpolate functions. We give a quick overview over the full grid approximation based on [2, 3] which, however, suffers from the curse of dimensionality and thus cannot be used for high-dimensional functions. As a countermeasure, we introduce the spatially adaptive sparse grids invented by Pflüger [4] where the grid is not spread out equally over the function domain, but only refined at certain parts. We then show a modification of the local grid refinement method that extends to multiple grid points allowing us to incorporate external information via a ranking of the dimensions by their importance so that certain dimensions are preferred during the refinement process. As for the next steps, this modification is to be tested on different data sets and other modifications for sparse grids are to be researched.

Keywords: fuzzy logic, grid function, approximation, interpolation.

1. Basic Concept of Grid-Based Approximations

This section should give a quick overview on the construction of full grids and how they can be used to approximate d-dimensional functions. For the sake of simplicity, we only work with the interval [0, 1]d by scaling down all features to [0, 1].

For full grids, we first define a multi-index l = (l1, …, ld) where li determines the grid level, i.e. how fine the grid is in the ith dimension. A spe-

cific grid point is

then

characterized

with

l and

another

multi-index

j = (j1, …, jd) which specifies its position

 

 

x

l , j

= (xl , j

, xl

, j

,..., xl

 

, j

)

of the

grid point calculated with

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 1

2

 

2

 

d

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

=

ji

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l , j

i

 

2li

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The entirety of the grid points in a grid characterized by l = (l1, …,

ld)

are determined by the index set

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

l

= ( j ,..., j )

 

j {0,1,..., 2li } i {1,..., d}.

 

 

 

 

 

 

 

 

 

 

 

 

1

d

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

We then put a multi-dimensional hat function _(l1;:::;ld);(j1;:::;jd) over each grid point. These are obtained from one-dimensional hat functions _l;j which are defined as follows:

 

 

 

l

 

 

 

j −1

j + 1

 

 

 

 

 

 

2

 

x j

+ 1 for

x

 

,

 

 

x [0,1].

 

 

 

 

φl, j (x) =

 

 

 

 

 

2l

2l

 

 

 

 

 

 

 

 

 

 

 

else

 

 

 

 

 

0

 

 

 

 

 

 

 

 

116

Multi-dimensional hat functions are then calculated as follows:

d

f(l1 ,l2, ...,ld ),( j1 , j2, ..., jd ) ( x) = flt , jt ( xt ). t =1

Fig. 1 shows an example for a two-dimensional hat function.

Fig. 1. Hat function f(2,2),(2,2) [5]

The hat functions can then be used as a basis for a function space

Vl = span{fl , j } j Î J l }

of which a function fgrid ÎVl is calculated as a linear combination:

f grid (

x

) = a j × fl , j ( x) .

(1)

 

 

 

 

j J l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The coefficients α j are calculated using a linear equation system that

arises from minimizing the sum of squared errors im=1( f grid ( xi ) - yi )2 over a given data set {( x1 , y1 ), ( x2 , y2 ),..., ( xm , ym )} which we regard as a subset of a function f underlying the data and incorporating a regularization parameter that adjusts the function smoothness of fgrid [2]. In terms of machine learning, this calculation corresponds to the learning phase for the model function fgrid.

117

2. Spatially Adaptive Sparse Grids

The full grid approximation suffers from the curse of dimensionality, because the number of grid points scales with О(2 l 1 ) which is why this

method is not feasible for large grids in higher dimensions [2].

For this reason, we will now introduce a special type of sparse grid called spatially adaptive sparse grid that adapts to the training data by only placing grid points on certain parts of the domain [0, 1]d. This grid type and its properties are described in detail by Pflüg er in [4].

The starting point for a spatially adaptive sparse grid is a grid consisting of one grid point and its respective hat function with l = j = 1, but other grids with a higher number of grid points can also be used as a starting point.

The grid is then refined by selecting a grid point that has not been chosen for refinement yet and creating 2d new grid points with i {1,…, d} and

l ′ = (l1 ,..., li +1,...,ld ),

j= ( j1 ,..., 2 × ji ±1,..., jd ).

Fig. 2 shows a spatially adaptive sparse grid after two refinements. The blue grid points were created during the second refinement.

Fig. 2. A spatially adaptive sparse grid after two refinements [5]

118

The number of new grid points can be smaller than 2d if a new grid point is identical to an existing grid point. Note that the corresponding hat functions’ supports are not disjoint to one another.

There are different ways to select the grid point for local refinement. A simple approach that delivers «good results» according to [4, p. 83] and which we will use here is to select the grid point with the highest absolute value of its corresponding coefficient α j from equation (1) that was calcu-

lated as the solution of the linear equation system.

After each local refinement, the new grid coefficients have to be calculated again via linear equation system where the solution of the last iteration can be used as a starting solution.

3. Fuzzy Local Refinement

The main advantage of the proposed refinement criterion (where the grid point with highest coefficient is chosen for local refinement) is that it is runtimeefficient and easy to implement. However, a potential problem of this approach is that this method can get stuck, i.e. the refinement is always applied on a small part of the domain without creating grid points at other possibly relevant parts.

For this reason we want to «fuzzify» the local refinement process so that the new grid points are spread out over the existing points. We introduce a fuzzyness parameter p that determines how the 2d new grid points in a single refinement step should be distributed over the existing n grid points.

In the case p = 1, we want the refinement to be identical to the unmodified local refinement, i.e. all 2d new grid points should be created around the grid point with the highest coefficient. If p = 0, the 2d grid points should be evenly distributed over the existing points. In all other cases p (0, 1), the grid point with highest coefficient α j from equation (1) gets

the most grid points, but not all 2d points so that other grid points with high coefficient are partially refined as well.

An example for a rough heuristic that fulfills the conditions above is the following recursive formula that assigns the rounded up number nk of new grid points to the kth place (where kth place stands for the grid point corresponding to the kth highest coefficient):

 

rk −1

 

1 − р

nk

 

 

 

 

 

n − (k −1)

+ р ,

119

rk −1 equals the number of points that remain after the assignment of the new grid points (2d at maximum) to the k – 1 more highly placed grid points:

 

2d

 

for k =1,

rk −1

= r

n

else.

 

k − 2

k −1

 

Note that this is just an approximate formula for the distribution of new grid points, i.e. the sum of all nk is not always equal to 2d. The consequence of this modification is that new grid points are not created in every dimension anymore. There are different ways to deal with this problem, e.g. by randomly selecting the dimensions to be refined or by using correlation or external knowledge about the problem at hand to rank the dimensions by their importance. This allows us to choose which dimensions should be preferred during the refinement so that the grid becomes more detailed in certain dimensions than others.

Figure 3 shows an example for a three-dimensional sparse grid that was built using the modified refinement method with a random dimension selection.

Fig. 3. Three-dimensional sparse grid created with randomized refinement [5]

4. Next steps

As an outlook for the near future, the modification is to be tested on different data sets. We will use the UCI Machine Learning Repository [1] as the data source and document the performance in comparison to normal

120