Constraint Logical Programming

Größe: px
Ab Seite anzeigen:

Download "Constraint Logical Programming"

Transkript

1 Constraint Logical Programming Betreuer: Thomas Ströder Proseminar: Fortgeschrittene Programmierkonzepte in Java, Haskell und Prolog Rene Niewianda, Martin Breuer 15. Juni Einleitung: Das Ziel dieses Vortrags ist, grundlegende Strukturen der Constraint Programmierung am Beispiel der Constraint-Theorie für finite Domains kennen zu lernen. Dabei betrachten wir die Auswertung der Constraints und vergleichen Programmieraufwand sowie die Laufzeit von normalen, uns bekannten Logikprogrammen und Logikprogrammen mit Constraints unter Verwendung der Prolog Implementierung SWI-Prolog. Inhaltlich orientieren wir uns an den Vorlesungsnotizen der Vorlesung Logikprogrammierung [Gie13]. 1.1 Was ist ein Constraint? Ein Constraint ist eine Einschränkung, Bedingung oder Relation zwischen Termen. Diese Terme sind einfache logische Formeln, z. B. X #= Y+1 oder {X*X=Y}, wobei das # und die geschweiften Klammern der Notation in Prolog entsprechen. Wie genau diese Ausdrücke ausgewertet werden bzw. wann sie wahr sein sollen, wird in einer so genannten Constraint-Theorie festgelegt. 1.2 Constraint-Theorie Eine Constraint-Theorie ist eine Erweiterung der in einem Logikprogramm vorhandenen Prädikate. Würde man eine leere Constraint-Theorie verwenden, so würde das Programm einem normalen, uns bekannten Logikprogramm entsprechen. In Prolog gibt es mehrere Constraint-Theorien, u. a. eine für reelle Zahlen ( CLPR ) und eine für ganze Zahlen ( CLP(FD) ), wobei CLP für Constraint Logical Programming, R für Real und FD für Finite Domain steht. In der Constraint-Theorie CLPR werden reelle Zahlen durch Fließkommazahlen repräsentiert. Eine genaue Darstellung aller reeller Zahlen ist folglich nicht möglich. Diese Erweiterungen sind als Module in Prolog verfügbar. Sie lassen sich einfach über :-use module(library(clpr)). 1

2 oder :- use module(library(clpfd)). in ein Logikprogramm einbinden. Bei den hier aufgeführten Beispielen sei die jeweilige Constraint-Theorie stets konsultiert. Weitere Beispiele für Constraints sind: CLP(FD) CLPR X #= Y+1 {X = Y + 1} X #>= Y*10 {X >= Y*10} X #\= Y {X =\= Y} X*X #\= Y + 1 {X*X =\= Y+1} 2 Die Constraint-Theorie CLP(FD) 2.1 Die Auswertung mit Finite Domains in SWI-Prolog Bei einem Logikprogramm mit Constraints, werden die Relationen zwischen den Variablen oder Termen gesammelt und vereinfacht. Die gesammelten Constraints bzw. Relationen werden daraufhin durch den Constraint-Solver ausgewertet. Wir betrachten nun anhand eines Beispiels, wie der Constraint-Solver eine Konjunktion von Constraints auswertet, wobei das Sammeln der Constraints in diesem Beispiel trivial ist (ein komplexeres Beispiel zum Sammeln der Constraints ist in 3.3 zu finden):? X1 #> X2, X2 #> 5, X1 #< 8. Für jede Variable (X 1,..., X n ) der Constraints werden Domains (D 1,..., D n ), wobei n die Anzahl der Variablen der Constraints ist, angelegt, die zuerst alle auf Z gesetzt werden. Normale Prädikate werden hierbei insofern umgeschrieben, dass ihre Variablen nicht, wie bei der normalen Logikprogrammierung, direkt unifiziert, sondern durch Constraints ersetzt werden. Vereinfachend gesagt wird für eine Variable eines normalen Prädikats eine Domain angelegt. Wir durchlaufen die Constraints solange, bis sich die Domains nicht mehr ändern, wobei wir die Domains an die Bedingungen anpassen: Zuerst setzen wir die Domains D 1 = Z und D 2 = Z. Wenn wir nun den ersten Constraint X1 #> X2 betrachten, fällt auf, dass die Domains nicht verändert werden müssen, da wir nur den ersten Constraint isoliert betrachten. Betrachten wir hingegen den zweiten Constraint, so ändern sich die Domains auf D 1 = Z und D 2 = {6, 7,.., }. Beim dritten Constraint X1 #< 8 werden wiederum die Domains eingeschränkt: D 1 = {,.., 7} und D 2 = {6, 7,.., }. Nun beginnen wir bei den Constraints von vorne und prüfen, ob die Domains verändert werden müssen. Wir durchlaufen die Constraints mehrmals, um die Zusammenhänge zwischen den Variablen zu erfassen. Mit dem ersten Constraint X1 #> X2 folgt nun: D 1 = {7} und D 2 = {6}. Falls keine Änderungen beim wiederholten isolierten Betrachten der einzelnen Constraints stattfinden und alle Domains nicht leer sind, nennt 2

3 man die Konjunktion der Constraints pfadkonsistent. Als letztes wird also die Pfadkonsistenz geprüft und somit folgt (da die Domains nicht leer sind), dass die Lösungen der Anfrage X1 = 7 und X2 = 6 sind.? X1 #> X2, X2 #> 5, X1 #< 8. X1 = 7, X2 = 6. Falls die Auswertung leere Domains als Ergebnis haben sollte, so wird die Anfrage mit false. beantwortet. Als Notation für unendlich große und kleine Werte werden die Schlüsselwörter sup und inf als Ergebnis ausgegeben. Einen Vorteil, den wir hier sehen, ist die Bidirektionalität der Constraints, d. h. wir müssen während der Implementierung der Prädikate nicht wissen, welche Werte wir gegeben haben bzw. berechnen wollen, da wir lediglich Zusammenhänge bzw. Relationen zwischen den Variablen festlegen. Bei der Logikprogrammierung ohne Constraints muss z. B. beim infix Prädikat is/2 die rechte Seite komplett ausgewertet sein. Hierzu betrachten wir ein Beispiel, welches sowohl in Standard-Prolog als auch mit Constraints implementiert wurde: Ohne Constraints: minuszehn (X, Y) : Y i s X 1 0. Stellen wir nun eine Anfrage an das Programm, bei der uns die Variable Y bekannt und X unbekannt ist, erhalten wir einen Instanziierungsfehler:? minuszehn (X, 1 0 ). ERROR: i s / 2 : Arguments are not s u f f i c i e n t l y i n s t a n t i a t e d Betrachten wir nun das bidirektionale Programm mit Constraints: : use module ( l i b r a r y ( c l p f d ) ). minuszehnc (X, Y) : Y #= X 10. So können wir ohne weiteres die gleiche Anfrage stellen und erhalten ein sinnvolles Ergebnis:? minuszehnc (X, 1 0 ). X = 2 0. Ein dadurch entstandener Vorteil ist, dass sich die Constraint Programme universeller einsetzen und wiederverwenden lassen. Ist die Berechnung einer Variable X, die nur von Y abhängig ist, deutlich schwerer zu implementieren, als die Berechnung von Y, so können wir mithilfe von Constraints die andere Richtung implementieren. Dadurch könnte z. B. vermieden werden komplexe arithmetische Operationen zu verwenden. Dies führt zu einer deutlichen Verbesserung des Programmierkomforts bzw. einer Vereinfachung der Problemlösung. Siehe hierzu auch das Beispiel in

4 2.2 Nützliche Prädikate von CLP(FD) In der Constraint-Theorie CLP(FD) sind verschiedene Prädikate implementiert, die einem das Lösen von kombinatorischen Problemen ermöglichen bzw. deutlich erleichtern. Wir wollen nun ein paar der nützlichsten Prädikate der CLP(FD) Constraint-Theorie betrachten. Ein besonderes Augenmerk soll auf Prädikate gelegt werden, die Eigenschaften bzw. Bedingungen an Listen stellen. Um eine Liste XS von Zahlen zwischen 1 und 30 zu erzeugen, benutzen wir den Constraint XS ins 1..30, der besagt, dass jedes Element von XS einen Wert zwischen 1 und 30 besitzt. Wollen wir nun die Anzahl der Elemente auf einen Beispielwert von 9 festlegen, so können wir das vordefinierte Prolog Prädikat length(xs, 9) verwenden. An dieser Stelle soll betont werden, dass length/2 kein Prädikat von CLP(FD) ist und es lediglich zum Instanziieren der Liste benötigt wird. Wenn wir die Anfrage length(xs,9), XS ins stellen, so erhalten wir eine Liste, wobei für jedes Element lediglich in angegeben wird. Möchten wir jedoch konkrete Werte für jedes Element haben, so können wir dies mit label/1 lösen, sodass Prolog nun statt Wertebereichen konkrete Werte liefert:? length (XS, 9 ), XS i n s , l a b e l (XS ). XS = [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ] Zu beachten ist bei der Nutzung von label/1, dass die Menge der möglichen Werte für eine Variable endlich sein muss. Falls die Menge unendlich ist, so liefert die Anfrage einen Fehler. Ein solcher Fehler könnte wie folgt aussehen:? X1 #> 3, X1 i n i n f.. sup, l a b e l ( [ X1 ] ). ERROR: Arguments are not s u f f i c i e n t l y i n s t a n t i a t e d Wenn für X1 jedoch eine feste obere Schranke gewählt wird, könnte folgende Ausgabe erfolgen:? X1 #> 3, X1 i n i n f.. 6, l a b e l ( [ X1 ] ). X1 = 4 ; X1 = 5 ; X1 = 6. Nun wollen wir jedoch paarweise unterschiedliche Werte in unserer Liste vorfinden. Um dies zu realisieren, gibt es das Prädikat all different/1, welches angewandt auf unsere Liste dafür sorgt, dass alle Werte paarweise unterschiedlich sind:? length (XS, 9 ), XS i n s , a l l d i f f e r e n t (XS), l a b e l (XS ). XS = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]. Angenommen uns wäre wichtig, dass die Summe der Elemente größer als 100 sein sollte, so ließe sich dies mit dem Prädikat sum/3 realisieren, wobei der erste Parameter die Liste, der Zweite eine Relation (#=, #>, #<, usw.) und 4

5 der Letzte ein Ausdruck ist, zu dem die Summe der Elemente in Relation stehen soll:? length (XS, 9 ), XS i n s , a l l d i f f e r e n t (XS), sum(xs,# >,100), l a b e l (XS ). XS = [ 1, 2, 3, 4, 5, 6, 21, 29, 3 0 ]. Wir haben nun den Gedanken gefasst, dass wir an sechster Stelle in der Liste unbedingt eine 13 haben möchten, so können wir dies mit dem Prädikat element(6,xs,13) festlegen:? length (XS, 9 ), XS i n s , element ( 6, XS, 13), a l l d i f f e r e n t (XS), sum(xs, #=, 100), l a b e l (XS ). XS = [ 1, 2, 3, 4, 5, 13, 14, 28, 3 0 ]. Weitere Prädikate für fortgeschrittenere Anwendungsgebiete (z. B. endliche Automaten) sind in dem SWI-Prolog Manual [Tri12] 1 zu finden, welches auch als Quelle für diesen Abschnitt verwendet wurde. 2.3 Mechanismen zur Verbesserung der Laufzeit Um die Performance der CLP(FD) Auswertung zu verbessern, werden arithmetische Constraints zur Kompilezeit überschrieben, sodass lower-level Prädikate wann immer möglich benutzt werden (Übersetzung aus [Tri]). Somit wird die Performance des Constraint solvers mithilfe von Low-Level-Code automatisch verbessert. Da der SWI-Prolog Finite Domain Constraint Solver in Prolog implementiert ist, steht die Performance der Auswertung in Relation zur Performance des unterliegenden Prolog Systems. Dies hat den Nachteil, dass sich ein ineffizientes Grundsystem auf die endgültige Performance des Constraint-Solvers auswirkt. Es existieren effizientere Systeme als SWI-Prolog, der Vorteil dieses Systems ist jedoch, dass es mit großen ganzzahligen Werten rechnen kann [Tri12]. 3 Vergleich von Prolog mit und ohne Constraints Im Folgendem wollen wir durch den Vergleich an einem konkreten Beispiel die Unterschiede zwischen Prolog mit und ohne Constraints untersuchen. Dazu betrachten wir das N-Damen Problem. 3.1 Das N-Damen Problem Kern dieses Problems ist es, n Damen auf einem n*n großen Schachfeld zu platzieren, ohne dass sie sich gegenseitig schlagen können. Das heißt, dass in den Spalten und Zeilen des Feldes jeweils nur eine Dame stehen darf. Zusätzlich dürfen auch keine Damen auf der gleichen Diagonalen stehen

6 Abbildung 1: Zugrichtungen Wir betrachten zunächst die trivialen Fälle: 1,2,3 Damen. Bei einer Dame ist die Lösung offensichtlich, da es nur ein Feld und eine Dame gibt. Die Fälle mit zwei bzw. drei Damen sind nicht lösbar, da es keine Möglichkeit gibt, die Damen mit Berücksichtigung der oben beschriebenen Regeln zu platzieren. (a) 1-Dame (b) 2-Damen (c) 3-Damen(1) (d) 3-Damen(2) Abbildung 2: Triviale Fälle Im Folgenden werden wir das Schachfeld mit den platzierten Damen als Liste auffassen, sodass der Platz einer Zahl in der Liste die jeweilige Spalte auf dem Feld angibt und die Zahl selbst die Zeile. Hier ein Beispiel zur Liste [5,2,4,1,3] : Abbildung 3: 6

7 3.2 Lösung des Problems mit Constraints : use module ( l i b r a r y ( c l p f d ) ). queens (N, L) : length (L,N), L i n s 1.. N, a l l d i f f e r e n t (L) s a f e (L), l a b e l (L ). s a f e ( [ ] ). s a f e ( [X Xs ] ) : s a f e b e t w e e n (X, Xs, 1 ), s a f e ( Xs ). s a f e b e t w e e n (X, [ ],M). s a f e b e t w e e n (X, [ Y Ys ],M) : n o a t t a c k (X,Y,M), M1 #= M + 1, s a f e b e t w e e n (X, Ys,M1). n o a t t a c k (X,Y,N) : X+N #\= Y, X N #\= Y. Programmcode siehe [Gie13]. Die folgenden Erklärungen orientieren sich an [Gie13]. Die Eingabe für dieses Programm ist queens(n,l), wobei N die Größe des Feldes bzw. die Anzahl der Damen angibt und L die Liste mit deren Positionen. Wir überprüfen mit dem vordefinierten Prädikat lenght/2, ob L die korrekte Länge, also N hat. Die drei Prädikate +Vars ins +Domains, all different() und label/1 sind in der clpfd-bibliothek vordefiniert. Mit ins wird überprüft, ob die Zahlen in L im Bereich 1 bis N liegen, sodass zusammen mit length/2 sichergestellt wird, dass die Höhe und Breite des Feldes eingehalten wird. Mit dem Prädikat all different/1 wird sichergestellt, dass keine zwei Damen in derselben Zeile stehen. Zusammen mit dem allgemeinen Aufbau der Liste L ist so sichergestellt, dass sich keine Damen auf Geraden schlagen können. Durch das Prädikat safe/1 wird die letzte Anforderung an L geprüft, dass keine zwei Damen auf der selben Diagonalen stehen. Dazu werden alle Spalten rechts einer Dame überprüft. Hier werden die beiden Hilfsprädikate safe between/3 und no attack/3 verwendet. safe between(x,l,m) wird wahr, wenn die Dame in der Zeile X die Dame in der Zeile L, welche M Spalten entfernt ist, nicht schlagen kann. Dazu wird zusätzlich das Prädikat no attack/3 verwendet, um dies sicherzustellen. no attack(x,y,n) wird wahr, wenn die Dame X nicht auf der Diagonalen der Dame Y steht, welche N Spalten entfernt ist. Dieses Programm ist bidirektional, d.h. es kann sowohl zu einer Liste das entsprechende N bestimmen (wobei die Liste auf Richtigkeit geprüft wird) 7

8 als auch aus einem N die entsprechenden Ergebnislisten bestimmen. Für N=4 ist die Ein- und Ausgabe :? queens ( 4,L ). L = [ 2, 4, 1, 3 ] ; L = [ 3, 1, 4, 2 ] ; f a l s e. 3.3 Auswertung am Beispiel von N = 4 In Prolog werden die Prädikate der Reihe nach von links nach rechts und von oben nach unten abgearbeitet, sodass bei der Anfrage?-queens(4,L). folgende Schritte durchgeführt werden: Als ersten Schritt erzeugen wir mithilfe von length/2 eine Liste der Länge vier, die als Elemente Variablen enthält und später die Position einer Dame in der jeweiligen Spalte repräsentiert. Damit wir die folgenden Ausgaben von SWI-Prolog besser lesen können, wurden die ausgegebenen Variablennamen (z. B. G4888) durch besser lesbare (z. B. X1) ersetzt:? length (L, 4 ). L = [ X1, X2, X3, X4 ]. Da die Nummer der Zeile, in der sich eine Dame befinden kann, zwischen 1 und 4 bewegt, reduzieren wir den Wertebereich der Variablen auf 1 bis 4:? length (L, 4 ), L i n s L = [ X1, X2, X3, X4 ], X1 i n 1.. 4, X2 i n 1.. 4, X3 i n 1.. 4, X4 i n Nun stellen wir sicher, dass sich keine Dame in der gleichen Zeile befindet, indem wir mit all different/1 die paarweise Unterschiedlichkeit der Einträge sichern:? length (L, 4 ), L i n s 1.. 4, a l l d i f f e r e n t (L ). L = [ X1, X2, X3, X4 ], X1 i n 1.. 4, a l l d i f f e r e n t ( [ X1, X2, X3, X4 ] ), X2 i n 1.. 4, X3 i n 1.. 4, X4 i n Wir sehen nun, dass Prolog für den ersten Listeneintrag Werte von eins bis vier zulässt und von dort ausgehend mit all different/1 gleiche Werte ausschließt. Im nächsten Schritt stellen wir sicher, dass sich in einer Diagonalen nur eine Dame befindet, wobei hier wiederum Ungleichungen gesammelt werden: 8

9 ? length (L, 4 ), L i n s 1.. 4, a l l d i f f e r e n t (L), s a f e (L ). L = [ X1, X2, X3, X4 ], X1 i n 1.. 4, X1#\=X4+3, X4#\=X1+3, X1#\=X3+2, X3#\=X1+2, X1#\=X2+1, X2#\=X1+1, a l l d i f f e r e n t ( [ X1, X2, X3, X4 ] ), X4 i n 1.. 4, X3#\=X4+1, X4#\=X3+1, X2#\=X4+2, X4#\=X2+2, X3 i n 1.. 4, X2#\=X3+1, X3#\=X2+1, X2 i n Im letzten Schritt, nachdem wir alle Relationen zwischen den Variablen aufgestellt haben, lassen wir uns mithilfe von label/1 konkrete Werte ausgeben. Für die Berechnung der jeweiligen Werte ist der Constraint-Solver 2 zuständig, der, wenn wir mit einem Semikolon erzwingen, dass weitere Werte gesucht werden, diese unter Zuhilfenahme von Backtracking findet:? length (L, 4 ), L i n s 1.. 4, a l l d i f f e r e n t (L), s a f e (L), l a b e l (L ). L = [ 2, 4, 1, 3 ] ; L = [ 3, 1, 4, 2 ] ; f a l s e. 3.4 Vergleich mit einer constraintfreien Lösung Um die Unterschiede des gerade vorgestellten Programms zu dem Programm mit Constraints zu verdeutlichen, werden wir es mit dem folgendem constraintfreien Programm vergleichen. e r z l i s t e n ( [ 1 ], 1 ). e r z l i s t e n ( [N XS ],N) : NMO i s N 1, e r z l i s t e n (XS,NMO),!. queens (N, L) : length (L,N), e r z l i s t e n (R,N), permutation (L,R), s a f e (L ). s a f e ( [ ] ). s a f e ( [X Xs ] ) : s a f e b e t w e e n (X, Xs, 1 ), s a f e ( Xs ). s a f e b e t w e e n (X, [ ], M). s a f e b e t w e e n (X, [ Y Ys ],M) : n o a t t a c k (X,Y,M), M1 i s M + 1, s a f e b e t w e e n (X, Ys,M1). n o a t t a c k (X,Y,N) : R i s (X+N), Y \== R,Q i s X N, Y \== Q. Zuerst werden wir die Funktionsweise grob umreißen und danach die Vorteile der Constraint-Lösung hervorheben. Dieses Programm ist, wie das Constraint-Programm, bidirektional. Dies kann nicht bei allen constraintfreien Programmen sichergestellt werden, da 2 Wie der Solver im Einzelnen funktioniert, wurde bereits im Abschnitt 2.1 beispielhaft erklärt. 9

10 es darauf ankommt, wie die einzelnen Prädikate konstruiert sind bzw. verwendet werden. Hier wurden Constraints wie #= in is Prädikate umgewandelt. is ist jedoch unidirektional, was hier aber keinen Unterschied macht, da das Prädikat safe/1 in beiden Fällen nur in eine Richtung aufgerufen wird. Die Constraints +Vars ins +Domains, all different/1 und label/1 wurden durch eine Kombination der Prädikate erzlisten/2 und permutation/2 ersetzt. erzlisten(l,n) wird wahr, wenn die Liste L die Elemente von 1 bis N in absteigender Reihenfolge enthält.? e r z l i s t e n (L, 4 ) L = [ 4, 3, 2, 1 ] Der Cut am Ende der Funktion verhindert lediglich das Auftreten von Fehlern. Da es nur ein mögliches richtiges Ergebnis gibt, würde eine Fortsetzung der Suche nicht mehr terminieren. Das vordefinierte Prädikat permutation(r,l) ist wahr, wenn R eine Permutation von L ist. Diese beiden Prädikate zusammen erzeugen nacheinander alle Listen der Länge N mit den Elementen von 1 bis N. Diese sind wichtig für den Schritt von einem N zu einer Liste. Um von einer Liste zu einem N zu kommen, wird mit dem Prädikat length/2 sichergestellt, welches zuerst die Länge der Liste misst, dass erzlisten/2 ausreichend instanziiert ist (was unerlässlich für Bidirektionalität ist). Im Rest des Codes sind lediglich die Rechnungen ersetzt worden, was aber in diesem Fall, wie gerade beschrieben, keinen Unterschied macht. Betrachten wir einen weiteren Unterschied der beiden Programme und zwar die Laufzeiten. Dieser Unterschied zeigt sich deutlich durch Tests mit verschiedenen Eingaben. Wir verwenden time/1, um die Zeit zu messen. Wir betrachten nur die Zeit bis zum ersten Ergebnis: N Mit C. Ohne C s 0.000s s 0.000s s 0.000s s 0.145s s 0.980s s 9.8s s 93s s 1327s 10

11 Hier zeigt sich klar und deutlich, dass durch Constraints die Auswertung bestimmter Prädikate optimiert wird, sodass sie nicht wie in der constraintfreien Lösung wie ein reines Logikprogramm ausgewertet werden. Die schnelle Zunahme der Laufzeit lässt sich dadurch erklären, dass es N! verschiedene Listen gibt und das Programm alle nacheinander überprüft, bis es eine richtige Lösung gefunden hat. Es ist noch anzumerken, dass je nachdem, wie das Programm implementiert ist, die Laufzeit variieren kann, da die Reihenfolge, in der die Listen überprüft werden, eine große Rolle spielt. 4 Fazit Wie wir gesehen haben, haben Constraints viele Vorteile gegenüber normaler Logikprogrammierung. Es ist meistens intuitiver zu programmieren, da man nicht prüfen muss, ob bei jeder Eingabevariation alle Prädikate ausreichend instanziiert sind. Es reicht meist aus, dies für eine Richtung zu tun. Der Rest wird dann durch die Bidirektionalität der Constraints übernommen. Das erhöht die Wiederverwendbarkeit, wie bereits oben erwähnt. Durch diese Vorteile und die Tatsache, dass viele häufig verwendeten Prädikate bereits vordefiniert sind, werden die Programme in sich und Programme, die die Prädikate weiter verwenden, leichter lesbar, da man nicht alle Prädikate erst erschließen muss. Ein weiterer nicht zu vernachlässigender Vorteil ist die Laufzeit, welche vor allem bei komplexen Programmen und Anfragen eine Rolle spielt, da die Programme um ein vielfaches schneller laufen. Abschließend lässt sich also sagen, dass Constraints für die Arithmetik in Prolog eine nötige und sinnvolle Erweiterung darstellen. Da wir bisher nur die Constraint-Theorie CLP(FD) betrachtet haben, wollen wir noch einen kurzen Blick auf eine andere Theorie werfen. 5 Ausblick 5.1 Constraint Logical Programming over Rationals C B Abbildung 4: A Wir betrachten nun ein Anwendungsbeispiel für Constraints mit rationalen bzw. reellen Zahlen, welches wir bereits in dem Kurzvortrag kennen gelernt haben. Wir wollen Seitenlängen eines rechtwinkligen Dreiecks mithilfe des Satzes von Pythagoras (A 2 + B 2 = C 2 ) bestimmen. Dabei sind die Bezeichnungen der jeweiligen Seiten wie in Abbildung 4 gewählt. Die Relation zwischen den Variablen ist hierbei nicht linear. In der Gleichung müssen immer zwei von drei Va- 11

12 riablen gegeben sein, damit wir die Gleichung eindeutig lösen können. In unserem Beispiel betrachten wir nun eine mögliche Implementierung mit Constraints, wobei wir auch negative Werte für Strecken zulassen: : use module ( l i b r a r y ( c l p r ) ). pyt (A, B, C) : { C C = A A + B B}. Hier haben wir zuerst das Modul für die Constraint-Theorie CLPR geladen und das Prädikat pyt/3 definiert, welches den Satz des Pythagoras implementiert, indem eine Relation zwischen den Variablen angegeben wird. Hier sehen wir wiederum, dass im Gegensatz zum Prädikat is/2 die linke Seite des Ausdrucks eine Formel enthalten darf. Wir können nun eine Anfrage an unser Programm stellen:? pyt ( 1,X, 4 ). X = Angenommen wir wollen dieses Problem ohne Constraints lösen, so könnte eine Implementierung wie folgt aussehen: pytn (A, B,C) : C i s s q r t (A A+B B ). Solange wir C berechnen möchten, gibt es kein Problem, wenn wir allerdings B oder A berechnen wollen, erhalten wir Instanziierungsfehler:? pytn ( 1, 2,X). X = ? pytn ( 1,X, 3 ). ERROR: i s / 2 : Arguments are not s u f f i c i e n t l y i n s t a n t i a t e d Um dieses Problem zu lösen, müssten wir für jede Kombination von gegebenen Variablen ein eigenes Prädikat implementieren. Des Weiteren ist hier der Nachteil, dass die Grundrechenarten nicht mehr ausreichen und wir komplexere arithmetische Operationen benötigen. Dies führt zu einem deutlich höheren Entwicklungsaufwand und erschwert die Lösung des Problems. Literatur [Gie13] Jürgen Giesl. Logikprogrammierung, sommersemester 2013, lehrund forschungsgebiet informatik 2, rwth aachen. pages , [Tri] Markus Triska. library(clpfd): Constraint logical programming over finite domains. [Tri12] Markus Triska. The finite domain constraint solver of SWI-Prolog. In FLOPS, volume 7294 of LNCS, pages ,

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Dossier: Rechnungen und Lieferscheine in Word

Dossier: Rechnungen und Lieferscheine in Word www.sekretaerinnen-service.de Dossier: Rechnungen und Lieferscheine in Word Es muss nicht immer Excel sein Wenn Sie eine Vorlage für eine Rechnung oder einen Lieferschein erstellen möchten, brauchen Sie

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Übungen für Woche 10

Übungen für Woche 10 Übungen für Woche 10 Martin Rubey 12. Januar 2011 Die folgenden Übungen sollen den Umgang mit Backtracking und kombinatorischen Spezies näherbringen. Genaue Hinweise gibt es erst auf Seite 5. Zur Erinnerung:

Mehr

Musterlösungen zur Linearen Algebra II Blatt 5

Musterlösungen zur Linearen Algebra II Blatt 5 Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

3. LINEARE GLEICHUNGSSYSTEME

3. LINEARE GLEICHUNGSSYSTEME 176 3. LINEARE GLEICHUNGSSYSTEME 90 Vitamin-C-Gehalt verschiedener Säfte 18,0 mg 35,0 mg 12,5 mg 1. a) 100 ml + 50 ml + 50 ml = 41,75 mg 100 ml 100 ml 100 ml b) : Menge an Kirschsaft in ml y: Menge an

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Die Erstellung eigener Strukturprofile

Die Erstellung eigener Strukturprofile Die Erstellung eigener Strukturprofile Manchmal ist es nötig, eigene Profile zu Erstellen, die man dann mittels Gestellgenerator verbaut. Diese Strukturprofile werden in einer Benutzerbezogenen Bibliothek

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Probleme unseres Alltags E-Mails lesen: Niemand außer mir soll meine Mails lesen! Geld abheben mit der EC-Karte: Niemand außer mir soll

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b Aufgabe 1: Im Jahr t = 0 hat eine Stadt 10.000 Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. (a) Nehmen Sie lineares Wachstum gemäß z(t) = at + b an, wobei z die Einwohnerzahl ist und

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192. Binäres und dezimales Zahlensystem Ziel In diesem ersten Schritt geht es darum, die grundlegende Umrechnung aus dem Dezimalsystem in das Binärsystem zu verstehen. Zusätzlich wird auch die andere Richtung,

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Eines der am häufigsten auftretenden Standardprobleme der angewandten Mathematik ist das Lösen linearer Gleichungssysteme, etwa zur Netzwerkberechnung in der Elektrotechnik oder

Mehr

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden. Multiplikation Die schriftliche Multiplikation ist etwas schwieriger als die Addition. Zum einen setzt sie das kleine Einmaleins voraus, zum anderen sind die Überträge, die zu merken sind und häufig in

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

a n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

Mehr

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort: Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung

Mehr

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen. Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

14 Schmiegeparabel und Freunde, Taylor-Reihe

14 Schmiegeparabel und Freunde, Taylor-Reihe 14 Schmiegeparabel und Freunde, Taylor-Reihe Jörn Loviscach Versionsstand: 20. März 2012, 16:01 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Lassen Sie sich dieses sensationelle Projekt Schritt für Schritt erklären:

Lassen Sie sich dieses sensationelle Projekt Schritt für Schritt erklären: Lassen Sie sich dieses sensationelle Projekt Schritt für Schritt erklären: Gold Line International Ltd. Seite 1 STELLEN SIE SICH VOR: Jeder Mensch auf der Erde gibt Ihnen 1,- Dollar Das wäre nicht schwer

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

GLIEDERUNG UND BASISGLIEDERUNG. 2010/03/09 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

GLIEDERUNG UND BASISGLIEDERUNG. 2010/03/09 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! GLIEDERUNG UND BASISGLIEDERUNG 2010/03/09 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! INHALT ÜBERSICHT: FUNKTIONSWEISE AUSWERTUNGSGLIEDERUNG OHNE BASISGLIEDERUNG...

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung Ablauf für die Erfassung der Fehler in der Fertigung Voraussetzung ist die Zuordnung der Erzeugnisse zu Produktgruppen. Wie das funktioniert ist der Anleitung Neue Produktgruppe anlegen und mit Erzeugnissen

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1 Zahlenwinkel: Forscherkarte 1 alleine Tipp 1 Lege die Ziffern von 1 bis 9 so in den Zahlenwinkel, dass jeder Arm des Zahlenwinkels zusammengezählt das gleiche Ergebnis ergibt! Finde möglichst viele verschiedene

Mehr

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR) Eine Firma stellt USB-Sticks her. Sie werden in der Fabrik ungeprüft in Packungen zu je 20 Stück verpackt und an Händler ausgeliefert. 1 Ein Händler

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Microsoft Excel 2010 Mehrfachoperation

Microsoft Excel 2010 Mehrfachoperation Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Excel 2010 Mehrfachoperation Mehrfachoperationen in Excel 2010 Seite 1 von 6 Inhaltsverzeichnis Einleitung... 2 Mehrfachoperation mit

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN

TECHNISCHE UNIVERSITÄT MÜNCHEN TECHISCHE UIVERSITÄT MÜCHE Zentrum Mathematik PRF. R.R. JÜRGE RICHTER-GEBERT, VAESSA KRUMMECK, MICHAEL PRÄHFER Höhere Mathematik für Informatiker I (Wintersemester 003/004) Aufgabenblatt 1 (4. ktober 003)

Mehr

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig? Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig? Oft wirft die Aufnahme neuer Gesellschafter oder auch die Einstellung

Mehr

OSD-Branchenprogramm. OSD-Version 7.1.4 Was ist neu? EDV-Power für Holzverarbeiter

OSD-Branchenprogramm. OSD-Version 7.1.4 Was ist neu? EDV-Power für Holzverarbeiter OSD-Branchenprogramm OSD-Version 7.1.4 Was ist neu? EDV-Power für Holzverarbeiter Inhalt 1. Allgemeines 3 2. Version 7.1.4 4 2.1 Kundenauftragsabwicklung 4 2.1.1 EU-Überweisungen - Verwendungszweck 4 2.2

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Updatehinweise für die Version forma 5.5.5

Updatehinweise für die Version forma 5.5.5 Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Second Steps in eport 2.0 So ordern Sie Credits und Berichte Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

Mehr

Stundenerfassung Version 1.8

Stundenerfassung Version 1.8 Stundenerfassung Version 1.8 Anleitung Überstunden Ein Modul der Plusversion 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt.

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Anzeige von eingescannten Rechnungen

Anzeige von eingescannten Rechnungen Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung

Mehr

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? In der gedruckten Version der Spielregeln steht: der Startspieler ist der Spieler, dessen Arena unmittelbar links neben dem Kaiser steht [im Uhrzeigersinn].

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik Wurzeln als Potenzen mit gebrochenen Exponenten Zur Einstimmung Wir haben die Formel benutzt x m n = x m n nach der eine Exponentialzahl potenziert wird, indem man die Exponenten multipliziert. Dann sollte

Mehr