# you have to program every output, right?



## kylefoley76 (Nov 9, 2010)

When designing a computer program, you have to define all inputs, and each input has to have one output, right?  

Moreover, a computer can not perform an output that it has not been programmed for, right?

I need to know this for a debate on artificial intelligence and philosophy of mind.


----------



## shg (Nov 9, 2010)

> each input has to have one output, right?


1+2=3 has two inputs and one output


----------



## kylefoley76 (Nov 9, 2010)

what about a computer can't perform an output that it hasn't been programmed for?

also I would think the equals sign would be the input.  everything to left of the equal sign is the input, everything to the right of the sign is an output.


----------



## shay06 (Nov 9, 2010)

shg4421 said:


> 1+2=3 has two inputs and one output


 
correct me if I'm wrong (as I very well may be )

wouldn't 1 and 2 be seperate individual inputs with + being the process that produces 3, the output?


----------



## shg (Nov 9, 2010)

> everything to left of the equal sign is *the* input, everything to the right of the sign is *an* output.


Input is collective and outputs are counted? I reckon if you get to fashion your own definitions, most anything is true.



> what about a computer can't perform an output that it hasn't been programmed for?


That is trivially true, until you start playing with semantics.


----------



## kylefoley76 (Nov 9, 2010)

ok, what about in artificial intelligence you would have to define every input.  A computer cannot define a new input on its own, right?

Also still waiting about whether or not a computer can perform an output that it hasn't been programmed for.


----------



## shg (Nov 9, 2010)

> ok, what about in artificial intelligence you would have to define every input


Just to keep this grounded, suppose you provide a concrete example?


----------



## MrKowz (Nov 9, 2010)

I'd argue the point that when two or more outputs conflict (bug/glitch), then an output that has not been exclusively programmed can occur.


----------



## kylefoley76 (Nov 9, 2010)

about the bugs: they usually just cause the computer to stall, right?  in any case, they certainly do something unwanted. 

re a precise example: let's say the computer is designed such that it "knows" or can handle a finite list of 20K english words.  if it encounters a foreign word not on that list, it can't do anything, right?


----------



## MrKowz (Nov 9, 2010)

kylefoley76 said:


> about the bugs: they usually just cause the computer to stall, right? in any case, they certainly do something unwanted.


 
Stalls are the least of the worries.  I can remember times when playing video games where sometimes text and numbers would be replaces with other sprites (pictures).  If I reset the game and made it back to that same point, that glitch may (or may not) occur.


----------



## shg (Nov 9, 2010)

MrKowz said:
			
		

> ... when two or more outputs conflict (bug/glitch), then an output that has not been exclusively programmed can occur


A buggy program is still a program, just not the one you intended. The computer, being annoyingly literal, would regard the output proudly as being precisely as programmed. 

Free to choose my own definitions, I'd say a computer that shorts and catches fire is demonstrating an unprogrammed output.


			
				kf76 said:
			
		

> if it encounters a foreign word not on that list, it can't do anything, right? <!-- / message -->


It will do whatever the hardware/software design dictates: ignore it, babble incoherently, go into an infinite loop, or catch fire.


----------



## MrKowz (Nov 9, 2010)

shg4421 said:


> It will do whatever the hardware/software design dictates: ignore it, babble incoherently, go into an infinite loop, or catch fire.


 
I'll be sure to omit the Application.Combust lines from my code.


----------



## xld (Nov 9, 2010)

MrKowz said:


> I'd argue the point that when two or more outputs conflict (bug/glitch), then an output that has not been exclusively programmed can occur.



It may have been programmed for, just not by the application that caused the conlict.


----------



## xld (Nov 9, 2010)

kylefoley76 said:


> about the bugs: they usually just cause the computer to stall, right?  in any case, they certainly do something unwanted.



Not necessarily unwanted, that might be the design.



kylefoley76 said:


> re a precise example: let's say the computer is designed such that it "knows" or can handle a finite list of 20K english words.  if it encounters a foreign word not on that list, it can't do anything, right?



If you have a list of 20k words, you woud be stupid NOT to assume that you may get one that is not in that list, so you have an exceptions path. That would handle English words not in the list, Freench words, Russian words, and so on. You don't have to program for every eventuality, just be smart enough to know that you haven't and act appropriately.


----------



## WaterGypsy (Nov 10, 2010)

kylefoley76 said:


> When designing a computer program, you have to define all inputs, and each input has to have one output, right?
> 
> Moreover, a computer can not perform an output that it has not been programmed for, right?
> 
> I need to know this for a debate on artificial intelligence and philosophy of mind.


 
Taking your questions literally:

Yes you have to program for all inputs otherwise they cannot get into the machine.... an input can be anything: light, sound, bits of data down a phone line ..... the list is pretty endless.

Just because a computer accepts some input it doesn't mean that it will generate an output from that - it's a waste if it isn't output, but I guess there are conditions that are checked and no action taken unless a limit is breached, but you could argue that the decision to do nothing is an output in itself.

Can a computer produce output that hasn't been programmed? No it can't. A computer can't do anything that hasn't been programmed .... but by the same token if you write an AI system that can "decide" what to do then you have programmed the computer to do something although you don't exactly know in advance what that something will be.

Enjoy the debate .... I think you'll come out of it with more questions than answers though


----------



## JamesW (Nov 10, 2010)

> but by the same token if you write an AI system that can "decide" what to do then you have programmed the computer to do something although you don't exactly know in advance what that something will be.


 
Wouldn't an AI system have to be give a list of options in the first place though, and it just chooses one based on x?

By that I mean, it can't just make something up randomly?


----------



## RoryA (Nov 10, 2010)

kylefoley76 said:


> Moreover, a computer can not perform an output that it has not been programmed for, right?



Define "computer".


----------



## Domski (Nov 10, 2010)

A bag of marbles.


----------



## Jon von der Heyden (Nov 10, 2010)

Two planks of wood!


----------



## WaterGypsy (Nov 10, 2010)

JamesW said:


> Wouldn't an AI system have to be give a list of options in the first place though, and it just chooses one based on x?
> 
> By that I mean, it can't just make something up randomly?


 
Excellent point .... for a computer to output something I'd imagine it would have to have a physical output device which would be limited to a certain type of output (e.g. a screen, speakers, a printer)...

... but say that AI computer had an internet connection what would there be to stop it deciding to order a piece of kit to be delivered to its location, and raising a work order for a human to come along and attach it so it could do something we hadn't programmed it to do?


----------



## Norie (Nov 10, 2010)

Isn't one of the thing rules?

eg there are rules to deal with input, and there's a rule to deal with unrecognized input - even if all it does is output an error.

And isn't this one of the problems - the amount/complexity of the rules that would be needed to simulate/recreate human intelligence.

A simple task could probably be broken done into simple rules, but the more complicated the task the more rules..., the more computing power needed... etc.


----------



## Andrew Fergus (Nov 10, 2010)

In answer to the original question 'you have to programe every output' that would also depend on the definition of output. 

For instance, there is voice recognition software that (I'm guessing) learns pattern recognition applies that to unknown inputs to produce unknown outputs. One wouldn't naturally teach the software words such as juxtaposition or defenstration, but it could probably work it out without being specifically programmed.


----------

