Top Banner
Better Living through Computing Algorithms? Stephanie Troeth Montreal Girl Geek Dinner May 28, 2008
32

Better Living Through Computing Algorithms?

Jun 28, 2015

Download

Technology

stephtroeth

So it happened one day that a project manager Iwas working with complained about having too much to do and not being sure how to attack the pile.

"I use traditional computer processing algorithms," I said nonchalantly, and got an appropriately confused look. I then went on to explain some basic algorithms that helps computer systems prioritise what to do under certain circumstances to ensure maximum "useful" efficiency.

I was partially kidding, but, well, only partially. Is there a genuine possibility whereby we can use formulated ideas from a particular technical field to address day-to-day efficiency?

This talk is was about just that.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Better Living Through Computing Algorithms?

Better Livingthrough

Computing Algorithms?Stephanie Troeth

Montreal Girl Geek DinnerMay 28, 2008

Page 2: Better Living Through Computing Algorithms?

Project management

[This talk is neither about project management ...]

Page 3: Better Living Through Computing Algorithms?

Computing

[... nor strictly just about computing]

Page 4: Better Living Through Computing Algorithms?

Efficiency ...

Page 5: Better Living Through Computing Algorithms?

... through creative problem solving

Page 6: Better Living Through Computing Algorithms?

Just for fun.[nothing scientific, or proven,

but maybe a basis for a thought experiment]

Page 7: Better Living Through Computing Algorithms?

Let’s look at this in two unequal parts

• Choosing a couple of known problems, and looking at algorithms to apply

• A brief discussion of other algorithms, and perhaps where we can apply them

Page 8: Better Living Through Computing Algorithms?

Example issue #1:Time management

Page 9: Better Living Through Computing Algorithms?

Other ways you might know

• Big rocks vs little rocks

• Getting Things Done

Page 10: Better Living Through Computing Algorithms?

Big rocks, little rocks

• Consider a finite space, such as a jar

• Imagine you have big rocks and little rocks

• If you fill it with little rocks first, there will be no more space left for the big rocks

• If you fill it with big rocks first, you may still fit the little rocks between the gaps

Page 11: Better Living Through Computing Algorithms?

Getting things done

• Collect - get everything out of your head into your favourite form of “bucket”

• Process - trimming off small tasks but allow for way to process bigger jobs

• Organize - contextualize things that need doing

• Review - make sure your lists are current

• Do (!)

Page 12: Better Living Through Computing Algorithms?

Key aspects of efficiency

• Priorities (though GTD plays down on this)

• How tasks are defined

• Order of tasks

• A way to execute them

Page 13: Better Living Through Computing Algorithms?

How do you do it?

Page 14: Better Living Through Computing Algorithms?

[at this point, a few people talked about their tips and techniques —

“tiny to-do lists”, variations on GTD, what’s worked for them and

what hasn’t.]

Page 15: Better Living Through Computing Algorithms?

The computer as your bus driver

• Priority queues

• Schedulers

[we discussed bus queues as metaphors]

Page 16: Better Living Through Computing Algorithms?

A few algorithms

• First In, First Out / Last in, First Out

• Shortest Job Next

• Shortest Time Remaining

• Critical path method

• Earliest Deadline First

• Round Robin

Page 17: Better Living Through Computing Algorithms?

First In, First Out

• What comes in first is handled first

• What comes in next waits until the first is finished

• Basically: first come, first served

Page 18: Better Living Through Computing Algorithms?

Last In, First Out

• What comes in first is handled last

• Every item or task is handled the reverse order they arrived in

... kinda like how you would sort a pile of papers you’ve just stacked together.

Page 19: Better Living Through Computing Algorithms?

Round Robin

• Gives each item an equal slice of time

• Rotates to next item when time is up

• Keeps going until all tasks are done

Page 20: Better Living Through Computing Algorithms?

Shortest Job Next

• Do the shortest job on the queue until it’s done

• Pick the next shortest job on the queue

gets a lot of things done, but longer jobs won’t get done if you keep adding short jobs

Page 21: Better Living Through Computing Algorithms?

Shortest Time Remaining

• Do the task that has the smallest amount of time left

• When a new task turns up, compare it with the current one that you’re doing, give priority to the task with shortest time

... needs accuracy in time estimation

Page 22: Better Living Through Computing Algorithms?

Earliest Deadline First

• Do the task that’s closest to its deadline until it’s finished

• Then look at your queue for the next item closest to its deadline

works okay if you have enough resources to complete all your deadlines ...

Page 23: Better Living Through Computing Algorithms?

Critical Path Method

• Work out all activities that are required

• How long each activity is likely to take?

• Which activity depends on which?

• Map out the shortest possible time to complete everything by adding up longest essential tasks based on dependencies

Page 24: Better Living Through Computing Algorithms?

Example issue #2:Cooking

Page 25: Better Living Through Computing Algorithms?

What’s for dinner?

• Caesar salad

• Lamb roast

• Vanilla ice cream with strawberry coulis

Page 26: Better Living Through Computing Algorithms?

How do you make sure:

• the salad stays fresh

• the roast stays warm

• the coulis is sufficiently cooled (but not cold)

• the ice cream stays frozen

• the guests don’t have to wait too long between courses?

Page 27: Better Living Through Computing Algorithms?

[at this point the we debated which dish we should begin cooking first, and the finer points on how to make the

perfect caesar salad ...]

Page 28: Better Living Through Computing Algorithms?

Other ones to get our heads around

Divide and conquer

Recursively breaking things down into related sub-problems, until each one can be solved directly.

Bubble sort

Compare pairs of adjacent items in a list, swap if necessary, until no swaps are needed.

Travelling salesman problem

What is the most economical route if a person were to travel to each city only once (where the distance between cities is known) and return to the home city?

Page 29: Better Living Through Computing Algorithms?

Endless fun• Putting away groceries?

• Hanging up / putting away laundry?

• Cleaning house (bottom up or top down?)

• Making the bed?

• Applying make-up?

• Baking?

• Washing dishes?

• Watering plants?

Page 30: Better Living Through Computing Algorithms?

All that said,we are only

human.

Page 31: Better Living Through Computing Algorithms?

Thank you.

Page 32: Better Living Through Computing Algorithms?

AboutStephanie Troeth is someone who has the uncanny knack to make things happen. She likes the challenge of making dreams tangible.http://stephanietroeth.com/

Further Reading• http://www.nist.gov/dads/

• http://www.personal.kent.edu/~rmuhamma/Algorithms/algorithm.html• http://en.wikipedia.org/wiki/Scheduling_%28computing%29

Thanks• Olivier Thereaux• Stephanie Booth

• http://flickr.com/photos/christajoy42/2385583808/• http://flickr.com/photos/30261607@N00/2382070344/• http://flickr.com/photos/gaetanlee/421949167/