Week 1 - Review of Discrete Structure 1 - Presentation - PDF - 2
Week 1 - Review of Discrete Structure 1 - Presentation - PDF - 2
Week 1 - Review of Discrete Structure 1 - Presentation - PDF - 2
Discrete Structures 2
Why Study Discrete Mathematics?
• Computers use discrete structures to represent and
manipulate data.
• Computer Science is not Programming
• Computer Science is not Software Engineering
• Edsger Dijkstra: “Computer Science is no more about
computers than Astronomy is about telescopes.”
• Computer Science is about problem solving.
Why Study Discrete Mathematics?
• Mathematics is at the heart of problem solving
• Defining a problem requires mathematical rigor
• Use and analysis of models, data structures, algorithms requires a
solid foundation of mathematics
• To justify why a particular way of solving a problem is correct or
efficient (i.e., better than another way) requires analysis with a well-
defined mathematical model.
Problem Solving requires Mathematical Rigor
• Your boss is not going to ask you to solve
• an MST (Minimal Spanning Tree) or
• a TSP (Travelling Salesperson Problem)
• Rarely will you encounter a problem in an abstract setting
• However, he/she may ask you to build a rotation of the company’s
delivery trucks to minimize fuel usage
• It is up to you to determine
• a proper model for representing the problem and
• a correct or efficient algorithm for solving it
Scenario I
• A limo company has hired you/your company to write a computer program
to automate the following tasks for a large event
• Task1: In the first scenario, businesses request
• limos and drivers
• for a fixed period of time, specifying a start data/time and end date/time and
• a flat charge rate
• The program must generate a schedule that accommodates the maximum
number of customers
Scenario II
• Task 2: In the second scenario
• the limo service allows customers to bid on a ride
• so that the highest bidder gets a limo when there aren’t enough limos available
• The program should make a schedule that
• Is feasible (no limo is assigned to two or more customers at the same time)
• While maximizing the total profit
Scenario III
• Task 3: Here each customer
• is allowed to specify a set of various times and
• bid an amount for the entire event.
• The limo service must choose to accept the entire set of times or reject it
• The program must again maximize the profit.
What’s your job?
• Build a mathematical model for each scenario
• Develop an algorithm for solving each task
• Justify that your solutions work
• Prove that your algorithms terminate.Termination
• Prove that your algorithms find a solution when there is one.
Completeness
• Prove that the solution of your algorithms is correct Soundness
• Prove that your algorithms find the best solution (i.e., maximize profit).
Optimality (of the solution)
• Prove that your algorithms finish before the end of life on earth.
Efficiency, time & space complexity
The goal of this course
• Give you the foundations that you will use to eventually solve these
problems.
• Task1 is easily (i.e., efficiently) solved by a greedy algorithm
• Task2 can also be (almost) easily solved, but requires a more
involved technique, dynamic programming
• Task3 is not efficiently solvable by any known technique. It is
believed today that to guarantee an optimal solution, one needs
to look at all (exponentially many) possibilities
Why Care about Discrete Structures?
• Digital computers are based on discrete “atoms” (bits).
• Therefore, both a computer’s
• structure (circuits) and
• operations (execution of algorithms)
can be described by discrete mathematical structures.
Mathematical Appetizers
• Useful tools for this course:
(Knowledge on)
• Logic
• Set Theory
• Functions
• Sequences
Logic
• Crucial for mathematical reasoning
• Used for designing electronic circuitry
P P
true false
false true
Conjunction (AND)
Binary Operator, Symbol:
P Q PQ
true true true
true false false
false true false
false false false
Disjunction (OR)
Binary Operator, Symbol:
P Q PQ
true true true
true false true
false true true
false false false
Exclusive Or (XOR)
Binary Operator, Symbol:
P Q PQ
true true false
• Examples:
R(R)
(PQ)(P)(Q)
• Examples:
• R(R)
• ((PQ)(P)(Q))
(PQ) (P)(Q)