Summer training on Programming Methodology with Logic and Algorithm Designing.

Slides:



Advertisements
Similar presentations
Turing Machines January 2003 Part 2:. 2 TM Recap We have seen how an abstract TM can be built to implement any computable algorithm TM has components:
Advertisements

MATH 224 – Discrete Mathematics
Design & Analysis of Algoritms
8 Algorithms Foundations of Computer Science ã Cengage Learning.
S. J. Shyu Chap. 1 Introduction 1 The Design and Analysis of Algorithms Chapter 1 Introduction S. J. Shyu.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Planning under Uncertainty
CSE332: Data Abstractions Lecture 27: A Few Words on NP Dan Grossman Spring 2010.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
CS333/ Topic 11 CS333 - Introduction CS333 - Introduction General information Goals.
The Theory of NP-Completeness
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Algorithmic Problems in Algebraic Structures Undecidability Paul Bell Supervisor: Dr. Igor Potapov Department of Computer Science
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Design and Analysis of Algorithms - Chapter 11 Algorithm An algorithm is a.
TK3043 Analysis and Design of Algorithms Introduction to Algorithms.
1 Trends in Mathematics: How could they Change Education? László Lovász Eötvös Loránd University Budapest.
Design and Analysis of Algorithms
Algorithm Design and Analysis Liao Minghong School of Computer Science and Technology of HIT July, 2003.
HOW TO SOLVE IT? Algorithms. An Algorithm An algorithm is any well-defined (computational) procedure that takes some value, or set of values, as input.
Introduction to the Theory of Computation
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Stochastic Algorithms Some of the fastest known algorithms for certain tasks rely on chance Stochastic/Randomized Algorithms Two common variations – Monte.
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Chapter 3 Sec 3.3 With Question/Answer Animations 1.
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
Analysis of algorithms Analysis of algorithms is the branch of computer science that studies the performance of algorithms, especially their run time.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
CSC 413/513: Intro to Algorithms NP Completeness.
An Efficient Algorithm for Enumerating Pseudo Cliques Dec/18/2007 ISAAC, Sendai Takeaki Uno National Institute of Informatics & The Graduate University.
Design & Analysis of Algorithms Lecture 1 Introduction.
Design and Analysis of Algorithms - Chapter 11 Algorithm b An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining.
HKOI 2005 Training Introduction to Algorithms Alan, Tam Siu Lung.
CS404 Design and Analysis of Algorithms BBy DDr. M V S Peri Sastry BB.E, PhD(BITS-Pilani)
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
Computer Science/Ch. Algorithmic Foundation of CS 4-1 Chapter 4 Chapter 4 Algorithmic Foundation of Computer Science.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
CMPT 308 — Computability and Complexity Fall 2004 Instructor: Andrei Bulatov, TA: Ramsay Dyer, Learning.
Classical mathematics and new challenges László Lovász Microsoft Research One Microsoft Way, Redmond, WA Theorems and Algorithms.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Speaker Recognition UNIT -6. Introduction  Speaker recognition is the process of automatically recognizing who is speaking on the basis of information.
Sub-fields of computer science. Sub-fields of computer science.
Advanced Algorithms Analysis and Design
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
TK3043 Analysis and Design of Algorithms
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Course Description Algorithms are: Recipes for solving problems.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Discrete Mathematics and Its Applications
Design and Analysis of Computer Algorithm (CS575-01)
Design and Analysis of Algorithms (07 Credits / 4 hours per week)
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Objective of This Course
Algorithms and Problem Solving
Algorithms Algorithm. [webster.com] A procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps.
Discrete Mathematics in the Real World
Course Description Algorithms are: Recipes for solving problems.
Department of Computer Science & Engineering
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Welcome to the most Amazing course there is 
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Presentation transcript:

Summer training on Programming Methodology with Logic and Algorithm Designing

Informal definition of an algorithm used in a computer

3 History of Algorithm An algorithm, named for the ninth century Persian Mathematician al-Khowarizmi, is simply a set of rules for carrying out some calculations, either by hand or, more usually, on a machine. Informally, an algorithm is any well defined computational procedure that takes some value or set of values as output.

30’s: Mathematical notion of algorithms Church, Turing, Post recursive functions, Λ-calculus, Turing-machines Church, Gödel algorithmic and logical undecidability

50’s, 60’s: Computers the significance of running time simple and complex problems sorting searching arithmetic … Travelling Salesman matching network flows factoring …

late 60’s-80’s: Complexity theory P=NP? Time, space, information complexity Polynomial hierarchy Nondeterminism, good characteriztion, completeness Randomization, parallelism Classification of many real-life problems into P vs. NP-complete

90’s: Increasing sophistication upper and lower bounds on complexity algorithmsnegative results factoring volume computation semidefinite optimization topology algebraic geometry coding theory

Higlights of the 90’s: Approximation algorithms positive and negative results Probabilistic algorithms Markov chains, high concentration, nibble methods, phase transitions Pseudorandom number generators from art to science: theory and constructions

Randomized algorithms (making coin flips): Algorithms and probability Algorithms with stochastic input: difficult to analyze even more difficult to analyze important applications (primality testing, integration, optimization, volume computation, simulation) even more important applications Difficulty: after a few iterations, complicated functions of the original random variables arise.

In our opinion, the notion of algorithm cannot be rigorously defined in full generality, at least for the time being. The reason is that the notion is expanding. Andreas Blass suggested a better analogy: algorithms to numbers. Many kinds of numbers have been introduced throughout history: positive integers, natural numbers, rationals, reals, complex numbers, quaternions, infinite cardinals, infinite ordinals, etc. Similarly many kinds of algorithms have been introduced. Classical sequential algorithms, in use from antiquity, we have now parallel, interactive, distributed, real-time, analog, hybrid, quantum, etc. Algorithms. The only algorithms in use from antiquity to the 1950s. “Algorithms compute in steps of bounded complexity”, wrote Andrei Kol mogorov in 1953.

From 3000 BC to 2000 AD

Perspective Algorithms we can find everywhere. They have been developed to easy our daily life. It began with calculating algorithms and is today going to artificial intelligence and molecular biology. Google is one of the actual product of this development, knowledge based databases and neuronal networks will lead to the next...

Another Defination of Algorithm “An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time [Levitin, p. 3].”

The word "algorithm" has an interesting history algorism (noun), algorithm (noun), algorist (noun): these words come from the now-quite-distorted name of a person, Ja'far Mohammed Ben Musa, who was known as al- Khowarazmi, meaning "the man from Khwarazm."

Any use or manipulation of Arabic numerals - especially a pattern used to add, subtract, multiply, etc. - was known as an algorism. The current form algorithm exhibits what the Oxford English Dictionary calls a "pseudo- etymological perversion": it got confused with the word arithmetic. Current dictionaries still list the older form algorism in the sense of "the decimal or Arabic system of numeration." A calendar is nothing but an algorithmic way of assigning - in this case Hebrew – dates.

What Kind of Problems solved by Algorithms?  Anything solved by a computer is done using an algorithm.  The halting problem is a famous problem that *cannot* be solved with an algorithm.  “algorithmic problem-solving”; this means exploiting what has been learned from the experience of developing computer software over the last 50 years that has helped us to hone our problem-solving skills.

Algorithms are the end-product of the problem-solving process and it is imperative that they are made explicit and are carefully studied. Correct-by-construction is a systematic way of designing algorithms using the specification as a blueprint; it is a pre-hoc design process quite different from the post- hoc process used to “debug” computer software

Roland Backhouse’s book on Algorithmic Problem Solving introduces the principles underlying correct-by-construction design techniques. Problem solving is not easy. Don’t confuse problem solving with the verification of existing solutions; construction is much harder than verification!

If the problem is that of computations, being "unambiguous" usually means that a human of average intelligence must be able (if only in principle) to follow the instructions with pencil and paper. A discerning robot must be able to perform the job as well this links the idea of algorithm to programming. However, quite often, the concept of algorithm is thought to be distinct from that of program.

Problems Listing Sorting: Sorting provides a good example of an algorithm that is very frequently used by computer scientists. Shortest Path: The most real worl problems as networking, traffic problem or hacking. Approximate algorithms: NP-hard problems, even the most advanced algorithm, with the most advanced heuristics, on the fastest computers which is too slow.

Since the fastest known algorithm for solving this problem is too slow – and many believe this will always be true – programmers look for sufficiently fast algorithms that give good, but not optimal solutions. Random Algorithms: OS desining, interrupt handling, password cracking, cryptography, etc. Compression: Data compression, cache memory, mailing, sharing, etc. Maximum Flow: The US wanted to know how quickly the Soviet Union could get supplies through its rail network to its satellite states in Eastern Europe.

Pattern matching: Sequence comparison, anti- virus development, hacking, DNA problems and plagiarism detection, Bioinformatics, medical,etc. Circuit diagrams. Compilation (Directed Acyclic graphs) Maps. Very compact as graphs. Network flow problems. Decision trees for expert systems. Dynamic Problems

Greedy algortihm Branch and Bound algorithms Divide and Conquer algorithms Recursion algorithms Backtracking algorithms And many more......