33
© Leong Hon Wai, 2003-2005 (Problem Solving) Page 1 Problem Solving thru Programming @ HCJC Creative Problem Solving in Computing Leong Hon Wai Department of Computer Science School of Computing National University of Singapore 8 March 2003 http://www.comp.nus.edu.sg/~leonghw/ [email protected]

Problem Solving thru Programming @ HCJC

  • Upload
    dobry

  • View
    38

  • Download
    1

Embed Size (px)

DESCRIPTION

Problem Solving thru Programming @ HCJC. Creative Problem Solving in Computing Leong Hon Wai Department of Computer Science School of Computing National University of Singapore 8 March 2003 http://www.comp.nus.edu.sg/~leonghw/ [email protected]. Outline. - PowerPoint PPT Presentation

Citation preview

Page 1: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 1

Problem Solving thru Programming @ HCJC

Creative Problem Solving

in Computing

Leong Hon Wai

Department of Computer Science

School of Computing

National University of Singapore

8 March 2003

http://www.comp.nus.edu.sg/~leonghw/

[email protected]

Page 2: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 2

Outline

Polya’s Problem Solving Framework Four Stages in Problem Solving Solving Problems by Asking More Questions! Examples

Is Problem Solving still important Now we have very fast computers, grids

Any real differences between O(n2) and O(n lg n) Some examples: Google and the Human Genome Project

Page 3: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 3

Quote

A great discovery solves a great problem,

but there is a grain of discovery

in the solution of any problem.

Your problem may be modest;

but if it challenges your curiosity and

bring into play your inventive faculties,

and if you solve it by your own means,

you may experience the tension and

enjoy the triumph of discovery.

G. Polya, 1945

Page 4: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 4

Four Stages of Problem Solving (G. Polya)

G. Polya, “How to Solve It”, Princeton Univ Press, 1945

Stage 1: Understanding the Problem

Stage 2: Devising a Plan

Stage 3: Carrying out the Plan

Stage 4: Looking Back

The most widely cited reference

for problem solving in all disciplines

Page 5: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 5

More on “Four Stages”

Page 6: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 6

Problem 1: An “Impossible Problem”

Quick: Get the calculator… Not so useful…

Polya Question: Look at the data? (stare at it !!) (111…1)(100…05) + 1 ???? Let’s call it “something-big”

PQ: What is the unknown? Is it an integer? …a real number?

(11…1) (100…05) + 1100 1’s 99 0’s

What is

Page 7: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 7

An “Impossible Problem” (2)

PQ: Can you re-state the problem? or unknown? To find the square-root of “something-big plus 1”

PQ: What is that “something-big”? Don’t know, but it is “(square of ‘some-other-thing’) minus 1”

PQ: Shall we introduce notations: “ y2 – 1 ” = (y + 1)(y – 1) It is also (11…1)*(100…05)

(11…1) (100…05) + 1100 1’s 99 0’s

What is

Page 8: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 8

Something-big plus 1

PQ: Can we try some special cases?

(1)(15)+1 = 1 (3 * 5)+1 = (4-1)(4+1)+1 = 4**2-1+1

(11)*(105)+1 = 11*(99+6)+1 = 11*3*(33+2)+1

= 33*(33+2)+1 = (34-1)(34+1)+1 = 34**2-1+1

(111)*(1005)+1 = 111*(999+6)+1

= 333*(333+2)+1 = (334-1)(334+1)+1 = 334**2

(1111)*(10005)+1 = 1111*(9999+6)+1

= 3333*(3333+2)+1 = (3334-1)(3334+1)+1

= 3334**2

Get the pattern? … can u prove it?

Page 9: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 9

Looking Back

Looking Back: Where is the Key Idea? (y2 - 1) = (y-1)(y+1) !!!

Can I do it differently? Define something -- maybe 111…1 (111….1) (1000…05) + 1 So, let X = 111…1 Something-big + 1 = X (999…9 + 6) + 1

= X (9X + 6) + 1 = 9X2 + 6X + 1

= (3X+1)^2 So, y = 3X+1. Viola!!!

Page 10: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 10

Problem 2: Inverting the Triangle-of-Coins

Move as few coins as possible to “invert” the

triangle of coins

Define h = “height of triangle”, m = “# of coins to move”

Question: What is the value of m, when h = 420 ?

h

...students with 4A’s in 2003 A-levels, I mean….

Page 11: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 11

Inverting the Triangle of Coins (1)

Try some small instances… h = 1

TRIVIAL: h = 1 m = 0

Page 12: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 12

Inverting the Triangle of Coins (2)

Now, try something bigger… h = 2

TRIVIAL: h = 1 m = 0 h = 2 m = 1

Page 13: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 13

Inverting the Triangle of Coins (3)

Now, try something bigger… h = 3

RESULTS: h = 1 m = 0 h = 2 m = 1 h = 3 m = 2

Viola!

Page 14: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 14

Inverting the Triangle of Coins (4)

Now, try something bigger… h = 4

RESULTS: h = 1 m = 0 h = 2 m = 1 h = 3 m = 2 h = 4 m = 3

Done! m=3

Is there a pattern?

What about h = 5? h = 420?

Page 15: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 15

Need a Different Perspective!! (2)

Let’s see….

How about… seeing them TOGETHER!

Let’s move IT…..INSIGHT !!! Maximize OVERLAP Minimize “Moves”

Page 16: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 16

Need a Different Perspective!!

Let’s see….

How about… seeing them TOGETHER!

Let’s move…..

Page 17: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 17

New Insight !! Maximize Overlap

Now, try for h = 5

Page 18: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 18

New Insight !! Maximize Overlap

There are 3 sides in a triangle. At each side, we have a “non-overlapping” triangle! Denote their heights (a,b,c)

(0,1,3) (1,1,2)

(0,0,4)

Page 19: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 19

Maximizing Overlap is Easy…

Try for previous cases h = 3

“Non-overlapping triangles with hts (a,b,c) For h=2, we have (0,0,1) m=1 For h=3, we have (0,1,1) m=2 For h=4, we have (1,1,1) m=3 For h=5, we have (1,1,2) m=5 For h=6, we have (1,2,2) m=7 For h=7, we have (2,2,2) m=9 For h=8, we have (2,2,3) m=12

Page 20: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 20

Looking Back….

Can work out for h = 9, 10, 11, 12, …, 420

ANSWER is NOT so important,

the METHOD IS

Where is the Key Step ?

Why was it not apparent to us at the beginning ?

How did we get to this step ?

Page 21: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 21

References…. for More readings...

G. Polya, “How to Solve It”, Princeton Univ Press (1945), re-published by Penguin Books (1990)

W. A. Wickelgren, “How to Solve Problems”, W. H. Freeman, 1974.

R. R. Kadesch, “Problem Solving Across the Disciplines”, Prentice Hall, 1997.

Edward De Bono, Various Different Titles (from Lateral Thinking, to Teaching

Thinking, to Hats, to Simplicity).

[EvAn] Everywhere and Anywhere -- Use your imagination!.

Page 22: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 22

Problem Solving in Computing – Do we need it?

Is there a need for Problem Solving? We have invented many algorithms over the past 50 yrs There are many textbooks on algorithms already Don’t we already have all the algorithms we need?

Why not let faster computer do the job? Computer are getting faster all the time (Moore’s Law) Current Speed: 2 GigaFLOP (2 billion operations / sec)

3GigaFLOP? 10 GigaFLOP?

What about parallel processing? GRID Computing? What is the largest GRID we have?

11 Teraflop (NSF funded @ 4 centers) ?

Page 23: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 23

Let’s look at a popular example: Google

Google: One of the best (if not the best) search engines Google searches 3 x 109 pages (3,083,324,652)

How big is 3 x 109 anyway?The size of the human genome (in terms of base-pairs)

If we print out 3 x 109 characters on A4 paper, it will be (3x109 / (66x80)) * 5 / (500x100) metres = 56.8 metres

about a 20-storey HDB block high!

Assumptions:• 1 A4 page = 66 rows x 80 columns 210 = 1000• 500 A4 page = 5cm (in height) 1 yr = 3 x 106 sec

Page 24: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 24

O(n2) vs O(n lg n) algorithm

If Google wants to sort the pages (say by Title) Here n = 3 x 109 (webpages)

If we use an O(n2) algorithm On a very fast computer (say, 3 GigaFLOP)

(3 x 109 ) (3 x 109 ) / (3 x 109) (3 x 107) = 100 years30 years if it is 10 GigaFLOP

On world’s largest GRID Cluster: 11 x 1012 (teraFLOP)3 months (assuming no time lost among cluster)

If we use an O(n lg n) algorithm (3 x 109) x 30 / (3 x 109) = 30 seconds Don’t need GRID

Page 25: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 25

Other examples of O(n2) and O(n lg n)

FM (higher quality sound) Uses a technique called Fast Fourier Transform (FFT) Old method of doing transform – O(n2) with FFT – O(n lg n)

Page 26: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 26

Human Genome Project

Page 27: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 27

Human Genome Project

Human Genome Project (1986-2003) 3 x 109 base-pairs 24 chromosomes 30K – 40K genes (ave 3000 bp each)

Goals: Identify the genes, DNA sequence Develop tools to help data analysis Interpret results in biologically meaningful manner

Page 28: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 28

HGP – A Reverse Engg. Problem

Given 3 GB of mass storage (24 partitions) Unknown OS, file format Known encoding scheme Files are fragmented Disk has active and deleted blocks Hardware design & system BIOS also on disk

Task: Recover and document about 35,000 programs that represent the OS, Figure out the low level control code & schematic description of how computer is put together;

Page 29: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 29

Computer Scientists contributes…

Human Genome Project Original Target: end in 2005 or beyond

Enter many prominent computer scientists Powerful algorithmic techniques, Divide and conquer paradigms Scalable methods for speed-ups (eg: DNA Arrays)

Outcome June 2000 – Working Draft Sequences Feb 2001 – published 2003 – expect high quality version completed !!

Page 30: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 30

Efficient Algorithms with Arrays…

Problem: You have planned out a very long route that passed through

a number of intermediate cities labelled 1,2,…,n. You are given the distances d(j) where d(j) is the distance between city j and j+1.

You receive a lot of queries of the form

What is the distance between city a and city b?

Device a scheme so that so that you can answer all of these queries in O(1) time. (constant time).

Page 31: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 31

The Most Important Message of the Day…

ASK QUESTIONS Do I understand the problem ?

Do I understand their solution ?

Why does the solution work ?

Why did he choose to do this or that ?

How can I invent such a solution ?

Can I do it differently ?

Can I do it more elegantly ?

Don’t just understand the solution, but try also to understand the motives

and procedures of arriving at the solution.

Page 32: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 32

Message for the Day (2)

Running time MATTERS

There are still lots of computational problems left to be solve, and waiting to be solved well.

Page 33: Problem Solving thru Programming @ HCJC

© Leong Hon Wai, 2003-2005(Problem Solving) Page 33

THANK YOU VERY MUCH

And I hope to work with

some of you in the future