Skip navigation

Bookboon.com Download free eBooks and textbooks

Choose a category

Applications of Prolog

Applications of Prolog
4.1 (11 reviews)
ISBN: 978-87-7681-514-1
1 edition
Pages : 203
Price: Free

Download for FREE in 4 easy steps...

We are terribly sorry, but in order to download our books or watch our videos, you will need a browser that allows JavaScript.
After entering your email address, a confirmation email will be sent to your inbox. Please approve this email to receive our weekly eBook update. We will not share your personal information with any third party.

This is a Premium eBook - get it free for 30 days

You can also read this in Bookboon.com Premium

Summary

The book refers to three different Prolog source files.

300+ Business books exclusively in our Premium eReader

  • No adverts
  • Advanced features
  • Personal library
More about Premium

Buy this eBook

Buy now

Subscribe to all 800+ eBooks

Start free trial 30 day FREE trial

About the book

  1. Description
  2. Preface
  3. Content
  4. About the Author

Description

The book refers to three different Prolog source files.

Click here to see the files.

Preface

This book is the second volume by the author on Prolog programming and its applications written for Ventus. Whereas in the first book [9], specific Prolog programming techniques were explained, in this volume we discuss some areas where Prolog can be fruitfully employed.

Both books owe their existence to the recognition that the higher educational system (in the UK) does not offer enough opportunities for students to experience the satisfaction associated with successfully completing a technical task. In the writer’s opinion, the learning experience of today’s average student is dominated too much by assessments.

The book comprises four chapters, the first three of them are devoted to Prolog in Artificial Intelligence (AI). The last one is on text processing using Prolog with LATEX in mind.

The first chapter solves an intriguing AI puzzle which was first published in the New Scientist magazine [1] in 2003. The Prolog solution presented here combines problem specific knowledge using Finite Mathematics with the well-know AI technique ‘generate-and-test’. Even though this chapter did not emanate from my teaching activities, the presentation follows a well-tested pattern: the problem is broken down into manageable and identifiable subproblems which then are more or less readily implemented in Prolog. Many interesting hurdles are identified and solved thereby. The availability of unification as a pattern matching tool makes Prolog uniquely suitable for solving such problems. This first chapter is an adaptation of work reported in [7]. Further recent developments on solving this problem can be found in [4].

The second and third chapters are respectively devoted to blind search and informed search. The material presented in them can be used in lectures to teach Prolog for AI as well as in AI lectures themselves. I have tried to compile a varied and interesting mixture of applications most of which won’t be available anywhere else. Some of the problems considered here served over the years in my lectures as coursework material, though, for various reasons, the discussion is more thorough here.

The fourth chapter is the least conventional one for a Prolog book. It is in two parts.

1. A tool is developed in Prolog for manipulating LATEX files.

2. Prolog is used to generate LATEX commands for drawing parametric curves in documents written in LATEX.

I also explain here how an SWI-Prolog program can be embedded into a Linux shell script, removing thereby the need for the user to deal with Prolog directly. This results in applications of direct practical interest.

For the maximum benefit (and fun) readers should work through parts of this book interactively with SWI-Prolog. I have tried to retain the experimental and exploratory style of the first volume [9] even though sometimes digression to more theoretical topics was unavoidable.

There are 54 exercises in this book, 32 of them are solved in Appendix A. The last chapter is somewhat of an exception since there the exercises themselves are the main vehicle for conveying the subject material. Therefore, detailed sample solutions are provided for 6 of the 7 exercises in that chapter.

The associated software (Prolog sorces, Linux shell scripts, data files) listed in Appendix B is freely available from the Ventus website. All three systems used here (Linux, SWI-Prolog, LATEX) are freely available on the Internet.

Content

Preface

1. Enigma 1225: Rows are Columns
1.1 A Puzzle
1.2 First Thoughts
1.3 Symbolic Solutions
1.4 Implementation Details
1.4.1 Design Decisions
1.4.2 Admissible Permutations
1.4.3 Generating SymbolicMatrices
1.4.4 Permuting Rows
1.4.5 Transposing
1.4.6 MostGeneral Patterned SymbolicMatrices
1.4.7 Distinct Rows
1.4.8 Evaluating Patterns
1.4.9 Computing Totals
1.4.10 Complete Implementation
1.5 Enhanced Implementation
1.5.1 What isWrong with the Present Implementation?
1.5.2 Some Results fromthe Theory of Permutations
1.5.3 Generating Representative Permutations
1.5.4 Finishing Touches

2. Blind Search
2.1 Digression on theModule System in Prolog
2.2 Basic Search Problem
2.3 Depth First Search
2.3.1 Naive Solution
2.3.2 Incremental Development Using an Agenda
2.4 Breadth First Search
2.5 Bounded Depth First Search
2.6 Iterative Deepening
2.7 The Module blindsearches
2.8 Application: A Loop Puzzle
2.8.1 The Puzzle
2.8.2 A ‘Hand-Knit’ Solution
2.8.3 Project: Automating the Solution Process
2.8.4 Project: Displaying the Board
2.8.5 Complete Implementation
2.8.6 Full Board Coverage
2.8.7 AvoidingMultiple Solutions
2.8.8 Variants of the Loop Puzzle
2.9 Application: The Eight Puzzle
2.9.1 The Puzzle
2.9.2 Prolog Implementation

3. InformedSearch
3.1 The Network Search Problemwith Costs
3.1.1 CostMeasures
3.1.2 The A–Algorithm
3.1.3 Iterative Deepening A and its Admissible Version
3.2 Case Study: The Eight Puzzle Revisited
3.2.1 The Heuristics
3.2.2 Prolog Implementation
3.3 Project: Robot Navigation
3.4 Project: The Shortest Route in aMaze
3.4.1 Suggested Implementation Details
3.5 Project: Moving a Knight

4. Text Processing
4.1 Text Removal
4.1.1 PracticalContext
4.1.2 Specification
4.1.3 Implementation
4.1.4 Using a Linux Shell Script
4.1.5 Application: RemovingModel Solutions
4.2 Text Generation and Drawing with LATEX
4.2.1 Cycloids
4.2.2 Task
4.2.3 Solution
4.3 Exercises

A. Solutions of Selected Exercises
A.1 Chapter 1 Exercises
A.2 Chapter 2 Exercises
A.3 Chapter 3 Exercises
A.4 Chapter 4 Exercises

B. Software

References

Index

Errata to Volume 1

About the Author

Dr Attila Csenki is a Lecturer in Mathematics at the University of Bradford.
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with EU regulation.