CMSC 198K: Science behind computing Bobby Bhattacharjee Samir Khuller

advertisement
CMSC 198K: Science behind
computing
Bobby Bhattacharjee
Samir Khuller
University of Maryland
1
Basic Information





Syllabus
Email: bobby@cs.umd.edu (Bobby)
Email: samir@cs.umd.edu (Samir)
TA – Kristin Stephens,
ksteph@cs.umd.edu
UTA – Hailey Lin, halin2007@gmail.com
2
Course Web Page



http://www.cs.umd.edu/class/fall2009/cmsc198k/
All course materials (lecture notes, handouts,
homeworks) shall be available on the class page.
Dates for the exams shall be announced shortly.
3
Computer Science



What is the computer
actually doing?
Its running a program
(a set of instructions),
but what is the program
doing?
Typically, an algorithm
is what the program
implements.
4
Science vs Technology



We are all familiar with the technology, the
internet, the web, the ability to access
information, videos, news, make
reservations, email – we use this everyday.
How did this happen?
Computer Science is a very young field, with
most of the innovation having happened in
just the last 60 years.
5
Outline of Topics






Elementary Algorithms
Basics about computers
Basics about programming
Concepts/Computational thinking
Some elementary mathematics
The fun stuff: Internet/Secret message
sharing/Communication/Randomization
6
A typical conversation
Person: What do you do?
Me: I am a computer science professor.
Person: I have a problem with my PC, can you fix it?
Me: No, I don’t think I can do that.
Person: You will not fix my PC?
Me: I cannot fix my PC, let alone yours.
Person: Then what exactly do you do?
Me: I study algorithms.
Person: Oh, I know that.
Me: Really?
Person: Yes! I learnt logarithms in high school.
7
Algorithms not Logarithms!
L O G A R I T H M
Al-Khowarizmi
8
Algorithms Introduction
Recipe for baking a cake….
 2 sticks butter
 2 cups flour
 1 cup sugar
 4 eggs
 1 cup milk
 1 tsp baking powder
 Cocoa powder (1/2 pound)
Mix the sugar, baking powder and flour, mix in beaten
eggs, melted butter and bake at 325F for 40 mins.
9
ALGORITHMS




Set of instructions for solving a
problem, to find a solution.
What is a problem?
What is an instruction?
What is a solution?
11
12
Why are algorithms central to
computing?
An airport shuttle company needs to schedule
pickups delivering everyone to the airport on
time. Who goes in which shuttle, and in what
order do the pickups occur?
 A delivery company has several customers
and trucks that can carry objects. How should
they schedule deliveries to the customers to
minimize their cost?
This leads to interesting algorithmic problems…

13
There are lots of feasible
solutions!




How should we pick amongst these
solutions?
Some solutions are cheap, and others
may be expensive or undesirable.
The number of potential solutions is so
large that even a fast computer cannot
evaluate all these solutions.
Algorithms tell us how to find good
solutions!
14
Applications of Algorithms






Google News
Web Search applications
Find a file on your computer
Assigning people to tasks
E-harmony
Resident Assignment Problems
15
Re-assigning employees
A
A
B
C
B
C
D
D
16
Assigning Interns to Hospitals



The “resident matching” program is a
computer program that assigns
residents (interns) to hospitals.
Also used for admission to High Schools
in several Asian countries.
Many metrics can be defined, we focus
on a specific metric here.
17
The Marriage Problem




N men, N women
Each person provides a ranking of the
members of the opposite sex
Can we find a “good marriage”?
First studied by Gale and Shapley
(1962)
20
Men’s preference lists
Brad (B)
Vince(V)
George(G)
1
Jennifer(J)
2
Laura(L)
3
Angelina(A)
21
Women’s Preference List
Jennifer(J)
Angelina(A)
1
Laura(L)
Brad(B)
2
George(G)
3
Vince(V)
22
Stable Marriage Problem


A marriage is unstable if there is a pair
of people, not married to each other,
such that both prefer each other to
their current partners. In other words,
they have an incentive to elope….
Can we find a “stable” marriage?
23
(Brad, Jen)
(Vince, Angelina)
(George, Laura)
Unstable since
Jen and Vince
both prefer
each other to
their current
partners.
25
An application: resident matching
program



Each resident rank orders the hospitals,
and each hospital rank orders the
residents.
How do we choose an assignment of
residents to hospitals?
We do not want a situation that a
resident prefers another hospital, and
that hospital preferred this resident to
the person assigned to them.
26
FIRST ROUND:
Brad proposes to Jen
Vince proposes to Laura
George proposes to Jen
Jen rejects George, engaged to Brad
Laura engaged to Vince
Angelina gets no proposals….
(Brad,Jen) and (Vince, Laura)
28
SECOND ROUND:
George proposes to Laura
Laura breaks engagement with
Vince, and gets engaged to
George
(Brad,Jen) and (George,Laura)
29
THIRD ROUND:
Vince proposes to Jen
30
THIRD ROUND:
Vince proposes to Jen
Jen breaks engagement with
Brad, and gets engaged to
Vince
(Vince,Jen) and (George,Laura)
31
FOURTH ROUND:
Brad proposes to Angelina
Angelina accepts and gets
engaged to Brad
(Vince,Jen), (George,Laura) and
(Brad,Angelina)
32
The couples
33
Download