CS 422 Fall 2000,
Instructor: Jeffrey Horn
General
Student Concerns: Colloquia
and Seminars Local
Events NMU
CS Employment
What's REALLY New:
-
NOTICE!! Class on Friday, Nov.
10, is MOVED to Jamrich 206
-
OK, actually class is replaced by my presentation
and demo to the Internet 2 mini-conference being held tomorrow.
This involves both NMU and MTU presenters and attendees.
-
But since I will be discussing GENETIC ALGORITHMS,
and since I have decided that the GA will be our approximation algorithm
to be applied to some NP-Complete problems, I think you must go!
-
Also, I plan to hand out another assignment there
(I mean for you guys, not them!)
-
The presentation begins at 1:30pm and will last only
about 1/2 hour (you know me!) followed by Q&A.
-
The assignment should show up on the web too, eventually...
-
General
Announcements (for all students)
Not so New (Older Announcements):
CONTENTS
LECTURE NOTES
WEEK OF
Topics
Handouts
HOMEWORKS & PROGRAMS
-
Homework 1, Pseudocode, Enumerative Algorithms, and
Combinatorical Problems: Here
is the handout.
-
Homework 2: Empirical Ananlysis of Run-Times:
Sorts
-
Homework 3:
-
From the book: page 11, number 1.2-5, then page
17: numbers 1.4-1, and 1.4-2, then page 15, number 1.3-4
-
Due: Monday, Oct. 9, 2000
-
Homework 4: The Halting Problem
-
handed out Monday, October 16, 2000. Due:
Monday, October 23, 2000.
-
Everybody got assigned one of the questions below:
-
Task 1: John, Zach, Mike, Russ
-
Task 2: Todd, Justin, Jim
-
Task 3: Jason, Chaplin, Keith
-
Task 4: Renaye, Carlo, Dave
-
Each question is potentially a realistic task that you
might someday be asked to do. that is, you might be asked to write
a program that reads in other programs and answers the question.
-
But your task might be impossible! If so, you'll
have to prove it (or DO it).
-
So use "Halting
Problem" class handout as a skeleton and write up a BRIEF, INFORMAL
proof that your task is impossible.
-
Here
is a concrete example of a program P'' that uses a supposed solution (another
program P) to some undecideable problem (e.g., detecting division by 0)
to ceate a contradiction when P'' is run on itself (i.e., with its own
source code, the file "main.cc", as input).
-
THE TASKS: Your program should read in the source
code of a given program P and answer the question:
-
Given a program P and an interger i, does P
ever execute line number i?
-
Given a program P, does P ever divide by zero?
-
Given a program P, does P ever cause an integer
overflow?
-
Given a program P, does P ever print out the
string "You can shove this ThinkPad!"
-
Homework 5: Intractability versus Moore's Law, THE RACE!
-
handed out Friday, October 20, 2000. Due: Monday,
Oct. 30, 2000.
-
We (NMU and MTU) are using an approximation algorithm
(in this case a GENETIC ALGORITHM) to solve a groundwater remediation (cleanup)
problem, as described in class.
-
There are 15 pumping wells and the flow rate for each is
encoded in 4 bits (so 16 unique pumping rates are possible).
So there are a total of 15 * 4 = 60 bits in the encoding of the decision
variables and therefore the total search space size is _____.
-
It currently takes us 2.5 minutes (approx.) of wall clock
time to run the groundwater simulation to test a single solution (i.e.,
setting of the 60 bits). (This is on a 450 MHz Sparcstation).
-
Assuming Murphy's law is true (and it has held up remarkably
well over the last two decades), which is that processor speed DOUBLES
approximately every two years, maybe we really COULD solve this problem
EXACTLY, using enumeration. Let's see...
-
Assume that a run-time of ONE WEEK is considered PRACTICAL,
but any algorithm that takes more than a week to run is considered impractical.
-
QUESTION 1: How long (in years) would I have to wait
for it to become PRACTICAL to enumerate the search space? (assume
NO parallel processing!)
-
QUESTION 2: How long for the NYC TUNNELS problem?
(Recall that was 21 pipe diameters encoded with 4 bits each)
-
QUESTION 3: If I re-started the enumeration on a brand
new, state-of-art processor every two years, starting now (year 2000)
with a 450 MHz processor taking 2.5 minutes per simulation, and then
every two years buying a new machine with twice the speed and re-starting
the enumeration on that, which year's machine would finish FIRST?
(answer for both problems: groundwater cleanup and NYC Tunnels).
-
Homework 6: Analysis of some "Really Easy Problems"
and some "Really Fast" algorithms!
-
HANDED OUT: Monday Nov. 13, 2000
-
DUE: before Turkey break!
-
Give me run-time analysis, and indicate best-case, worst-case,
or avg. case, for one of the following problems:
-
(i.e., find the best known algorithm(s), name it, then find
out the run times)
-
Shortest-Path (in a weighted, undirected graph)
-
Minimum Cost Spanning Tree (in a weighted, undirected
graph)
-
Maximum Sum Subsequence (on a sequence of n integers,
possibly including negative numbers!)
-
Homework 7: Nature's Approximation Algorithm:
GENETIC ALGORITHMS! (applied to some NP-Complete problems)
-
Here is the GA++ code
-
Here are the NP-Complete problems
-
Here
is Russ' link to some GA tutorial
TESTS AND QUIZES
-
QUIZ 1: (take-home): Prove that the problem
of SUBGRAPH ISOMORPHISM (handout)
is NP-COMPLETE!
-
First show that it is in NP, then reduce a known NP-complete
problem to it
-
(hint: reduce CLIQUE!)
-
Handed out Monday Nov. 6, 2000, Due Wed. Nov. 8, 2000.
FINAL