Matt,
Here is a program that feels pain.
I got the logic, but no pain when processing the code in my mind.
Maybe you should mention in the pain.cpp description that it needs to
be processed for long enough - so whatever is gonna process it, it
will eventually get to the 'I don't "feel" like doing this any more'
point. ;-)) Looks like the entropy is kind of "pain" to us (& to our
devices) and the negative entropy might be kind of "pain" to the
universe. Hopefully, when (/if) our AGI figures this out, it will not
attempt to squeeze the Universe into a single spot to "solve" it.
Regards,
Jiri Jelinek
On 6/11/07, Matt Mahoney <[EMAIL PROTECTED]> wrote:
Here is a program that feels pain. It is a simulation of a 2-input logic gate
that you train by reinforcement learning. It "feels" in the sense that it
adjusts its behavior to avoid negative reinforcement from the user.
/* pain.cpp - A program that can feel pleasure and pain.
The program simulates a programmable 2-input logic gate.
You train it by reinforcement conditioning. You provide a pair of
input bits (00, 01, 10, or 11). It will output a 0 or 1. If the
output is correct, you "reward" it by entering "+". If it is wrong,
you "punish" it by entering "-". You can program it this way to
implement any 2-input logic function (AND, OR, XOR, NAND, etc).
*/
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
// probability of output 1 given input 00, 01, 10, 11
double wt[4]={0.5, 0.5, 0.5, 0.5};
while (1) {
cout << "Please input 2 bits (00, 01, 10, 11): ";
char b1, b2;
cin >> b1 >> b2;
int input = (b1-'0')*2+(b2-'0');
if (input >= 0 && input < 4) {
int response = double(rand())/RAND_MAX < wt[input];
cout << "Output = " << response
<< ". Please enter + if right, - if wrong: ";
char reinforcement;
cin >> reinforcement;
if (reinforcement == '+')
cout << "aah! :-)\n";
else if (reinforcement == '-')
cout << "ouch! :-(\n";
else
continue;
int adjustment = (reinforcement == '-') ^ response;
if (adjustment == 0)
wt[input] /= 2;
else
wt[input] = 1 - (1 - wt[input])/2;
}
}
}
-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?member_id=231415&user_secret=e9e40a7e