- •Preface
- •Contents
- •1 An Introduction to Logic
- •The Purpose of Logic: Philosophical: Computational
- •Logical Inference and Consistency
- •The Propositional Calculus
- •Connectives and Truth Tables
- •Equivalent Statements
- •Disjunctive and Conjunctive Normal Forms
- •Complete Sets of Connectives
- •The Calculus of Indications
- •Venn Diagrams
- •The Predicate Calculus
- •Prenex Normal Form
- •Decidable Fragments of Mathematics
- •The Theory of Dense Linear Order
- •Arithmetic Without Multiplication
- •References and Further Work
- •Exercises
- •2 Integer Programming
- •Linear Programming
- •The Dual of an LP Model
- •A Geometrical Representation of a Linear Programme
- •Integer Programming
- •The Branch-and-Bound Algorithm
- •The Convex Hull of an IP
- •Yes/No Decisions
- •The Facility Location Problem
- •Logical Decisions
- •Set-Covering, Packing and Partitioning Problems
- •Non-linear Problems
- •The Knapsack Problem
- •The Travelling Salesman Problem
- •Other Problems
- •Computational Complexity
- •Problem Classes and Instances
- •Computer Architectures and Data Structures
- •Polynomial and Exponential Algorithms
- •Non-deterministic Algorithms and Polynomial Reducibility
- •Feasibility Versus Optimisation Problems
- •Other Complexity Concepts
- •References and Further Work
- •Exercises
- •3 Modelling in Logic for Integer Programming
- •Logic Connectives and IP Constraints
- •Disjunctive Programming
- •A Geometrical Representation
- •Mixed IP Representability
- •Alternative Representations and Tightness of Constraints
- •Disjunctive Versus Conjunctive Normal Form
- •The Dual of a Disjunctive Programme
- •Splitting Variables
- •Modelling Languages Based On Logic
- •Algebraic Languages
- •References and Further Work
- •Exercises
- •Resolution and Absorption
- •Representation as an Integer Programme
- •The Relationship Between Resolution and Cutting Planes
- •Simplest Equivalent Logical Statement
- •Constraint Logic Programming
- •Modelling in CLP
- •Solving CLP Models
- •Hybrid CLP and IP systems
- •Applications
- •Electrical Circuit Design Using Switches
- •Logical Net Design Using Gates
- •The Logical Analysis of Data (LAD)
- •Chemical-processing networks
- •Other Applications
- •References and Further Work
- •Exercises
- •References
- •Index
22 |
1 An Introduction to Logic |
be incorporated in the subsequent eliminations. Full details of the method, when applied to integer programming models, are referenced in Sect. 2.6.
1.6 References and Further Work
A good introduction to logic is Mendelson [81]. Another text is Shoenfield [101] . Also Langer [72] is a very clear text. Russell and Whitehead [96] give the results of their formalisation. Godel¨ [44] presents his major results. A ‘popular’ description of Godel’s¨ work is Nagel and Newman [85].
The propositional calculus (Boolean Algebra) is due to Boole [18]. Truth tables were invented by Wittgenstein [124] and Post [90] who also investigated complete connectives. The Sheffer stroke is due to Sheffer [99] and the connective arrow due to Peirce [89].
The compact way of converting statements from DNF to CNF is due to Tseitin [107]. Wilson [123] also presents the method.
The calculus of indications is due to Spencer-Brown [103]. The predicate calculus is usually attributed to Frege [39].
The decision procedure for the theory of dense linear order is due to Langford [73] and that for arithmetic without multiplication is due to Presburger [91].
1.7 Exercises
1.7.1 Use a truth table to show that the following statement is a tautology:
((A B) · (A −→ C) · (B −→ C)) −→ C
1.7.2Verify, by means of truth tables the equivalences (1.4) – (1.21).
1.7.3Check that (1.30) represents the statement in Table 1.2.
1.7.4Use De Morgan’s laws to convert the following statement to DNF:
(A B C) · (B C D) · (A B D)
1.7.5Convert the statement in 1.7.4 into DNF by means of the distributive laws and verify, by means of truth tables, that the statements produced in 1.7.4 and 1.7.5 are equivalent.
1.7.6Convert the following statement into DNF by introducing new variables to represent the disjunctive pairs of statements:
1.7 Exercises |
23 |
(X1 X2) · (X3 X4) · (X5 X6) · · · (X2n−1 X2n )
1.7.7Verify, by means of truth tables, (1.38) – (1.43).
1.7.8Show that ‘|’ and ‘↓’ are the only possible complete connectives of two vari-
ables.
1.7.9Simplify the following expressions:
i.
ii.
iii.
1.7.10Show that applied to any number of statements is a complete connective.
1.7.11Represent the following statements using only the connective :
i.(A B C) → (D E)
ii.(A −→ (B C)) ↔ (B · A)
iii.(A · B · C) B · A)
1.7.12Represent the statement 1.7.11 (i) using a Venn diagram.
1.7.13Represent the following statement using the predicate calculus:
Some animals are mammals but not all animals are mammals although all mammals are animals.
1.7.14 Represent the following statement by the predicate calculus:
24 1 An Introduction to Logic
Ever y even number greater than 2 is ex pressible as the sum o f two prime numbers.
Even numbers and prime numbers should be expressed in terms of more elementary predicates.
1.7.15 Is the following statement true?
x y z(x + y <= z · 2x − 3y z · x > z)
if (i) x, y R (ii) x, y Z.
1.7.16 Show that (1.83) of Example 1.9 is true if the variables are real (or rational).