Survey

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Survey

Document related concepts

Transcript

Induction Induction • Induction is the name given to a problem solving technique based on using the solution to small instances of a problem to solve larger instances of a problem. In fact we can solve problems of arbitrary size. Size • We need to measure the "size" of an instance of a problem. E.g. with matchstick problems, we might call the size the number of matches. It is not always obvious what the size should be for some types of problems. We will see some examples later. The size must be non – negative i..e whole numbers 0, 1, 2, … We call these numbers "natural numbers", as they are naturally used for counting. Zero Note that some mathematicians do not include 0 in the natural numbers. There are good reasons why we should include 0. Zero has important significance in maths (and the history of maths). One reason in when counting the size of sets, the null set is defined to have size of 0. We shall see examples of including 0 later. Two step process. • Two step process. We solve the problem in two steps. First we solve the problem instance of size 0 (not size 1). This is usually very easy (often called trivial). Second, we show how to solve, a problem of size n+1 (where n is an arbitrary natural number), given we have a solution to a problem instance of size n. i.e. we can solve problems of a size greater by 1. The first step is called the base case of the basis of induction. The second step is the induction step. Sizes 0, 1, 2, … • By this process, we can solve problems of size 0. We also know how to solve instances of size 1 (as it is one larger than 0) We can apply the induction step to solve problems of size 2 and so on. i.e. the induction step allows us to solve problems of size one greater than the current size problem. By repeating this process we can solve problems of any size. Problem statement – cutting the plane. • Straight lines are drawn across a sheet of paper, dividing the paper up into regions. Show that it is possible to colour each region black or white, so that no two adjacent regions have the same colour. (draw the scenario on board) p86 of book. Outline • The number of lines can be the size of a problem. We have to show how to solve the problem when there are zero lines. We have to show how to solve a problem when there are n+1 lines, assuming we can solve the problem with n lines. Let us call the situation when no two adjacent regions have the same colouring "a satisfactory colouring" Zero case (base case) • This is trivial. With 0 lines, there is one region. This can be coloured black or white and will be a satisfactory colouring. Induction step • Assume a number of lines are drawn on the paper, and the regions have a satisfactory colouring. Now add an additional line (draw on board). This will divide some existing regions into two new regions, Which will have the same colour, therefore the colouring is not satisfactory. The task is to show how to modify the colouring so that it does become satisfactory. The key, or the trick. • The key, or the trick. Inverting any satisfactory colouring will also give a satisfactory colouring. i.e. changing black regions for white, and vice versa will also give be satisfactory) Let us call the two sides of the new line left and right. Inverting colours in either region will still give a satisfactory colouring in that half (left or right). Hence, inverting the colours in one half will guarantee a satisfactory colouring for the whole piece of paper. Non- deterministic • The algorithm for colouring is non deterministic in several ways. 1. the initial colouring is not specified (could be black or white). 2. the ordering of the lines is unspecified (a bit like the abstraction stage with the chocolate bar). 3. the naming of the left and right regions is not specified (symmetry). This mean the final colouring can be arrived at in different ways, but it is guaranteed to be satisfactory. Triominoes – problem statement. • A square piece of paper is divided into a grid of size 2^n by 2^n, where n is a natural number. Individual squares are called grid squares. One grid square is covered. A triomino is an "L" shape made of 3 gird squares. Show that it is possible to cover the remaining grid squares. Try this yourself if you like. Size and Base case • The obvious size is n. The base case is when n=0, and the grid has size 1 by 1. This square will of course be covered. The base case is solved. Inductive Step • Given a gird of 2^(n+1) by 2^(n+1). Given that we know how to cover a 2^n by 2^n grid, how do we use this to help us cover a gird size larger by one. We make the inductive hypothesis that this is possible. The key • A grid of size 2^(n+1) by 2^(n+1) can be divided into 4 girds of size 2^n by 2^n. By drawing horizontal and vertical lines. These 4 regions can be called bottom-left, bottom-right, top-left and top-right. One square is already covered, We may assume this is bottom left – why? Induction 2 The bottom left grid is of size 2^n by 2^n, of which one square has already been covered. By the induction hypothesis, the remaining square in the bottomleft grid can be covered. This leaves us having to cover the remaining 3 grids. None of these have any squares covered. We can apply the inductive hypothesis if just one of the squares in each of the 3 remaining grids is covered. This can be done by placing a triomino at the junction of the 3 grids. This tells us how the task can be done. If 1 was the base case. • What if we had chosen n = 1 to be our base case? This is also easy to do. How? However, our proof has then left out the 0 case, so we would still need to prove that separately. However including 0 provides a slightly deeper insight. "Humans" start counting at 1, Computer Scientists and mathematicians start counting at 0 6.4 Looking for patterns • Induction used in experimental sciences, refers to the process of getting general laws by collecting a set of observed data (think of Newton and Galileo) In simple terms, induction is about looking for patterns. Laws of Nature • Laws based on the process of observation introduce new knowledge. In experimental sciences, these laws are only probably true. They are tested by prediction and discarded if the predictions are false. Deduction • In contrast, deduction in the process of inferring laws from existing laws. Deductions are guaranteed to be true provided the laws on which they are based are true. (and the deductive process is sound). These laws add nothing new, in some sense, and are simply reformulations of existing laws (can you think of any examples). Mathematical Induction • Mathematical induction is a combination of induction and deduction. It is a process of looking for patterns, making a conjecture about patterns, And then testing if the conjecture can be deduced from existing knowledge. Guess and verify is a summary of mathematical induction. Guessing the formula is a conjecture. Verification is the process of deducing if the guess is correct. Matchsticks again • Remember the game where we could remove 1 or 2 matches. We "discovered" that piles containing 0, 3, 6, matches are losing positions. Other positions (1, 2, 4, 5, 7, 8) are winning positions. There seems to be a pattern. Losing positions are a multiple of 3, winning positions are not. This is a conjecture about all positions from observations made on just 9 positions. We can verify this conjecture by using mathematical induction. Size • We could measure size by the number of matches. Let us measure size as the number of matches divided by 3, rounded down to the nearest natural number. i.e. a pile of 0, 1, 2 has size 0; a pile of 3, 4, 5, has size 1 The inductive hypothesis therefore is, a pile of 3n matches is a losing position, and a pile of 3n+1 or 3n+2 is a winning position. Basis • The base case for induction is when n equals 0. A pile of 0 matches is a losing position. i.e. we cannot move. A pile of 1 or 2 matches is a winning position. Inductive step • We assume a pile of 3n matches is a losing position, And a pile of 3n+1 or 3n+2 matches is a winning position. We have to show that a pile of 3(n+1) matches is a losing position, And a pile of 3(n+1) + 1 or 3(n=1) + 2 is a winning position. Argument 1 • Suppose there are 3(n+1) matches. If we remove 1 or 2 matches, we leave 3(n+1) -1 or 3(n+1) -2 behind. i.e. leaving 3n+2 or 3n+1 which are wining positions. Hence 3(n+1) is a losing position. Argument 2 • Suppose there are 3(n+1)+1 or 3(n+1)+2. By taking 1 match in the first case and 2 in the second case, This leaves 3(n+1) matches which is a losing position! Hence, 3(n+1)+1 or 3(n+1)+2 are both winning positions. 6.5 The need for proof • It is vital, when using induction, that a conjecture is properly verified. It is tempting to generalize from a few cases, to form a conjecture which is not true. Give the example of Fermat’s last theorem – when do we stop testing? There is definitely a need for rigorous proof. Set the dividing circle as an exercise. Dividing a circle • Draw the diagram. Given n points on the circumference of a circle, Chords are drawn between points, forming regions. The points are chosen so crossing points are distinct. How many regions does the connecting lines divide the circle. Number of portions • The number of portions is 1, 2, 4, 8, … Suggesting, in general 2^(n-1) For n=5, we get 16, However for n=6 we get 31, did we miscount? Where did we go wrong • We should have begun with n=0. But this would give us ½ regions! This does not make sense. Also the case where n=6 is an exception, WHY? Correct formula. • The correct formula is difficult to prove, but is here for the sake of completeness. (n^4 -6n^3+23n^2-18n+24)/24 This sequence is 1, 2, 4, 8, 16, 31, 57, 99, 163, 256, 386 Just out of interest, how would you attempt to prove this? How would you write a Java program to model the adding of an extra point? 6.6 From Verification to Construction • In maths texts, induction is often used to verify formula. Verification is fine once we have a formula to verify, But we need a formula to verify in the first place. Induction in computer science is a fundamental principle in the construction of computer programs. Sum kth powers. • We want to sum the kth power of the first n natural numbers. The formula is (S.n denotes a function) S.n = 1 + 2 + 3 + …+ n = ½ n(n+1) We can also do squares and cubes. Verification is good if we know the answer, but what if we do not know the answer. Creative Process • Constructing solutions to non trivial problems involves a creative process. This means some "guess work" and intelligent input if required, And trial and error cannot be completely eliminated. However, we can reduce the amount of guesswork by replacing it by mathematical calculation. I imagine that there is no general method or algorithm to solve this problem in general. And I can think of cases where it is impossible. Can you? Closed Formula • Closed Formula We can use induction to construct closed formulae for summations The idea is to find a pattern, formulate it mathematically, and then verify the pattern. Zero case. Of course we should also consider the 0 th case. (can you write this down?) Guesswork • For the sum of 4th powers, we may guess the closed formula is of the form of a 5th degree polynomial (called a quintic). We then use induction to calculate the coefficients. This calculation is quite long, so let us just consider 1st powers. You may already know how to derive this formula, But please be patient, as this is just an illustration. Conjecture • Conjecture We make the conjecture that the required form is a 2nd degree polynomial (call a quadratic) a+bn+cn^2 and then calculate the coefficients a, b, c. S.n = 1 + 2 + … + n S.n means the sum of the numbers up to n. P.n is the proposition S.n = a + b.n + cn^2 Calculation of a • P.0 {definition of P} S.0 = a + b.0 + c.0^2 {S.0 = 0 i.e. the sum of an empty set of numbers is zero} 0=a Thus, the base case has allowed us to deduce that a=0. We make the inductive hypothesis that (n<=0 && P.n ) == true. Calculation of b and c • Calculation of b and c P.(n+1) {definition of P, a = 0} S.(n+1) = b(n+1) + c(n+1)^2 {S(n+1) = S.n + n + 1} S.n + n + 1 = b(n+1) + c(n+1)^2 {S.n = b(n) + c(n)^2} b.n + cn^2 + n + 1 = b(n+1) +c(n+1)^2 {arithmetic} Cn^2 + (b+1)n + 1 = cn^2 + (b+2c)n + b + c {compare coefficients of powers of n} c=c && b+1 = b+2c && b + c {arithmetic} ½ = c && ½ = b Summary • Thus 1 + 2 + …+ n = 0 + ½ n + ½ n^2 We can see how to calculate sums of other powers from this. The steps are 1. postulate a summation is a polynomial in n with degree m+1 2. use induction with the fact S.0 = 0 and S.(n+1) = S.n + (n+1)^m, to determine a system of simultaneous equations in the coefficients. 3. Finally solve the system of equations. Remark • In the case of 1st powers, there is an easy way to do this. Can you do it? It can also be interpreted graphically. Fake coin detection Introduction • Suppose we are given a number of coins, each identical, at most one is fake and the others are genuine. All genuine coins have the same weight, And the fake coin has a different weight from the genuine coins. How can we use a pair of scales to detect the fake coin? This problem is not well defined!!! (think about the business students) Problem formulation • There are 3 possible outcomes when a pair of scales is used; The scales may tip left or right or balance. With n comparisons, there are 3^n different outcomes. Given m coins, there are 1+2m possible outcomes. 1 possibility is all coins are genuine. There are 2 ways each of the m coins can be fake. 1+2m = 3^n If the number of coins m, is greater than ½ (3^n -1), it is impossible to find a fake coin if it exists. Conjecture • Given ½ (3^n -1) coins (of which at most one is fake), it is possible to identify the fake coin, if it exists, using at most n comparisons. n=0, the conjecture is Jtrue n=1, the conjecture is false!! If we have one coin, how can we tell if it is genuine or not, we have nothing to compare it with. Modify conjecture. Additional coin • Let us modify our conjecture, Assume we have an additional reference coin, that we know to be genuine. The problem is to construct an algorithm, which will identify the fake coin (if it exists), or determine all the coins are genuine. 6.7.2 Problem solution basis • With 0 comparisons, we know all the coins in a collection of ½ (3^0-1) are genuine, The base case, n=0 is solved. Inductive step • Let c.n denote ½ (3^n – 1). By induction, we may assume that a fake coin (if it exists), can be found among c.n coins using a maximum of n comparisons. We have to show how to find a fake coin among c(n+1) coins using at most n+1 comparisons. First Comparison 1 • To be able to gain any information from a comparison, The number of coins on the left and right scales must be the same. If the scales balance, then none of the coins on the scales is fake. We can then discard these coins, and look at the coins on the table. Hence c.n coins must remain on the table as c.n is the maximum number of coins among which a fake coin could be detected with n comparisons. First Comparison 2 • This also tells us how many coins to put on the scales i.e. the difference between c(n+1) and c.n c(n+1) = 3c.n+1 (by arithmetic) so, c.(n+1)-c.n = 3^n This is an odd number, which we cannot put on the scales, However we can make this even by using the reference coin (which we have in addition to the c(n+1) coins). We conclude that in the first comparison, c.n+1 coins should be put on each side of the scales.