NZMac.com - Supporting the New Zealand Mac community : Saturday, 30 August 2008

Jul 01
2008

Why are computers so dumb?

Posted by lowededwookie in Office

lowededwookie

I'm a firm believer that artificial intelligence will never happen, at least not human level intelligence. For it to occur a massive shift in the way computers think needs to occur.

Computers work in binary which is nothing more than 0's and 1's. Essentially all computer decisions are based on whether or not a switch's state is on or off, true or false, yes or no. This is not intelligence that's merely reasoning which is not intelligence per se.  Merely being able to reason on something based on a set of known facts is not intelligence as intelligence involves memory, thinking ability and imagination. Computers can't think, computers can't imagine, computers can't look into files and make decisions based on the information contained.

A good example of this is something I just tried to do but which I could not find an actual answer for. What I wanted to do was a computation based on these factors:

Hourly Wage: $23.08

Hour (mins): 60

Start Time: 14:40

End Time: 15:50

Total Time: = End Time - Start Time

Cost / Minute: = (Hourly Wage / Hour) * Total Time

This may seem like complex equation but it's not. Essentially it finds out what my minute rate is (Hourly Wage / Hour) then multiplies that rate by the minutes taken on a job (End Time - Start Time).

The idea for this calculation came  about because I got sent to a job where effectively my time was wasted because the Helpdesk didn't do their job. I wanted to see how much that actually costs me personally having to deal with jobs that by rights I shouldn't have to deal with instead of more important jobs (Service Level Agreements with the company involved require me to treat problem as urgent).

And here comes my gripe. Excel was unable to provide the right answer because Excel couldn't do a proper conversion of the times. To explain:

My minute rate comes out to be $0.38. If you subtract 14:40 from 15:15 you get 00:35. This is correct except if you now multiply $0.38 by 00:35 you get $0.01 which is clearly wrong. It should be $13.46. Why the discrepancy?

It seems that while 00:35 is the correct answer it doesn't actually translate properly in a calculation. You see if you change the 00:35 to a decimal it shows up as 0.02. Why I have no idea but you can see why it goes all a bit skew whiff. To get the calculation within +/- a minute I actually had to do something like this:

A1=14:40

B1=15:15

C1=B1-A1 (00:35)

A3=$23.08

B3=60

C3=A3/B3 ($0.38)

D3=C3*C1 (0.01)

E3=C3*D3 (0.003596)

F3=D3*10000 (35.96)

G3=F3*C3 ($13.83)

This gives $13.83 which is close to correct but not correct.

Why can't I just have  the answer for D3 equal $13.83 right off the bat? It all goes to pot trying to calculate minutes. The software should pick up that 00:35 is 35 minutes therefore the equation for D3 should effectively be $0.38 * 35 not what it does and makes it $0.38 * 0.02.

And this brings me back to full circle. If computers don't have the ability to perform what should be a very simple equation how the hell can we ever expect it to perform complex tasks such as thinking? For artificial intelligence to come anywhere close to what we as humans do computers need to move away from Binary. Something tells me that ain't gonna happen anytime too soon.

It's not just spreadsheets either. I've been thwarted many a time in other apps merely because I want a computer to do something that it should but can't. Yes, most of this occurs on Windows but Macs and Linux aren't immune.

Do we as humans have too much expectation of what computers can do or are programmers too lazy or incapable of programming solutions to our problems? In all honesty I think it's the former.

Take for example the Wii. Studies have shown that the Wiimote is so under utilised that no game has ever come close to using its full potential. The result? The golf game that comes with the Wii is actually more responsive than EA's Tiger Woods on the Wii. Trying to make a swing is, pardon the pun, incredibly hit and miss as to whether or not Tiger Woods registers the first part of the swing. It's so bad the game is unplayable. I know that I have my moments playing golf in real life but I have yet to encounter a time when I haven't registered I've started my swing and tried to start my swing again but Tiger Woods on the Wii does it all the time and so you end up with the most heinous score because you've ended up doing nothing but chipping the ball down the green. No golfer's clap for you EA.

Our computers are capable of so much more than what we can currently do and yet they aren't given the opportunity to do so because business gets in the way. It seems that more often than not programmers make simple requests so complex that it boggles the mind thinking what their morning must be like. Where we would bash the alarm clock a few times before we finally drag ourselves out of our bed and into the shower before having a cup of coffee and driving off to work I could imagine a programmer going the long way about things like hitting the alarm a few times, when he finally gets out of bed he drags himself down the length of the bed, slithering over the end onto the floor, pulling himself to his knees, crawling down the passageway to the shower, dragging himself up the wall to turn the shower on. Possibly explains why so many geeks don't shower I guess.

I admit that it's probably unfair to say this as I'm not a programmer although I have done the odd bit back on the Amiga with Blitz Basic (one of the best programming languages ever and developed by Kiwis no less). That being said is it a limit of the code or just a lack of desire to give people what they want? Take for example our call system at work.

The idea behind a call system to to log jobs, have those jobs passed onto the engineer, then allow the engineer to update the call. Seems simple enough until you realise that our call system isn't that flash at doing any of this. Updates we make may or may not take so we may have to update the job a number of times before it takes. It takes an average of 3 minutes to make an update and that's just to say something simple like "I replaced the CD Drive and it seems to be working fine now". In some cases it takes more time to update the call than it does to do the job. So why does it take so long to say so little? Well, about half of the time needed to make an entry is taken by the call system updating every little move you make. Here's an average update:

I fill in an activity which is simply marked "o". I then click on the field that requires me to set the date. As soon as I click away from the Activity field the system runs a calculation. Then I have to click the date field again which brings up a box that allows you to choose the date from a chooser box. Then you have to enter the time. Now you have to click into a drop down box to select an entry labelled "Fulfilled". This automatically sets the next two date and time boxes to an hour. If you haven't taken an hour to do the job you have to enter the time you took and once you click onto the next box an error message comes up saying the calculation doesn't match and do you want to recalculate which is always best to otherwise the system spits the dummy. Interestingly the only reason that you need to do this is not to actually update the record in the database because you haven't saved the changes yet but in fact to change a display on the screen to let you know that your time is whatever. At this stage there is no practical use for the calculation. So now we have to set the Stop Code which brings up a screen with the list of codes you can use (I usually just type it in because otherwise the job would end up being closer to 5 minutes to update). If you have travel you now have to update two more sets of date and time fields but the date is not automatically entered like it is for the other one and as such you waste time entering in these instead of having one date box for the whole freaking job update. Of course these fields are not in the same area as the other two sets of date and time fields so you waste time moving around the screen. Essentially this update makes so many calculations that there is more time calculating than actual data entry. As much as I hated the old call system this supposed update is a massive step backwards. All I wanted to do was make an update but I can't do so efficiently and so I give up then I get in trouble because my utilisation report looks bad because I haven't updated my jobs.

Have we been given what we wanted? No, we've been given an application that is designed to show off how fancy the programmer can be but all it serves to provide is a complete hatred for the idiot that forced us to do the most simple things in the most complex way.

Ultimately the question as to why are computers so dumb can be answered by saying "because the people that make and program them are dumber". Garbage In Garbage Out.

In many respects I kind of hope Skynet comes along. At least then I might be able to get some work done the way I need it to be done.



Comments (7)add comment

Bob Jordan said: July 04, 2008   Votes: +1

Its all a matter of putting the right things into your equation
I did this in Excel using cells A1 to B9

Column A Column B
Hourly Rate $23.08

Start Time14:40
End Time15:15
One hour1:00

Total $13.46

Formula '=(B4-B3)*B1/B5

So that means (End time minus start time) times dollars divided by one hour

Voila!

What could be easier?

Bob J.

 
report abuse
vote down
vote up

lowededwookie said: July 05, 2008   Votes: +0

Don't get me wrong, I thank you so much for giving me a nice simple equation but it just goes to highlight that computers are so far from how we humans think that this example proves how far computers have to go to get to where we are at birth.

The above example shows how our brains work. Computers clearly have no ability to convert time into a value of worth for quick and easy computation. Why can't a spreadsheet recognise that 00:35 is actually a value of 35? If a child can actually work this out why can't a computer?

In many respects computers can do equations much better than us but their output may not be what we're after.

Let's go back to the example of the call system we use. The other day we got reamed because our utilisation reports were way out. Supposedly I only work 9 hours a week. Where did this information come from? From a call system that makes a report based on the updates we do in the call system. Now considering our call system falls over more often than a one legged man on a bender (this incidentally is an upgrade to the software we use and it actually falls over more often than the old version that made one legged drunkard seem stable so go figure). The report doesn't take into account numerous factors for example training, projects that aren't recorded, and jobs that we haven't updated because the system is down. A report ran at the wrong time gives the wrong picture but one a computer can't pick up on. It can't reason that I should be doing much more work than my report shows and ask me what's going on but humans can.

But ultimately humans are dumber than the machines they use because they rely on a device that requires proper information. If the information they give is not telling the full story then clearly the information is of no use. Unfortunately for computers to get to human level intelligence and therefore give us the information we need and allow us to work properly we need to program computers in the way we think and that is extremely complex because we don't know how we think. How can you program something based on us when we don't understand us?
 
report abuse
vote down
vote up

BobJordanB said: July 05, 2008   Votes: +1

I was not commenting on the rest of your submission,in fact i tend to agree. But it was just the numbers bit that caught my eye and sparked a recall.

I think you have missed the point. There is not a problem with the 0:35, the problem is in the rate. Now a rate is a ratio of two units. $23.08 is not a rate, it is an amount. To make it into a rate you have to divide it by a time unit. So it is $23.08/hour and an hour is 1:00 in the units chosen, hence my calculation.

So if I was paid $200 per 8 hours the rate is $200/8:00 which is quite close to your $23 but it uses a different amount and a different time.

So you are not asking the computer to guess whether 0:35 means 35 or not, you are asking it to guess if your 'rate' is per hour, per 8 hours, per day etc.

My thesis is that all numbers should have their units firmly afixed. It is hard in Excel - but possible!

Cheers

 
report abuse
vote down
vote up

lowededwookie said: July 05, 2008   Votes: +0

The problem I was stating in my example is the difference between how a computer interprets an amount and how a human does it. To a computer 00:35 is seen as some weird number that I have not worked out what. When you format 00:35 to a decimal it shows as 0.02 which makes no sense.

A human on the other hand will make that 00:35 a decimal value of 35 because we realise that we are looking at a time value. Humans calculate things better in decimal values so we automatically translate the time value in the equation.

The semantics of the example was not the issue but how computers interpret things so differently to humans. It's this interpretation that I was trying to highlight why computers cannot get to human level intelligence along their current path. For something that's meant to be logical it goes about things completely illogically.

Incidentally Numbers refuses to do your calculation but that's because Numbers doesn't do time calculations. Google Docs works the equation out correctly though as does OpenOffice and of course Excel. Man I hope Numbers adds support for time calculations.

Another use for this equation is to calculate a bill to send to the council for how long I have to wait at traffic lights due to the bad timing of the lights. For each minute I spend waiting I will send them a bill based on my hourly rate. smilies/smiley.gif
 
report abuse
vote down
vote up

BobJordanB said: July 06, 2008   Votes: +1

I am conscious of getting off on a sideline here. I am not critical of your original thesis, but think there are some important things to learn about Excel Time that may lower your expectations a little.

Time as we use it in real life is represented using a mixed number base: 24 hours/day, 60 minutes/hour etc. When we break down dates we get weeks, months years with complicated bases ? years have 400 year cycles.

One way of representing Date and Time is to use separate numbers (perhaps a byte) for each part e.g. minutes, hours etc., but it is still difficult to calculate as we must do a sum for each part and look after carries and overflows.

What is done to resolve this issue in Excel is actually quite beautiful in its simplicity.

Date and Time are recorded as the number of days since the year 1900 started with time recorded after the decimal point. So 12/4/08 6:00 PM is recorded as 39550.75. There are 39550 days since the 1st of Jan 1900, and 6 PM is three quarters of a day. Simple!

The nice thing about this is that simple maths can be used to compute dates and times. e.g. How many days between 12/4/08 and 13/6/08? Type them like that into Excel and subtract -> 62 days Voila!

It also works for times. What is the elapsed time between 12/4/08 6.30 AM and 13/6/08 6:30 PM. Again type them into Excel like that, subtract, and the answer is 62.5 days.

But the caveat is: you must decide on the appropriate display format for your date/times from the many available.

So the problem with wanting computer intelligence is that needs to 'know' that the 35 in 0:35 is actually an integer 35 meaning minutes. But what if you had worked for 35 hours (35:00) that is also an integer now meaning hours.

This gets back to my original thesis: Your rate must be an amount divided by a time in the correct units.

Now that 0.02 you got is the number 0:35 expressed as a fraction of a day i.e. 35/24/60=0.024305556 days (to 9dp).

Don't expect the computer to 'know' if you are trying to compute 35 minutes at $23.08 per hour or 35 hours at $23.08 per hour - both are perfectly valid calculations and are handled well by Excel. Simply create your hourly rate by dividing $23.08 by 1:00, and then multiply the result by either 0:35 if you meant minutes and 35:00 if you meant hours. Its just a convenient convention.

My apologies for this exposition on Time. I am sure Numbers allows similar things but may use slightly different formats.

 
report abuse
vote down
vote up

lowededwookie said: July 10, 2008   Votes: +0

Don't apologise. This explanation just proves my point. It's also very interesting.

Since you showed me how to calculate the time I managed to workout how to turn it into a numerical value I can use in a proper calculation.

I have to admit that when it comes to maths I suck very very badly although I blame the school system for that. I had teachers who were really good at what they did but weren't so flash in explaining it. smilies/smiley.gif
 
report abuse
vote down
vote up

MattD said: August 06, 2008   Votes: +0

You can also use the time functions in Excel like =MINUTE( ) to serialise the value after you perform the calculation
 
report abuse
vote down
vote up

Write comment
You must be logged in to a comment. Please register if you do not have an account yet.

busy
Advertisement
Site developed by Bluengrey.com :: Joomla Template by Joomlashack
Joomla Templates by JoomlaShack Joomla Templates by Compass Design