Introduction CSCE 235 Introduction to Discrete Structures. Spring 2010 Instructor: Berthe Y. Choueiry (Shu-we-ri) GTA: Nobel Khandaker http://cse.unl.edu/~choueiry/F10-235/ http://cse.unl.edu/~cse235/. Outline. Introduction: syllabus, schedule, web, topics Why Discrete Mathematics?

Download Presentation

Introduction CSCE 235 Introduction to Discrete Structures

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

Introduction CSCE 235 Introduction to Discrete Structures

Spring 2010

Instructor: Berthe Y. Choueiry (Shu-we-ri)

GTA: Nobel Khandaker

http://cse.unl.edu/~choueiry/F10-235/

http://cse.unl.edu/~cse235/

Outline

Introduction: syllabus, schedule, web, topics

Why Discrete Mathematics?

Basic preliminaries

Introduction

Roll

Syllabus

Lectures: M/W/F 12:30—1:20 pm (Avery 119)

Recitations: M 3:30—4:20 pm (Avery 110)

Office hours:

Instructor: M/W 1:30—2:30 pm (Avery 360)

TA: Tue/Thu 9:00—10:00 am (Student Res. Center)

Must have a cse account

Must use cse handin

Bonus points: report bugs

Web page

Topics

Why Discrete Mathematics? (I)

Computers use discrete structures to represent and manipulate data.

CSE 235 and CSE 310 are the basic building block for becoming a Computer Scientist

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 Discrete Mathematics? (II)

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 get 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 (it is NP-hard) by any known technique. It is believed today that to guarantee an optimal solution, one needs to look at all (exponentially many) possibilities

Basic Preliminaries

A set is a collection of objects.

For example:

S = {s1,s2,s3,…,sn} is a finite set of n elements

S = {s1,s2,s3,…} is a infinite set of elements.

s1 S denotes that the object s1 is an element of the set S

s1 S denotes that the object s1 is not an element of the set S