Stepping with SeaLion
|
|
- Justin Gaines
- 5 years ago
- Views:
Transcription
1 Stepping with SeaLion April 26, 2013 Contents 1 Introduction Stepping Terminology in a Nut Shell Set-up The Toy Problem The Toy Program Debugging by Stepping Starting Stepping The SeaLion Stepping Perspective The First Steps Getting Stuck and Backtracking Stratification of Aggregates Jumping Truth Assignment Finding the First Bug with Filtering Fixing the Second Bug Introduction SeaLion [7] [ref also the iclp13 paper and other tutorials!!!] is an IDE for ASP [3, 4] realised as a plugin of the Eclipse platform [1]. This tutorial describes how to use the SeaLion s primary debugging mechanism, the Stepping framework. After a brief introduction and description how to set up SeaLion, we will lead you step by step through an example debugging session. You TODO 1
2 can find more technical details in [6] that introduces Stepping for normal logic programs, in [8] that lifts the framework to DL-programs and in [5] that describes the full version implemented in SeaLion. 1.1 Stepping Terminology in a Nut Shell In the imperative programming, stepping through a program is the most common debugging method. At each step you can inspect the content of variables to understand what the program actually does. This method is simple and straightforward, because the control flow of imperative programs is fixed. In the case of ASP it is not so simple, because in the declarative paradigm there is no such thing as a control flow. SeaLion solves this problem by letting the user choose which direction should the search for an answer set proceed. Briefly, a process of stepping tries to monotonically build up an interpretation by, in each step, adding atoms derived by a rule that is active under the interpretation obtained in the previous step. Practically, a stepping state S consists of the set of rules P S already considered active, the intermediate interpretation I S of atoms already considered true, the set of atoms I S already considered false and the set of unfounded sets Υ S. (We will not concern ourselves with these in this tutorial. See [2, 8, 5] for more details.) At a step from S to its successor S, the user chooses a rule r active under I S that will be added to P S and form P S. The user also has to choose which atoms from r are considered true and which false, such that r stays active and satisfied by I S. The ones considered true added to I S form I S and the ones considered false added to I S form I S. The sets I S and I S must stay disjoint in any state S to forbid deactivation of r. A process of stepping is called computation. Each answer set of the program can be reached by some computation and each computation either reaches some answer set or gets stuck. A computation that will inevitably get stuck is called failed. 1.2 Set-up If you want to follow this tutorial step by step, please install SeaLion as described on the SeaLion Website, but choose the package titled SeaLion Package (includes all non-experimental plugins). When installed, change Context Type Preferences in Window Preferences SeaLion for Gringo File to Gringo Clasp (all AS) in order to obtain all answer sets of a program when launched. 2
3 1.3 The Toy Problem We will be debugging program that is meant to solve Nurikabe puzzles. Nurikabe is a grid of cells, some of which contain natural numbers. The goal is to colour the cells such that (i) each cell is either black or white, (ii) cells with numbers are white, (iii) there are no 2x2 blocks of black cells, (iv) all black cells are transitively connected, and (v) each maximal group of white cells that are transitively connected must contain exactly one cell with a number; this number must be the number of cells in the group, where two cells are connected if they are of the same colour and share a border. For example, this is a puzzle instance, its solution and two wrong solutions violating the condition (iii) and conditions (v): 1.4 The Toy Program Start a new SeaLion project in the menu File New Project... and then SeaLion SeaLion Project. 3
4 Name it stepping tutorial. Then right click on the project in the Project Explorer and create a new file in New File. 4
5 Name it nurikabe.lp. Open the file and insert the following code into it. % INPUT % % Having a grid of cells, some of which contain natural numbers, row(1..4). col(1..4). number(c(3,2), 3). number(c(4,4), 1). % DEFINE % cell(c(y,x)) :- row(y), col(x). maxcol(x) :- col(x), not col(x+1). maxrow(y) :- row(y), not row(y+1). 5
6 mincol(x) :- col(x), not col(x-1). minrow(y) :- row(y), not row(y-1). adjacent(c(y,x), c(y-1,x)) :- cell(c(y,x)), not minrow(y). adjacent(c(y,x), c(y,x+1)) :- cell(c(y,x)), not maxcol(x). adjacent(c(y,x), c(y+1,x)) :- cell(c(y,x)), not minrow(y). adjacent(c(y,x), c(y,x-1)) :- cell(c(y,x)), not mincol(x). % GENERATE % % (i) each cell is either black or white, {white(c) : cell(c)}. black(c) :- cell(c), not white(c). % CHECK % % (ii) cells with numbers are white, :- black(c), number(c,_). % (iii) there are no 2x2 blocks of black cells, :- black(c(y,x)), black(c(y+1,x)), black(c(y,x+1)), black(c(y+1,x+1)). % (iv) all black cells are transitively connected, black_reach(c1, C2) :- black(c1), black(c2), adjacent(c1, C2). black_reach(c1, C3) :- black_reach(c1, C2), black(c3), adjacent(c2, C3). :- black(c1), black(c2), not black_reach(c1, C2). % (v) each maximal group of white cells that are transitively connected % must contain exactly one cell with a number; % this number must be the number of cells in the group, group(c, C) :- number(c, _). group(c1, C2) :- group(c3, C2), adjacent(c3, C1), white(c1). :- number(c1, N), not N{group(C2, C1) : cell(c2)}n. in_group(c) :- group(c, _). :- white(c), not in_group(c). 1{group(C1, C2) : number(c2, _)}1 :- white(c1). The code can be downloaded from [move to more official place] here. Briefly, the program encodes a puzzle instance with facts of predicates row/1 and col/1 that enumerate row and column numbers, and atoms of form number(c(y,x),n), indicating that the cell c(y,x) contains number N. The output of the program is encoded by predicates black/1 and white/1 specifying the colouring of each cell. The DEFINE part defines all the cells and their adjacency. An output is first guessed in the GENERATE part and then checked by the constraints in the CHECK part. The encoding of the first two constraints is straightforward, but the encoding of the other two needs auxiliary definitions of reachability and white groups. Prepare a launch configuration by choosing Run Configurations... from Run As in the pop-up menu of the file, or in the pop-up menu under the Run As... button in the toolbar. TODO 6
7 Choose SeaLion in the list on the left, then click New launch configuration. Name it nurikabe and add our source code file to the Input Program Files. 7
8 All the other attributes should be set automatically. So just click the buttons Apply and Run just to find out that the program has no answer set. 2 Debugging by Stepping Generally, a bug in an answer-set program is detected when, for a particular input, the actual output differs from the intended output. This means that either (1) an intended answer set is missing from the actual output, or (2) the actual output contains an unintended answer set. A good stepping strategy in the first case is trying to reach one of the missing answer sets and see why the computation gets stuck. In the second case it is sensible to lead the stepping towards one of the unintended answer sets and observe where the computation should but does not get stuck. 8
9 Out toy program has no answer set while we expect exactly one for the exactly one solution of the puzzle instance in the program s input. This is a subcase of (1), where all intended answer sets are missing. So let us try the first strategy. 2.1 Starting Stepping You can start to step through a program by running its usual launch configuration in the debug mode. Simply choose Debug Configurations... from Debug As in the pop-up menu of the file or in the pop-up menu under the Debug As... button in the toolbar. Select the launch configuration nurikabe we defined before and click Debug. 2.2 The SeaLion Stepping Perspective The GUI of Eclipse switches to the SeaLion Stepping perspective. 9
10 [Draw the labels into the picture.] The perspective displays the source code of the program in a source editor (a). Rules with active instances are highlighted in the editor. Upon clicking on such a rule, its active instances are displayed in the Active Instances view (b). After choosing one of the instances, you need to decide in the Truth Assignment view (c) whether the atoms in it are assigned to I S or I S. While a rule selected for some step must remain active and satisfied under I S of the next state S, this assignment is usually fixed for simple rules. In such cases, SeaLion automatically assigns the atoms and enables the STEP button. Upon clicking the button, the next state is computed and displayed in the State view (d). Finally, the Computation view (e) shows all actions taken during a stepping in the form of a tree and allows for navigating between the states resulting from these actions, i.e. you can return to a previous state and start a new branch in the tree from there, while all the old branches remain intact. TODO 2.3 The First Steps Click on the first fact of the program in the source editor and the Active Instance view displays its active instances. Select the second one. Truth assignment of the atoms in this fact is fixes, so the Truth Assignment view automatically enables the STEP button. Click it. Congratulations! You have just performed your first step. The State view now displays the active instance of the fact added to P S (a), the atoms from it added to I S (b), empty I S (c) and only one empty set in Υ (d). 2.4 Getting Stuck and Backtracking Adding row(2) to I S activated further rules in the program. Select the first one of them and step through its active instance. 10
11 Now P S contains {row(2)., maxrow(2) :- row(2), not row(3).}, I S contains {row(2), maxrow(2)} and I S contains {row(3)}. Select the first fact again and its active instance row(3).. You can see that it is not possible to add it to P S, because that would add atom row(3) to I S which must stay disjoint with I S. 11
12 While row(1..4). is a fact, row(3). will always be its active instance. Even if we continue stepping, we will be never able to add this active instance to P S, because we cannot remove its atom from I S. That means we cannot reach any answer set from this state. Detecting when the computation becomes failed will point to the bug later on, but this time it happened because we made a step that does not lead to our intended answer set. So we backtrack one step by double-clicking on the previous node in the Computation view. Even though we did not detect the bug yet, you can see from this little detour why maxrow(4) is the only instance of maxrow(x) in any answer set. 2.5 Stratification of Aggregates Back on the right track, if you try to select the choice rule in the GENERATE section, SeaLion will write a warning 12
13 This is because the grounding of the choice rule depends on complete interpretation of cell/1, i.e. there is one atom of white/1 in the instance of the choice rule for each atom of cell/1 that is true. While we did not add any atom of cell/1 to I S yet, the only active instance of the choice rule is an empty choice rule {}.. If we added this instance to P S and then added some atoms of cell/1 to I S, the grounding of the choice rule would change and {}. would be a rule in P S that is not an active instance of any rule in our program. SeaLion detects such cases and prevents us from getting into inconsistent states by forbidding adding rules with active instances that may change. 2.6 Jumping In order to reach out intended answer set we need to step through all the facts of the input and all the rules in the DEFINE part. This is tedious and cumbersome. SeaLion offers the jumping feature for such cases. It allows us to jump through a number of rules into a state that would be reached after stepping through all these rules. Select text of all the facts of the input and click the Add Rules for Jump button in the Jump view. This adds the rules into the set of rules selected for jump displayed by the Jump view. You can remove all the rules from this set by clicking the Clear Rules for Jump button. Do not do it now, but add also the following five rules 13
14 and click the Jump button. You will get to the state where all active instances of the selected rules are in P S, the atoms they infer are in I S, and the negated atoms from these instances are added to I S. We want to do even less clicking, so select all the rules defining adjacent/2 and click Direct Jump on the toolbar or in the Stepping menu. 14
15 This simply directly jumps through the selected rules. Note that decisions for jumping are taken nondeterministically (technically, they depend on the first answer set that is generated in a SeaLion internal answer-set computation), e.g. if guessing rules are chosen for jumping, we cannot be sure in what state will the jump end up. If you want to determine some of the guessed values, you can step through the corresponding instances of the guessing rules before jumping. We will to do this next. 2.7 Truth Assignment Now we are going to step through the GENERATE part in a way that generates our intended answer set. So select the choice rule (no warning is issued as all the atoms of grid/1 are already in I S ). It has only one active instance, but the truth assignment of its atoms is not fixed. We have to put the atoms white(c(2,2)), white(c(2,3)), white(c(3,2)) and white(c(4,4)) to the positive column and the rest to the negative column. You can do this with drag&drop or using the arrow keys. 15
16 When the decision column is empty, the STEP button is enables. Please note that this does not happen generally, if there were some bounds of the choice rule, the number of atoms in the positive column would have to be within these bounds. Generally, the STEP button is enables when the selected active instance is active and satisfied after the choice. Finally, click the STEP button and arrive to the state where all the cells we want white/1 are in I S. Now you can simply jump through the other rule in the GENERATE part, because the outcome is determined by the previous step. 2.8 Finding the First Bug with Filtering At this point, the output predicates in I S specify the only correct solution of out puzzle instance. We know this stepping will not lead to any answer set, because the program has none. Thus we want to find out why we will get stuck. Let us start with inspecting each constraint. The first two are inactive and will not activate, because all their atoms are already derived. The constraint encoding condition (iv) is active, while no black_reach/2 is in I S yet. After we jump through the two rules defining the black reachability, the constraint should deactivate. 16
17 But it does not. You can see the instances of this constraint that stayed active in the Active Instances view. Let us focus on the first one: :- black(c(1,1)), black(c(2,1)), not black_reach(c(1,1),c(2,1)). Only way to deactivate this instance is to derive black_reach(c(1,1),c(2,1)). While c(1,1) and c(2,1) are adjacent, the rule that should derive this atom is the first rule defining the black reachability. So let us backtrack before jumping through it and inspect its active instances. It has many instances, but we want to see only the one that derives our missing atom. You can filter the instances by typing variable=value pairs separated by dot into the filters text input on the top of the Active Instances view. Type C1=c(1, 1).. 17
18 You can see that the active instance deriving black_reach(c(1,1),c(2,1)) is missing. The only possible reason for this is that adjacent(c(1,1),c(2,1)) was not derived, because the interpretation of black/1 is already fixed. Let us backtrack before adding atoms of adjacent/2 and inspect the rules deriving them. The third rule is responsible of deriving adjacent(c(1,1),c(2,1)) and after having a look on its active instances you can probably see that there is something strange. The variable Y is never substituted by 1. This points to the mistake in the boundary atom not minrow(y) which is supposed to be not maxrow(y). If you rewrite the atom while stepping, SeaLion warns that the state may be inconsistent. 18
19 So we rather stop the stepping by clicking Stop Stepping on the toolbar or in the Stepping menu and launch the program to make sure that the bug is gone. 2.9 Fixing the Second Bug The good news is that the program has an answer set. The bad news is that it has too many answer sets. While we expect only one for the only solution of the puzzle instance, this is case (2) of the ASP output difference. Thus we will step towards an answer set corresponding to one of the wrong solutions and concentrate on the part of the program that was supposed to forbid this answer set. Let us pick the following wrong solution: 19
20 We can see that this solution violates the condition (v), so the bug is probably in the program part encoding this condition. We want to examine just this part, so we will jump through the rest of the program, which we suppose is correct. Start the stepping as before and jump through all the input facts and the DEFINE part. Step through the choice rule and assign its atoms to generate the wrong solution. jump through the other rule in the GENERATE part. 20
21 You may, but do not need to, jump through the rules defining the black reachability, because the part encoding the condition (v) does not depend on them. Now we fixed the interpretation of the output predicates to encode our wrong solution, so if the program was correct, the constraints in the part (v) would stay active. But we know that this computation leads to an answer set, so it is possible to deactivate all the constraints. We will find the bug, if we find out how are the constraints that should stay active deactivated. The part (v) first defines the white groups by atoms group(g,c) saying that the cell C belongs to the group G. The first rule of the part says that the groups are identified by the cells with numbers. The second rule adds all the white cells white-reachable from a cell with a number to the group of the number cell. Jumping through these two rules is meant to be the only way to deactivate the constraints of this part. Jump through them, just to find out that the constraints are not deactivated! How are the constraints deactivated then? The first constraint is a little bit too complicated, so let us start from the second one. It ensures that each white cell is in some group. (We see that 21
22 this is not true in the wrong solution we are reaching.) Jump through the projecting rule in_group(c) :- group(c, _). and have a look at the active instances of the constraint. We fixed the interpretation of white/1 and the projecting rule is the only one defining in_group/1, so this constraint is deactivated by some other rule deriving atoms of group/2. After the search for such a rule in the program, you can see that the last rule does so. This rule was supposed to encode that each white cell must belong to exactly one group, but the programmer got confused and encoded that each white cell belongs to exactly one group. The difference is that the former is a restriction and should be encoded as a constraint, but the latter is a definition encoded by a rule that actually derives atoms of group/2. You can continue stepping and reach the unintended answer set, but you would not gain much more information. It is better idea to stop stepping, correct the last rule into the constraint :- white(c1), not 1{group(C1, C2) : number(c2, _)}1. and run the program to see that it finally gives the correct output. [A little about unfounded sets. a b. a :- b. b :- a.] TODO References [1] Eclipse Project [2] Wolfgang Faber. Unfounded sets for disjunctive logic programs with arbitrary aggregates. In Proceedings of the 8th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2005), volume 3662 of Lecture Notes in Computer Science, pages Springer, [3] M. Gelfond and N. Leone. Logic programming and knowledge representation - The A-Prolog perspective. Artificial Intelligence, 138(1-2):3 38, [4] M. Gelfond and V. Lifschitz. The stable model semantics for logic programming. In Proceedings of the 5th Logic Programming Symposium, pages , Association for Logic Programming, MIT Press, Cambridge, Mass,
23 [5] J. Oetsch, J. Pührer, P. Skočovský, and H. Tompits. Stepping in answer-set programming: Handling disjunctions and aggregates, In preparation. [6] J. Oetsch, J. Pührer, and H. Tompits. Stepping through an answer-set program. In Proceedings of the 11th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2011), volume 6645 of Lecture Notes in Computer Science, pages Springer, [7] Johannes Oetsch, Jörg Pührer, and Hans Tompits. The SeaLion has landed: An IDE for answer-set programming Preliminary report. In Proceedings of the 19th International Conference on Applications of Declarative Programming and Knowledge Management and the 25th Workshop on Logic Programming (INAP 2011/WLP 2011), pages , [8] Johannes Oetsch, Jörg Pührer, and Hans Tompits. Stepwise debugging of description-logic programs. In Esra Erdem, Joohyung Lee, Yuliya Lierler, and David Pearce, editors, Correct Reasoning - Essays on Logic-Based AI in Honour of Vladimir Lifschitz, volume 7265 of Lecture Notes in Computer Science, pages Springer,
Debugging Answer-Set Programs with Ouroboros Extending the SeaLion Plugin
Debugging Answer-Set Programs with Ouroboros Extending the SeaLion Plugin Melanie Frühstück 1, Jörg Pührer 2, and Gerhard Friedrich 1 1 Siemens AG Österreich, Corporate Technology, Vienna, Austria melanie.fruehstueck@siemens.com
More informationAnswer Sets and the Language of Answer Set Programming. Vladimir Lifschitz
Answer Sets and the Language of Answer Set Programming Vladimir Lifschitz Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory
More informationExtending ASPIDE with User-defined Plugins
Extending ASPIDE with User-defined Plugins Onofrio Febbraro 1, Nicola Leone 2, Kristian Reale 2, and Francesco Ricca 2 1 DLVSystem s.r.l. - P.zza Vermicelli, Polo Tecnologico, 87036 Rende, Italy febbraro@dlvsystem.com
More informationEssential Gringo (Draft)
Essential Gringo (Draft) Vladimir Lifschitz, University of Texas 1 Introduction The designers of the Abstract Gringo language AG [Gebser et al., 2015a] aimed at creating a relatively simple mathematical
More informationExtending Object-Oriented Languages by Declarative Specifications of Complex Objects using Answer-Set Programming
Extending Object-Oriented Languages by Declarative Specifications of Complex Objects using Answer-Set Programming Johannes Oetsch, Jörg Pührer, and Hans Tompits Institut für Informationssysteme 184/3,
More informationExploiting Unfounded Sets for HEX-Program Evaluation
Exploiting Unfounded Sets for HEX-Program Evaluation Thomas Eiter, Michael Fink, Thomas Krennwallner, Christoph Redl, Peter Schller redl@kr.tuwien.ac.at September 27, 2012 Redl C. (TU Vienna) HEX-Programs
More informationA Model-Theoretic Counterpart of Loop Formulas
A Model-Theoretic Counterpart of Loop Formulas Joohyung Lee Department of Computer Sciences The University of Texas at Austin Austin, TX 78712, USA appsmurf@cs.utexas.edu Abstract In an important recent
More informationChoice Logic Programs and Nash Equilibria in Strategic Games
Choice Logic Programs and Nash Equilibria in Strategic Games Marina De Vos and Dirk Vermeir Dept. of Computer Science Free University of Brussels, VUB Pleinlaan 2, Brussels 1050, Belgium Tel: +32 2 6293308
More informationProlog and ASP Inference Under One Roof
Prolog and ASP Inference Under One Roof Marcello Balduccini 1, Yuliya Lierler 2, and Peter Schüller 3 1 Eastman Kodak Company, USA marcello.balduccini@gmail.com 2 University of Nebraska at Omaha, USA ylierler@unomaha.edu
More informationAn Algorithm for Computing Semi-Stable Semantics
An Algorithm for Computing Semi-Stable Semantics Martin Caminada Department of Information and Computing Sciences, Utrecht University Technical Report UU-CS-2007-010 www.cs.uu.nl ISSN: 0924-3275 An Algorithm
More informationComputing Answer Sets of a Logic Program via-enumeration of SAT certificates
Computing Answer Sets of a Logic Program via-enumeration of SAT certificates Yuliya Lierler and Marco Maratea Department of Computer Sciences, University of Texas, Austin, USA Dipartimento di Informatica,
More informationSystems integrating answer set programming and constraint programming
Systems integrating answer set programming and constraint programming Michael Gelfond and Veena S. Mellarkod and Yuanlin Zhang {mgelfond,veena.s.mellarkod,yzhang}@cs.ttu.edu Texas Tech University, USA
More informationOn Structural Analysis of Non-Ground Answer-Set Programs
Technical Communications of ICLP 2015. Copyright with the Authors. 1 On Structural Analysis of Non-Ground Answer-Set Programs BENJAMIN KIESL, 1 PETER SCHÜLLER, 2 and HANS TOMPITS 1 1 Institut für Informationssysteme,
More informationLANA: A Language for Annotating Answer-Set Programs
LANA: A Language for Annotating Answer-Set Programs Marina De Vos 1, Doğa Gizem Kısa 2, Johannes Oetsch 3, Jörg Pührer 3, and Hans Tompits 3 1 Department of Computer Science, University of Bath, Bath,
More informationHandout on Answer Set Programming
Handout on Answer Set Programming Yuliya Lierler Univresity of Nebraska, Omaha Tell me and I forget. Show me and I remember. Involve me and I understand. (Chinese proverb) The Moore method is a deductive
More informationNonmonotonic Databases and Epistemic Queries*
Nonmonotonic Databases and Epistemic Queries* Vladimir Lifschitz Department of Computer Sciences and Department of Philosophy University of Texas at Austin Austin, TX 78712, U. S. A. Abstract The approach
More informationSoftware Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore
Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Lecture 04 Software Test Automation: JUnit as an example
More informationDebugging. CSE 2231 Supplement A Annatala Wolf
Debugging CSE 2231 Supplement A Annatala Wolf Testing is not debugging! The purpose of testing is to detect the existence of errors, not to identify precisely where the errors came from. Error messages
More informationAggregates in Recursion: Issues and Solutions
Aggregates in Recursion: Issues and Solutions Alpen-Adria-Universität Klagenfurt RuleML Webinar, 2018-05-25 Outline 1 2 3 4 Coincidence Results Complexity Results : Aggregates Aggregates facilitate problem
More informationLinear Programming Terminology
Linear Programming Terminology The carpenter problem is an example of a linear program. T and B (the number of tables and bookcases to produce weekly) are decision variables. The profit function is an
More informationConflict-driven ASP Solving with External Source Access
Conflict-driven ASP Solving with External Source Access Thomas Eiter, Michael Fink, Thomas Krennwallner, Christoph Redl redl@krtuwienacat September 05, 2012 Redl C (TU Vienna) HEX-Programs September 05,
More informationDebugging ASP using ILP
Technical Communications of ICLP 2015. Copyright with the Authors. 1 Debugging ASP using ILP TINGTING LI Institute for Security Science and Technology, Imperial College London, UK E-mail: tingting.li@imperial.ac.uk
More informationnfn2dlp: A Normal Form Nested Programs Compiler
nfn2dlp: A Normal Form Nested Programs Compiler Annamaria Bria, Wolfgang Faber, and Nicola Leone Department of Mathematics, University of Calabria, 87036 Rende (CS), Italy {a.bria,faber,leone}@mat.unical.it
More informationRecursive Aggregates in Disjunctive Logic Programs: Semantics and Complexity
Recursive Aggregates in Disjunctive Logic Programs: Semantics and Complexity Revised version as of September 5, 2005 Wolfgang Faber 1, Nicola Leone 2, and Gerald Pfeifer 1 1 Institut für Informationssysteme,
More informationOverview. Experiment Specifications. This tutorial will enable you to
Defining a protocol in BioAssay Overview BioAssay provides an interface to store, manipulate, and retrieve biological assay data. The application allows users to define customized protocol tables representing
More information1 Introduction and Examples
1 Introduction and Examples Sequencing Problems Definition A sequencing problem is one that involves finding a sequence of steps that transforms an initial system state to a pre-defined goal state for
More informationJWASP: A New Java-Based ASP Solver
JWASP: A New Java-Based ASP Solver Mario Alviano, Carmine Dodaro, and Francesco Ricca Department of Mathematics and Computer Science, University of Calabria, 87036 Rende (CS), Italy {alviano,dodaro,ricca}@mat.unical.it
More informationA Backjumping Technique for Disjunctive Logic Programming
A Backjumping Technique for Disjunctive Logic Programming Wolfgang Faber, Nicola Leone, and Francesco Ricca Department of Mathematics University of Calabria 87030 Rende (CS), Italy faber,leone,ricca @mat.unical.it
More informationAnswer Set Programming as SAT modulo Acyclicity
Answer Set Programming as SAT modulo Acyclicity Martin Gebser, Tomi Janhunen, and Jussi Rintanen Helsinki Institute for Information Technology HIIT Department of Information and Computer Science Aalto
More information16.410/413 Principles of Autonomy and Decision Making
16.410/413 Principles of Autonomy and Decision Making Lecture 17: The Simplex Method Emilio Frazzoli Aeronautics and Astronautics Massachusetts Institute of Technology November 10, 2010 Frazzoli (MIT)
More informationOperational Semantics
15-819K: Logic Programming Lecture 4 Operational Semantics Frank Pfenning September 7, 2006 In this lecture we begin in the quest to formally capture the operational semantics in order to prove properties
More informationForcing in disjunctive logic programs
Forcing in disjunctive logic programs Marina De Vos Free University of Brussels, VUB marinadv@tinf1vubacbe Dirk Vermeir Free University of Brussels, VUB dvermeir@vubacbe Abstract We propose a semantics
More informationThe Complexity of Camping
The Complexity of Camping Marzio De Biasi marziodebiasi [at] gmail [dot] com July 2012 Version 0.04: a re-revised sketch of the proof Abstract We prove that the tents puzzle game is NP -complete using
More informationAn Experimental CLP Platform for Integrity Constraints and Abduction
An Experimental CLP Platform for Integrity Constraints and Abduction Slim Abdennadher and Henning Christiansen Computer Science Department, University of Munich Oettingenstr. 67, 80538 München, Germany
More informationA QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
More informationThe first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.
Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you
More informationLR Parsing E T + E T 1 T
LR Parsing 1 Introduction Before reading this quick JFLAP tutorial on parsing please make sure to look at a reference on LL parsing to get an understanding of how the First and Follow sets are defined.
More informationTranslation of Aggregate Programs to Normal Logic Programs
Translation of Aggregate rograms to Normal Logic rograms Nikolay elov arc Denecker and aurice Bruynooghe Dept. of Computer Science.U.Leuven Celestijnenlaan 00A B-3001 Heverlee Belgium E-mail: pelovmarcdmaurice
More informationData Integration: Logic Query Languages
Data Integration: Logic Query Languages Jan Chomicki University at Buffalo Datalog Datalog A logic language Datalog programs consist of logical facts and rules Datalog is a subset of Prolog (no data structures)
More informationThis Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step.
This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. Table of Contents Get Organized... 1 Create the Home Page... 1 Save the Home Page as a Word Document...
More information(Refer Slide Time: 02.06)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking
More information15100 Fall 2005 Final Project
15100 Fall 2005 Final Project Robby Findler & Jacob Matthews 1 Introduction to Sudoku Sudoku is a logic puzzle set on a nine by nine grid. The goal is to fill in the blank spaces in the puzzle with the
More informationVIDEAS: A Development Tool for Answer-Set Programs based on Model-Driven Engineering Technology
VIDEAS: A Development Tool for Answer-Set Programs based on Model-Driven Engineering Technology Johannes Oetsch 1, Jörg Pührer 1, Martina Seidl 2,3, Hans Tompits 1, and Patrick Zwickl 4 1 Technische Universität
More informationDebugging non-ground ASP programs with Choice Rules, Cardinality and Weight Constraints
Debugging non-ground ASP programs with Choice Rules, Cardinality and Weight Constraints Axel Polleres 1, Melanie Frühstück 1, Gottfried Schenner 1, and Gerhard Friedrich 2 1 Siemens AG Österreich, Siemensstraße
More informationLisp legal move generators & search
Lisp legal move generators & search objectives 1. development of legal move generators 2. experimentation with search 3. exposure to pattern matching 4. exposure to new Lisp forms The work described here
More informationKnowledge Representation for the Semantic Web Lecture 1: Introduction
Knowledge Representation for the Semantic Web Lecture 1: Introduction Daria Stepanova Max Planck Institute for Informatics D5: Databases and Information Systems group WS 2017/18 1 / 32 Overview Organization
More informationTesting is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered.
Testing Testing is a very big and important topic when it comes to software development. Testing has a number of aspects that need to be considered. System stability is the system going to crash or not?
More informationDeclarative Semantics for Revision Programming and Connections to Active Integrity Constraints
Declarative Semantics for Revision Programming and Connections to Active Integrity Constraints Luciano Caroprese 1 and Mirosław Truszczyński 2 1 Università della Calabria, 87030 Rende, Italy, caroprese@deis.unical.it
More informationModule Road Map. 7. Version Control with Subversion Introduction Terminology
Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology
More informationIntroduction. A cell can contain any of the following:
Introduction A spreadsheet is a table consisting of Rows and Columns. Where a row and a column meet, the box is called a Cell. Each cell has an address consisting of the column name followed by the row
More informationMetScape User Manual
MetScape 2.3.2 User Manual A Plugin for Cytoscape National Center for Integrative Biomedical Informatics July 2012 2011 University of Michigan This work is supported by the National Center for Integrative
More informationComputer and Programming: Lab 1
01204111 Computer and Programming: Lab 1 Name ID Section Goals To get familiar with Wing IDE and learn common mistakes with programming in Python To practice using Python interactively through Python Shell
More informationOpen a new Excel workbook and look for the Standard Toolbar.
This activity shows how to use a spreadsheet to draw line graphs. Open a new Excel workbook and look for the Standard Toolbar. If it is not there, left click on View then Toolbars, then Standard to make
More informationAn integrated Graphical User Interface for Debugging Answer Set Programs
An integrated Graphical User Interface for Debugging Answer Set Programs Philip Gasteiger 1, Carmine Dodaro 2, Benjamin Musitsch 1, Kristian Reale 2, Francesco Ricca 2, and Konstantin Schekotihin 1 1 Alpen-Adria-Universität
More informationMulti-paradigm Declarative Languages
Michael Hanus (CAU Kiel) Multi-paradigm Declarative Languages ICLP 2007 1 Multi-paradigm Declarative Languages Michael Hanus Christian-Albrechts-University of Kiel Programming Languages and Compiler Construction
More informationMTAT : Software Testing
MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Spring 2013 Dietmar Pfahl email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture
More informationArtificial Intelligence
Torralba and Wahlster Artificial Intelligence Chapter 8: Constraint Satisfaction Problems, Part I 1/48 Artificial Intelligence 8. CSP, Part I: Basics, and Naïve Search What to Do When Your Problem is to
More informationHomework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon)
CS121 Introduction to Artificial Intelligence Winter 2011 Homework #6 (Constraint Satisfaction, Non-Deterministic Uncertainty and Adversarial Search) Out: 2/21/11 Due: 2/29/11 (at noon) How to complete
More informationActiveBPEL Fundamentals
Unit 22: Simulation ActiveBPEL Fundamentals This is Unit #22 of the BPEL Fundamentals course. In past Units we ve looked at ActiveBPEL Designer, Workspaces and Projects, created the Process itself and
More informationAutomata Theory for Reasoning about Actions
Automata Theory for Reasoning about Actions Eugenia Ternovskaia Department of Computer Science, University of Toronto Toronto, ON, Canada, M5S 3G4 eugenia@cs.toronto.edu Abstract In this paper, we show
More information7 The Integrated Debugger
7 The Integrated Debugger Your skill set for writing programs would not be complete without knowing how to use a debugger. While a debugger is traditionally associated with finding bugs, it can also be
More informationLogic and Computation
Logic and Computation From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world. This is
More informationLecture Notes on Liveness Analysis
Lecture Notes on Liveness Analysis 15-411: Compiler Design Frank Pfenning André Platzer Lecture 4 1 Introduction We will see different kinds of program analyses in the course, most of them for the purpose
More informationSemantic Forcing in Disjunctive Logic Programs
Semantic Forcing in Disjunctive Logic Programs Marina De Vos and Dirk Vermeir Dept of Computer Science Free University of Brussels, VUB Pleinlaan 2, Brussels 1050, Belgium Abstract We propose a semantics
More informationPart I Logic programming paradigm
Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two
More informationExample: Map coloring
Today s s lecture Local Search Lecture 7: Search - 6 Heuristic Repair CSP and 3-SAT Solving CSPs using Systematic Search. Victor Lesser CMPSCI 683 Fall 2004 The relationship between problem structure and
More informationConstraint (Logic) Programming
Constraint (Logic) Programming Roman Barták Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic bartak@ktiml.mff.cuni.cz Sudoku Combinatorial puzzle, whose goal is to enter
More informationBuilding and Running a Simple UML RT Model in RSARTE
Building and Running a Simple UML RT Model in RSARTE Mattias Mohlin Senior Software Architect IBM In this tutorial we will learn how to use RSARTE for transforming a simple UML RT model into C++ code compiling
More informationAn Abductive Framework for General Logic Programs and other Nonmonotonic Systems
An Abductive Framework for General Logic Programs and other Nonmonotonic Systems Gerhard Brewka Kurt Konolige GMD, Postfach 12 40 SRI International 5205 Sankt Augustin, Germany 333 Ravenswood Ave Menlo
More informationExternal Propagators in WASP: Preliminary Report
External Propagators in WASP: Preliminary Report Carmine Dodaro 1, Francesco Ricca 1, and Peter Schüller 2 1 Department of Mathematics and Computer Science University of Calabria, Italy {dodaro,ricca}@mat.unical.it
More informationAnswer Set Programming
V. Answer Set Programming 1 Answer Set Programming Answer Set Programs Answer Set Semantics Implementation Techniques Using Answer Set Programming V. Answer Set Programming 2 Example ASP: 3-Coloring Problem:
More informationFinding a winning strategy in variations of Kayles
Finding a winning strategy in variations of Kayles Simon Prins ICA-3582809 Utrecht University, The Netherlands July 15, 2015 Abstract Kayles is a two player game played on a graph. The game can be dened
More informationLecture Notes on Memory Layout
Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,
More informationAdvanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras
Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 16 Cutting Plane Algorithm We shall continue the discussion on integer programming,
More informationIn our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.
Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts
More informationPredicated Software Pipelining Technique for Loops with Conditions
Predicated Software Pipelining Technique for Loops with Conditions Dragan Milicev and Zoran Jovanovic University of Belgrade E-mail: emiliced@ubbg.etf.bg.ac.yu Abstract An effort to formalize the process
More informationSAT-Based Answer Set Programming
SAT-Based Answer Set Programming Enrico Giunchiglia 1, Yuliya Lierler 2, and Marco Maratea 1 1 DIST - Università di Genova, Genova, Italy 2 Institut für Informatik, Erlangen-Nürnberg-Universität, Germany
More informationThe DLV Java Wrapper
The DLV Java Wrapper Francesco Ricca Department of Mathematics University of Calabria, 87030 Rende (CS), Italy ricca@mat.unical.it Abstract. Disjunctive logic programs are a powerful tool in knowledge
More informationComputer Science Technical Report
Computer Science Technical Report Feasibility of Stepwise Addition of Multitolerance to High Atomicity Programs Ali Ebnenasir and Sandeep S. Kulkarni Michigan Technological University Computer Science
More informationSoftware Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Lecture 13 Path Testing
Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 13 Path Testing Welcome to this session and we will discuss about path
More informationA Pearl on SAT Solving in Prolog (extended abstract)
A Pearl on SAT Solving in Prolog (extended abstract) Jacob M. Howe and Andy King 1 Introduction The Boolean satisfiability problem, SAT, is of continuing interest because a variety of problems are naturally
More informationADD AND NAME WORKSHEETS
1 INTERMEDIATE EXCEL While its primary function is to be a number cruncher, Excel is a versatile program that is used in a variety of ways. Because it easily organizes, manages, and displays information,
More information1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake
Sample ISTQB examination 1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake 2 Regression testing should
More informationInteractive Tourist Map
Adobe Edge Animate Tutorial Mouse Events Interactive Tourist Map Lesson 1 Set up your project This lesson aims to teach you how to: Import images Set up the stage Place and size images Draw shapes Make
More informationControl Structures. Lecture 4 COP 3014 Fall September 18, 2017
Control Structures Lecture 4 COP 3014 Fall 2017 September 18, 2017 Control Flow Control flow refers to the specification of the order in which the individual statements, instructions or function calls
More informationAn Evolution of Mathematical Tools
An Evolution of Mathematical Tools From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world.
More informationtuprolog with exceptions
tuprolog with exceptions Enrico Denti December 16, 2010 Abstract This document describes the new support for ISO Prolog exceptions in tuprolog 2.2. Please notice that this document is not intended to replace
More information(Refer Slide Time: 1:27)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data
More informationLecture 9: Datalog with Negation
CS 784: Foundations of Data Management Spring 2017 Instructor: Paris Koutris Lecture 9: Datalog with Negation In this lecture we will study the addition of negation to Datalog. We start with an example.
More informationCS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM
CS 201 Advanced Object-Oriented Programming Lab 6 - Sudoku, Part 2 Due: March 10/11, 11:30 PM Introduction to the Assignment In this lab, you will finish the program to allow a user to solve Sudoku puzzles.
More informationChapter Twelve. Systems Design and Development
Chapter Twelve Systems Design and Development After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many
More informationEDSL Guide for Revit gbxml Files
EDSL Guide for Revit gbxml Files Introduction This guide explains how to create a Revit model in such a way that it will create a good gbxml file. Many geometry issues with gbxml files can be fixed within
More informationAdvanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras
Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 18 All-Integer Dual Algorithm We continue the discussion on the all integer
More informationDifference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn
Difference Between Dates Case Study 2002 M. J. Clancy and M. C. Linn Problem Write and test a Scheme program to compute how many days are spanned by two given days. The program will include a procedure
More informationspock: A Debugging Support Tool for Logic Programs under the Answer-Set Semantics
spock: A Debugging Support Tool for Logic Programs under the Answer-Set Semantics Martin Gebser 1, Jörg Pührer 2, Torsten Schaub 1, Hans Tompits 2, and Stefan Woltran 2 1 Institut für Informatik, Universität
More informationSolo 4.6 Release Notes
June9, 2017 (Updated to include Solo 4.6.4 changes) Solo 4.6 Release Notes This release contains a number of new features, as well as enhancements to the user interface and overall performance. Together
More informationCS 395T Computational Learning Theory. Scribe: Wei Tang
CS 395T Computational Learning Theory Lecture 1: September 5th, 2007 Lecturer: Adam Klivans Scribe: Wei Tang 1.1 Introduction Many tasks from real application domain can be described as a process of learning.
More informationTable Visualizer (TV)
Table Visualizer (TV) Copyright 1997-2012 Ericsson AB. All Rights Reserved. Table Visualizer (TV) 2.1.4.9 November 27 2012 Copyright 1997-2012 Ericsson AB. All Rights Reserved. The contents of this file
More informationProject and Production Management Prof. Arun Kanda Department of Mechanical Engineering Indian Institute of Technology, Delhi
Project and Production Management Prof. Arun Kanda Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture - 8 Consistency and Redundancy in Project networks In today s lecture
More informationDarshan Institute of Engineering & Technology for Diploma Studies
CODING Good software development organizations normally require their programmers to follow some welldefined and standard style of coding called coding standards. Most software development organizations
More information