Formal Methods II

CSE3305




Lecture 1: Introduction (a heavy one)


E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...



The goal of this subject is to enhance our abilities to solve problems algorithmically.

Specifically, to:

  • problem solving

  • controlling space / time

  • heuristic search methods

  • stochastic search (probabilities)

  • stochastic simulation

  • limits of computation (what CAN be solved?)

  • formal complexity analysis


So WHAT IS COMPUTER SCIENCE? What is real computer science?

Science:

  • Discovering the nature of the world

  • emphasis on empirical methods

  • Science is about discovery

So there are these other subjects that float around the core subjects in CS, like AI, or soft eng. They don't deal with the real 'scientific' stuff. This is one opinion. So AI is one of the dispensable subjects.

One of the applications of CS.

So what is at the core? Computation. Turing machines. All that stuff.

So is computer science really a science? OR is it just like 'Hygiene Science' or 'Secretarial Science'?

Yes it is, because we can set out to discover what IS computable, and what the limits of computers are.

Just because we created something doesn't necessarily mean that we know what it does. Do you know what everything in a computer program you have created does and why? What can we do with computers?

We can also create applications through engineering. So computer science is also about applying computers to practical problem solving.

We're going to emphasise search as the algorithmic side of problem solving.

Problem => Model => Solution

Here's where the lecture hit its 'interesting peak'.

Def 1:

You have a problem when the present state of a system is not equal to its desired (goal) state (MF, p. 1)

So the first step is to model the problem.

Say you were going to model a star that was about to go nova. You could create model objects and properties / relationships for every particle, but you would be waiting forever for the dang thing to compute. The time complexity is absurd. So we have to decrease the resolution of the model somewhat. Now, there are a lot of things happening in the real version that don't get modeled in your computational model. You then manipulate that lower res computational model to create your solution.

This is what they mean by 'the details don't matter, they've been mostly omitted anyway!'.

Thus, in rough English, Def 2::

A model M of P is:

An Abstract representation of P

Abstract: e.g., mathematical, algorithmic

Abstractions lose (hopefully: irrelevant) details

States and operations of M parallel states and changes of P

Manipulating M (searching the state space of M) allows us to search for a goal state of M

Def 3:

A solution for a problem in M is a sequence of operations from an initial state to a goal state.

Thus problem solving is

  1. Find a problem (identify)

  2. Develop a model

  3. Search the model's state until a solution is found

This was illustrated in class with the example of finding the route to another city.

But we need to allow feasible searches and solutions.

Ok, so this means it ahs to run in polynomal time (space) or less, when we think in general like computer scientists.

Or we can think more generally and say that it is feasible when the solution meets the problem constraints.

State Space Complexity is simply the number of possible states a model has. Sometimes if repeated states are allowed, the search space complexity is infinite.

Complexity is sensitive to the choice of implementation. In other words, if you choose badly, you're going to have an awful program that hogs all your resources. It's way too complex.

I'll stop


here


0 Responses to “Lecture 1: Introduction (a heavy one)”

Leave a Reply

      Convert to boldConvert to italicConvert to link

 


Previous posts

Archives

Links