МАК’13
Семинар по интервальным
вычислениям на Java
Д. Ю. Надёжин
С. И. Жилин
ООО “Оракл Девелопмент Спб”
Санкт-Петербург, Россия
[email protected]
Алтайский Государственный Университет
Барнаул, Россия
[email protected]
План
Введение в интервальные вычисления
 Проект стандарта P1788: основные идеи
 Установка и настройка ПО
 Простейшая программа (создание проекта)
 Интервалы: виды, контексты, операции
 Вектора и матрицы
 ИСЛАУ
 Разное

Барнаул, 28 Июня 2013
МАК 2013
2 / 60
Проект стандарта P1788





Уровни спецификации: 1, 2, 3, 4
Стили: теоретико-множественный, Каухера
Классические интервалы – общие для всех стилей
Декоры
Интервальный тип (уровень 2)
Барнаул, 28 Июня 2013
МАК 2013
3 / 60
Уровни спецификации




1: Уровень математической модели
2: Уровень интервальных типов данных
3: Уровень представлений
4: Уровень цепочек битов
Барнаул, 28 Июня 2013
МАК 2013
4 / 60
Классические интервалы

[a,b], a <= b
Барнаул, 28 Июня 2013
МАК 2013
5 / 60
Теоретико-множественный стиль





[a,b], a <= b
∅
[-∞,b]
[a,+∞]
[-∞,+∞]
Барнаул, 28 Июня 2013
МАК 2013
6 / 60
Стиль Каухера


[a,b], a <= b
[a,b], a > b
Барнаул, 28 Июня 2013
МАК 2013
7 / 60
Декоры
f(x) Dom(f)
 Com: x - непусто, x ⊆ Dom(f) , f(x) непрерывна в каждой точке
интервала x ∊ x, результат – ограниченный интервал
 Dac: x - непусто, x ⊆ Dom(f) , ограничение f(x) на x непрерывно
 Def: x - непусто, x ⊆ Dom(f)
 Trv: всегда true
 Ill: не интервал NaI, формально Dom(f) пуст
Барнаул, 28 Июня 2013
МАК 2013
8 / 60
Декоры
f(x) = 1/x Dom(f)=[-∞,0) ∪ (0,+∞]






f([1,2]_com) = [½,1]_com
f([1,+∞]_com) = [0,1]_dac
sign([0,½]_com)=[0,1]_def
f([0,1]_com) = [1,+∞]_trv
f([0,0]_com) = [empty]_trv
nums2interval(2,1) = [empty]_ill
Барнаул, 28 Июня 2013
МАК 2013
9 / 60
Интервальный тип (уровень 2)


Конечное подможество мноожества математических
интервалов
Функция hull – проекция из всех математических интервалов в
указанное подмножество
Барнаул, 28 Июня 2013
МАК 2013
10 / 60
Установка и настройка ПО
Java 7.0u25 и NetBeans 7.3
 Ant или Maven
 Готовый Maven - репозиторий ~/.m2
 После окончания семинара можно поправить
<offline>false</offline>
в файле ~/.m2/settings.xml
 Не обязательно – исходные тексты Jinterval
~/NetBeansProjects/net.java.jinterval~svn

Барнаул, 28 Июня 2013
МАК 2013
11 / 60
Создание проекта

File|New Project...
Choose Project|Maven|Java Application|Next>
Project name: tutor-rational
GroupId: ru.asu
Package: ru.asu.tutor.rational
Enter

Open ru.asu.tutor.rational.App





Барнаул, 28 Июня 2013
МАК 2013
12 / 60
NetBeans не знает про Rational
package ru.asu.tutor.rational;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
Rational[] rats = {
Rational.zero()
};
System.out.println( "Hello World!" );
}
}
Барнаул, 28 Июня 2013
МАК 2013
13 / 60
Добавление зависимостей
Выбираем в Projects узел
tutor-rational|Dependencies
 Щелчок правой кнопкой мыши
 Add dependency
 Query: rational
 Unfold: net.java.jinterval:jinterval-rational-java
 Choose: 0.1-SNAPSHOT [ jar ] local
 В окне редактирования правая кнопка мыши FixImport

Барнаул, 28 Июня 2013
МАК 2013
14 / 60
Импорт вставлен
package ru.asu.tutor.rational;
import net.java.jinterval.rational.Rational;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
Rational[] rats = {
Rational.zero()
};
}
}
Барнаул, 28 Июня 2013
МАК 2013
15 / 60
Способы создания Rational
package ru.asu.tutor.rational;
import net.java.jinterval.rational.Rational;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
Rational[] rats = {
Rational.zero(),
Rational.valueOf(2),
Rational.valueOf(0.1),
Rational.valueOf(1, 10)
};
for (Rational r: rats) {
System.out.println(r);
}
}
}
Барнаул, 28 Июня 2013
МАК 2013
16 / 60
Способы вывода Rational
MathContext mc20f = new MathContext(20, RoundingMode.FLOOR);
MathContext mc20c = new MathContext(20, RoundingMode.CEILING);
for (Rational r: rats) {
System.out.println(r +
" " + r.doubleValue() +
" [" + r.bigDecimalValue(mc20f) +
"," + r.bigDecimalValue(mc20c) +
"]");
}
0.0 0.0 [0,0]
+0x1p1 2.0 [2,2]
+0xccccccccccccdp-55 0.1 [0.10000000000000000555,0.10000000000000000556]
+0x1/0x5*2^-1 0.1 [0.1,0.1]
Барнаул, 28 Июня 2013
МАК 2013
17 / 60
Точные операции над Rational
ExtendedRational diff = ExtendedRationalOps.subtract(rats[2], rats[3]);
System.out.println("diff " + diff
+ " " + diff.doubleValue()
+ " [" + diff.bigDecimalValue(mc20f)
+ "," + diff.bigDecimalValue(mc20c)
+ "]");
diff +0x1/0x5*2^-55 5.551115123125783E-18 [5.5511151231257827021E-18,5.5511151231257827022E-18]
Барнаул, 28 Июня 2013
МАК 2013
18 / 60
Javadoc нет, взглянем на исходники

File|Open Project...

~/NetBeansProject/net.java.jinterval~svn/trunk/jinterval
В Projects раскрыть jinterval|Modules
 Получили список подпроектов jinterval
 Двойной шелчок на jinterval-rational-java
 Раскрыть jinterval-rational-java|Source packages
 Получили список пакетов
 Раскрыть net.java.jinterval.rational
 Откроем ExtendedRationalContext

Барнаул, 28 Июня 2013
МАК 2013
19 / 60
Rump Example in Rationals


File|Open Project...
~/NetBeansProjects/RumpExample
Барнаул, 28 Июня 2013
МАК 2013
20 / 60
JInterval Library: Principles, Development, and Perspectives
WHY INTERVAL COMPUTATIONS IN JVM?
Барнаул, 28 Июня 2013
МАК 2013
21 / 60
Java Is Popular

TIOBE Programming Community Index for September 2012
– Calculated by counting hits of the most popular search engines
Барнаул, 28 Июня 2013
МАК 2013
22 / 60
Java Is Popular

RedMonk’s language ranking for September 2012
Popularity Rank on StackOverflow.com (by # of tags)
Popularity Rank on Github.com (by # of projects)
Барнаул, 28 Июня 2013
МАК 2013
23 / 60
Java Is Popular

Bookscan's reports on the top 3,000 titles sold
Барнаул, 28 Июня 2013
МАК 2013
24 / 60
Gap between Interval and Applied Software

Java is an attractive and widely adopted technology for applied
software development
–
–
–
–
–



Cross-platform portability of applications
General purpose object-oriented language
Almost any language can generate Java bytecodes
Advanced tools for distributed systems development
Huge amount of applied libraries
Interval analysis and interval computations have proved to be useful
in numerous real-world applications
Interval software in Java is of fragmentary character
Creation of systematic full-featured high-level interval library for
Java brings interval tools closer to developers of applied software
Барнаул, 28 Июня 2013
МАК 2013
25 / 60
Interval Computations in Java

Is Java suitable for scientific computing?
Pro:
Con:
• Portability of Java Virtual Machine (JVM)
• Safe memory management
(no memory leaks and pointer errors)
• Network-aware environment
• Parallel and distributed computing
(threads, RMI)
• Strict model of security
• Standard API for GUI, graphics, DBMS, …
• Widely adopted
– Embedded systems, browsers, …
– Development, teaching, …
• Low performance
– Virtual machine
– Interpretation is slow
– Overhead cost of safe memory management
• Language restrictions
–
–
–
–
No primitive structure type
No operator overloading
No traditional multidimesional arrays
No full compliance with IEEE 754*
• Relatively small number of scientific libraries
on Java
• Scientific computing traditions:
Fortran, С/С++
*Kahan W., Darcy J.D. How Java’s Floating-Point Hurts Everyone Everywhere//ACM 1998 Workshop on Java for
High–Performance Network Computing, Stanford University, March 1998, http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf
Барнаул, 28 Июня 2013
МАК 2013
26 / 60
Interval Java Libraries

IA_math, 1997
–
–
–
–

Classic IA, classic interval elementary functions
Timothy J. Hickey,
Brandeis University, Boston, USA
interval.sourceforge.net/interval/
Java-XSC, 1999
– Classic IA, rectangular complex IA, classic interval elementary functions,
classic and complex interval vectors and matrices
– Benjamin R.C. Bedregal, Jose E.M. Dutra
– Universidade Federal do Rio Grande do Norte, Natal, Brazil
– www.dimap.ufrn.br/~java-xsc/jxsc2007.html
Барнаул, 28 Июня 2013
МАК 2013
27 / 60
JInterval Library: Principles, Development, and Perspectives
JINTERVAL EVOLUTION
Барнаул, 28 Июня 2013
МАК 2013
28 / 60
Stages of JInterval Evolution

Sep 2008
JInterval is started as undergraduate student project
”Childhood” at Altai State University (Barnaul, Russia)
http://code.google.com/p/javaintervalmathasu/

Aug 2009
“Boyhood”
Dmitry Nadezhin (Sun Labs, Zelenograd, Russia)
joins the project
http://kenai.com/projects/jinterval

Jan 2012
“Youth”
Developing reference implementation and
test suite for P1788 becomes Priority #1
http://java.net/projects/jinterval or
http://jinterval.java.net
Барнаул, 28 Июня 2013
МАК 2013
29 / 60
JInterval (Boyhood): A Priori Requirements
The library
1. Must be clear and easy to use
2. Should provide flexibility in the choice of interval algebra for
computations
4. Should provide flexibility in choosing precision of interval
boundaries and associated rounding policies
Priority
3. Should provide flexibility to extend its functionality
5. Must be portable
6. Should provide high performance
7. Must be open source
Барнаул, 28 Июня 2013
МАК 2013
30 / 60
JInterval (Boyhood): Architecture

“Fast” branch:
– Interval bounds: double, nearest rounding
– IA: set-based, Kaucher, complex rectangular, complex circular, complex ring,
complex polar
– Interval elementary functions, vectors, matrices
– ILS: Gauss, Gauss-Seidel, subdifferential Newton, NonNeg, Shaidurov

“Rational bounds” branch:
– Interval bounds: smart rational/double, arbitrary precision, rounding policies,
contexts
– IA: set-based
– Interval elementary functions, vectors, matrices

Generic interfaces on top of branches
Барнаул, 28 Июня 2013
МАК 2013
31 / 60
JInterval (Boyhood): Type Hierarchy
Interval
ClassicRealInterval
ComplexInterval
RealInterval
DoubleInterval
ComplexIntervalCircle
RationalInterval
ComplexIntervalRectangle
ComplexIntervalPolar
ComplexIntervalRing
Барнаул, 28 Июня 2013
МАК 2013
32 / 60
JInterval (Boyhood): Lessons Learned
Problem
Possible Solution
Java syntax is not expressive enough Developing Scala API for a new
for calculations
JInterval implementation
Java
Scala
r = x.add(y.multiply(z));
r = x + y*z
JInterval is not compliant with the
project of interval standard IEEE
P1788
Redesign the library according to
IEEE P1788
Low performance
Using optional plugins for native code
of high precision arithmetic and
interval linear algebra algorithms
through JNA
Барнаул, 28 Июня 2013
МАК 2013
33 / 60
JInterval Library: Principles, Development, and Perspectives
ARCHITECTURE
Барнаул, 28 Июня 2013
МАК 2013
34 / 60
Class Diagram (package net.java.jinterval.interval)
Барнаул, 28 Июня 2013
МАК 2013
35 / 60
Key-role Interfaces


Types graph follows the flavor
structure of P1788
Java interfaces:
– Interval
Common methods for all flavors
– SetInterval
Extends Interval with methods for
flavor ‘Set Interval’
– KaucherInterval
Extends Interval with methods for
flavor ‘Kaucher interval’
– ClassicInterval
Extends all flavors, because can be
mapped to related flavor intervals
Барнаул, 28 Июня 2013
МАК 2013
36 / 60
Interface Interval: common methods of all flavors


Interval defines common
methods of all interval flavors
Defines numerical and boolean
operations only
Барнаул, 28 Июня 2013
МАК 2013
37 / 60
IntervalContext: interval operations interface

Generic interface
IntervalContext
defines signature for
interval-valued methods
Барнаул, 28 Июня 2013
МАК 2013
38 / 60
KaucherIntervalContext: interval flavor interface

KaucherIntervalContext
extends IntervalContext
and binds type variable I
to Kaucher interval flavor
Барнаул, 28 Июня 2013
МАК 2013
39 / 60
Implementation of interval contexts

There may be several implementations for flavor contexts
– SetIntervalContextInfSupBase and SetIntervalContextInfSup
are two tightest implementations of set interval operations and functions
(P1788 Level 2, InfSup_F).
Барнаул, 28 Июня 2013
МАК 2013
40 / 60
Factory classes for interval contexts

Factory classes create particular instances of interval contexts
– SetIntervalContexts
– KaucherIntervalContexts
Барнаул, 28 Июня 2013
МАК 2013
41 / 60
Exact context


Static method getExact() creates the exact context
All operations in the exact context return intervals with rational
bounds – P1788 Level 1 results or throw IrrationalException
Барнаул, 28 Июня 2013
МАК 2013
42 / 60
InfSup_F contexts

Static method getInfSup(BinaryValueSet numberFormat) creates the
InfsSup_F contexts with binary floating-point interval representations
(BINARY32, BINARY64, BINARY128, …, BINARY1024)
Барнаул, 28 Июня 2013
МАК 2013
43 / 60
Core Module Dependencies Graph
JInterval packages
External dependencies
jinterval
jinterval-rational-java
boehm-creals
Aggregator of JInterval
Rational numbers
Boehm’s constructive reals
jinterval-interval-java
fortress-rounding
Intervals, IAs, interval elem. functions
Rounding class from Fortress
jinterval-ils
commons-math3
Interval linear equation system solver
Apache Commons Math 3.0
jinterval-ir
lpsolve
Interval regression solver
Java port of lp_solve
mpfr-adapter
jna
JNA adapter for native GNU MPFR
Java access to native libraries
large-test-java
commons-compress
JInterval tests
Apache Commons Compress 1.4
Барнаул, 28 Июня 2013
МАК 2013
44 / 60
JInterval Library: Principles, Development, and Perspectives
FUNCTIONALITY AND EXAMPLES
Барнаул, 28 Июня 2013
МАК 2013
45 / 60
Functionality of JInterval (Youth)

Rational arithmetic
–
–

–
–

ILS Solvers
•
Rational + {-∞ , +∞}
•
–
Set-based
Kaucher
According to P1788
Барнаул, 28 Июня 2013
МАК 2013
Hansen-Bliek-Rohn-NingKearfott enclosure +
Gauss-Seidel
Subdifferential Newton
Interval linear regression solver
•
•
•
•
Elementary Functions
–
Rational, extended rational
Interval
Solvers
–
Interval Arithmetic
–
–

Dense Vectors and Matrices
Extended Rational arithmetic
–

flexible inner representation
(rational, binary32, binary64,
binary128,…)
exact and approximate
operations

Data consistency check
Outlier detection
Object status detection
Interval prediction
46 / 60
Example 1.1. Contexts and Simple Expressions
,
,
,
.
x+y = [3.0,5.0]
x/y = [0.333251953125,1.0]
Барнаул, 28 Июня 2013
МАК 2013
47 / 60
Example 1.2. Contexts and Simple Expressions
,
,
,
.
x+y = [3.0,5.0]
x/y = [0.3333333134651184,1.0]
Барнаул, 28 Июня 2013
МАК 2013
48 / 60
Example 1.3. Contexts and Simple Expressions
,
,
,
.
x+y = [3.0,5.0]
x/y = [+0x15555555555555555555555555555p-114,+0x1p0]
([0.3333333333333333,1.0])
Барнаул, 28 Июня 2013
МАК 2013
49 / 60
Example 1.4. Contexts and Simple Expressions
,
,
,
.
x+y = [3.0,5.0]
x/y = [+0x1/0x3*2^0,+0x1p0]([0.3333333333333333,1.0])
Барнаул, 28 Июня 2013
МАК 2013
50 / 60
Example 2.1. Decorations
sqrt([0.0,1.0]) = [0.0,1.0] COM
sqrt([-1.0,1.0]) = [0.0,1.0] CON
sqrt([-2.0,-1.0]) = [EMPTY] NDF
sqrt([EMPTY]) = [EMPTY] SAF
Барнаул, 28 Июня 2013
МАК 2013
51 / 60
Example 2.2. Decorations
1/[0.0,0.0] = [EMPTY] NDF
1/[0.0,1.0] = [1.0,Infinity] CON
1/[4.9E-324,1.0] = [1.0,Infinity] SAF
x = [0.0,Infinity] SAF
Барнаул, 28 Июня 2013
y = 1/x = [0.0,Infinity] CON
МАК 2013
52 / 60
Example 3. (Rump)
Compute
Барнаул, 28 Июня 2013
for
,
МАК 2013
and
53 / 60
Example 3. (Rump) using ExtendedRational
Барнаул, 28 Июня 2013
МАК 2013
54 / 60
Example 3. (Rump) using ExtendedRational
=== BINARY16 ===
r=NaN
=== BINARY32 ===
r=1.172603964805603 +0x9617e3p-23
=== BINARY64 ===
r=-1.1805916207174113E21 -0x1p70
=== BINARY128 ===
r=1.1726039400531787 +0x12c2fc595b06beb74a518f018c093p-112
=== BINARY256 ===
r=-0.8273960599468214
-0x69e81d3527ca0a45ad7387f39fb6bbbee6d0899f57af4ec62443141c771p-235
=== Exact ===
r=-0.8273960599468214 -0xd5ef/0x1029*2^-4
Барнаул, 28 Июня 2013
МАК 2013
55 / 60
Example 3. (Rump) using SetInterval
Барнаул, 28 Июня 2013
МАК 2013
56 / 60
Example 3. (Rump) using SetInterval
===
i =
===
i =
===
i =
===
i =
===
i =
===
i =
BINARY16 ===
[-Infinity,Infinity]
BINARY32 ===
[-6.972078301255262E30,6.972078905718172E30]
BINARY64 ===
[-8.264141345021879E21,5.902958103587058E21]
BINARY128 ===
[-0xffb4f40e9a93e50522d6b9c3f9dp-98,+0x12c2fc595b06beb74a518f018c093p-112]
([-1022.8273960599469,1.1726039400531787])
BINARY256 ===
[-0x69e81d3527ca0a45ad7387f39fb6bbbee6d0899f57af4ec62443141c771p-235,
-0xd3d03a6a4f94148b5ae70fe73f6d777dcda1133eaf5e9d8c48862838ee1p-236]
([-0.8273960599468214,-0.8273960599468213])
Exact ===
[-0xd5ef/0x1029*2^-4,-0xd5ef/0x1029*2^-4]
([-0.8273960599468214,-0.8273960599468213])
Барнаул, 28 Июня 2013
МАК 2013
57 / 60
Example 4. HBRNK enclosure
Барнаул, 28 Июня 2013
МАК 2013
58 / 60
Example 4. HBRNK enclosure using MatlabOps
Барнаул, 28 Июня 2013
МАК 2013
59 / 60
Example 5. Gauss-Seidel Solver
A:
/
| [2.0,4.0] [-2.0,0.0] |
| [-1.0,0.0] [2.0,4.0] |
\
b:
/
| [1.0,2.0] |
| [-2.0,2.0] |
\
x:
/
| [-1.0,4.0] |
| [-1.5,3.0] |
\
Барнаул, 28 Июня 2013
МАК 2013
60 / 60
JInterval Library: Principles, Development, and Perspectives
APPLICATIONS
Барнаул, 28 Июня 2013
МАК 2013
61 / 60
P1788 Test framework
TestSet3.dat
Interval
Libraries
Adapters
Boost
testBoost
CXSC
testCXSC
Filib
testFilib
MPFI
testMPFI
PROFIL
testPROFIL
<NONAME>
test<NONAME>
Барнаул, 28 Июня 2013
TestSet2.dat
TestSet1.dat
Launcher
МАК 2013
Report
62 / 60
P1788 Test framework
Interval
Libraries
Adapters
Boost
testBoost
CXSC
testCXSC
Filib
testFilib
MPFI
testMPFI
PROFIL
testPROFIL
<NONAME>
test<NONAME>
Барнаул, 28 Июня 2013
TestSet3.dat
TestSet2.dat
Launcher
Report
TestSet1.dat
МАК 2013
63 / 60
P1788 Test framework
Interval
Libraries
Adapters
Boost
testBoost
CXSC
testCXSC
Filib
testFilib
MPFI
testMPFI
PROFIL
testPROFIL
TestSet2.dat
<NONAME>
test<NONAME>
TestSet1.dat
Барнаул, 28 Июня 2013
TestSet3.dat
Report
Launcher
МАК 2013
64 / 60
P1788 Test framework. Sample Run
testDemo.dat
* div
[1,2] [0,1]
[1,2] [0,0]
* sqrt
[-Infinity,0]
[-Infinity,Infinity]
* pown
[0,0] 0
Report
== Filib 3.0.2
div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Ok
div [1.0,2.0] [0.0,0.0] = [EMPTY] : [1.7976931348623157E308,Infinity] NOT TIGHT!
sqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Ok
sqrt [-Infinity,Infinity] = [0.0,Infinity] : [-4.9E-324,Infinity] NOT TIGHT!
pown [0.0,0.0] 0 = [1.0,1.0] : [1.0,1.0] Ok
==
== Boost 1.48.0
div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Ok
div [1.0,2.0] [0.0,0.0] = [EMPTY] : [EMPTY] Ok
sqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Ok
sqrt [-Infinity,Infinity] = [0.0,Infinity] : [0.0,Infinity] Ok
pown [0.0,0.0] 0 = [1.0,1.0] : [EMPTY] CONTAINMENT FAILURE!!!
==
== MPFI 1.5.1
div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Ok
div [1.0,2.0] [0.0,0.0] = [EMPTY] : [-Infinity,Infinity] NOT TIGHT!
sqrt [-Infinity,0.0] = [0.0,0.0] : [EMPTY] CONTAINMENT FAILURE!!!
sqrt [-Infinity,Infinity] = [0.0,Infinity] : [EMPTY] CONTAINMENT FAILURE!!!
Library has no Operation "pown" in line 7 : * pown
==
Барнаул, 28 Июня 2013
МАК 2013
65 / 60
KNIME

KNIME— open source data mining platform
Барнаул, 28 Июня 2013
МАК 2013
66 / 60
KNIME Interval Tools

KNIME— open source data mining platform
Барнаул, 28 Июня 2013
МАК 2013
67 / 60
KNIME Nodes for Interval Regression
Interval Regression
( Learner)
Interval Regression
( Predictor)
Builds linear interval
regression model Y = f(X, A)
Calculates interval prediction Y*
for X* using model Y = F(X, A)
IR Outlier Detector
IR Consistency
Detects outliers (observations
with underestimated error bound)
Checks consistency of input data
and sets flow control variable
for IF switch
Барнаул, 28 Июня 2013
МАК 2013
68 / 60
KNIME Nodes for ILS Solving

In previous version of “Interval Tools”:
ILS Solver
Computes inner/outer estimate of united/tolerable
solution set and visualizes* 2D/3D united solution set
*Kraemer W. Computing and visualizing solutions sets of interval linear systems, Serdica J. Computing 1(4) 2007, 455-468.
Барнаул, 28 Июня 2013
МАК 2013
69 / 60
KNIME Nodes for ILS Solving
Under construction
ILS Solver
ILS United Solution Set View
Computes outer and inner estimates
for united solution set of ILS Ax=b
Visualizes 2D or 3D
united solution set
Methods for united solution set
estimation:
– Outer:
Hansen-Bliek-Rohn-NingKearfott enclosure + GaussSeidel
Method:
– I. A. Sharaya’s
algorithm for
visualization of AEsolution sets
– Inner:
Subdifferential Newton
Барнаул, 28 Июня 2013
МАК 2013
70 / 60
KNIME Workflow for Image Recognition
Get A1, b
Solve A1*x=b
Metrics values
Read reference
images
Join
Convert to matrices
Join
Build interval
matrices
Get A2, b
Solve A2*x=b
Join
Calc metrics
Read image
to recognize
Convert to matrices
Solve non-interval ILS
Metrics histogram
Prolubnikov A.V., Silitskiy S.A. On solving the problem of numeric matrices recognition using estimates of solution sets of interval
systems of equations // Comp. Math. Proceedings of XIV Baikal International School-Seminar “Methods of optimization and its
applications” Irkutsk-Baikal, July 2-8 июля 2008. Vol. 3. – Irkutsk: ISEM SB RAS, 2008. – pp. 152-157. (in Russian)
Барнаул, 28 Июня 2013
МАК 2013
71 / 60
KNIME Workflow for Image Recognition
Get A1, b
Solve A1*x=b
Metrics values
Read reference
images
Join
Convert to matrices
Join
Build interval
matrices
Get A2, b
Solve A2*x=b
Join
Calc metrics
Read image
to recognize
Convert to matrices
Solve non-interval ILS
Metrics histogram
Prolubnikov A.V., Silitskiy S.A. On solving the problem of numeric matrices recognition using estimates of solution sets of interval
systems of equations // Comp. Math. Proceedings of XIV Baikal International School-Seminar “Methods of optimization and its
applications” Irkutsk-Baikal, July 2-8 июля 2008. Vol. 3. – Irkutsk: ISEM SB RAS, 2008. – pp. 152-157. (in Russian)
Барнаул, 28 Июня 2013
МАК 2013
72 / 60
Mobile Application “Affiche”

Modeling positional
uncertainties for
GPS+GSM navigation
using circular complex
arithmetic
Барнаул, 28 Июня 2013
МАК 2013
73 / 60
JInterval Library: Principles, Development, and Perspectives
PERSPECTIVES
Барнаул, 28 Июня 2013
МАК 2013
74 / 60
Future Directions
Holding P1788 compliance of JInterval
 Developing optional plugins for platform-dependent effective
implementations of inner layers through JNI

– MPFR for fast multiple precision floating-point arithmetic
– BLAS for fast linear algebra operations

Developing API for access to JInterval from other programming
languages
– Scala
– …

High-level functionality replenishment
Барнаул, 28 Июня 2013
МАК 2013
75 / 60
High-Level Functionality Replenishment
Enhancing MatlabOps
 ILS tolerable solution set estimators
 ILS AE-solution set visualization (I. Sharaya)
 Global Optimization Solver (N. Panov – S. Shary)

–
–
–
–

Randomized Branch & Bound
Interval simulating annealing
Interval Genetic algorithm
Multi-method algorithm
ODE Solver (D. Nadezhin)
Барнаул, 28 Июня 2013
МАК 2013
76 / 60
How to Get and Contribute to JInterval?
java.net/projects/jinterval
Source codes (SVN)
JavaDoc
Wiki
Tutorial
Developers’ forum
Mail lists
Барнаул, 28 Июня 2013
МАК 2013
77 / 60
Acknowledgements
Maksim V. Danilov
 Kirill S. Dronov
 Walter Krämer
 Nikita V. Panov
 Gregor Paw
 Anton E. Sartakov
 Andrey S. Samoilov
 Sergey P. Shary
 Irina A. Sharaya
 Egor N. Tepikin
 Leo N. Tolstoy
 IEEE Interval Standard Working Group – P1788

Барнаул, 28 Июня 2013
МАК 2013
78 / 60
Descargar

Основы параллельных вычислений