[alicebot-archcomm] more random <random>

Conan Callen alicebot-archcomm@list.alicebot.org
Sun, 28 Apr 2002 14:33:51 -0700


Here you go - http://random.mat.sbg.ac.at/links/index.html - Knock yourself
out!

The below ideas are not requests for new features, they are simply provided
as food for thought (just for fun).

Other ways to approach the random problem ...

1. This idea makes the assumtion that natural conversation is not always
random, but sometimes guided by underlying goals & motives. During the
conversation each person is trying to develop a profile of the other person
to give the correct answer and to present it in the most acceptable way.
This could happen at a job interview, a singles bar or in a sales or support
scenario.

One way to implement this in Aiml would be, when confronted with a <random>
response, rather then trying to pull out a purly random answer, try to match
the answer that best matches the persons profile (values stored in different
vars).

2. Another twist on this - Many people give the same basic answer, but vary
the way they construct their sentences. Rather then having 17 random
sentences, there could be one sentence that can be mangled in many different
ways.

Conan

----- Original Message -----
From: "Noel Bush" <noel@alicebot.org>
To: "Alicebot and AIML Architecture Committee"
<alicebot-archcomm@list.alicebot.org>
Sent: Sunday, April 28, 2002 12:17 PM
Subject: Re: [alicebot-archcomm] more random <random>


> I'm always immediately ready to believe that I'm the stupidest person in
> the room, and that with every word out of my mouth I only add more
> evidence that I'm utterly incompetent to express any thought or
> opinion.  But that doesn't stop me from hoping that someone with more
> expertise will come along and help give form to the formless, so to
> speak.
>
> Do you have a prediction, mystical intuition, rock-solid proof,
> anything, regarding something like "shuffle" and whether it's needed?
> People who are building various bots for different applications seem to
> be expressing a need.  Can someone who has already picked up several
> statistics books provide some articulation to this need?
>
> On Sun, 2002-04-28 at 23:06, Dr. Richard S. Wallace wrote:
> > My suggestion is to pick up a statistics book.
> >
> > Rich
> >
> > ----- Original Message -----
> > From: "Noel Bush" <noel@alicebot.org>
> > To: "Alicebot and AIML Architecture Committee"
> > <alicebot-archcomm@list.alicebot.org>
> > Sent: Sunday, April 28, 2002 12:02 PM
> > Subject: Re: [alicebot-archcomm] more random <random>
> >
> >
> > > Thanks, John and Rich, for the informative replies.
> > >
> > > I guess my concern has to do with an unanswered requirement that seems
> > > to be lurking, not the nature of randomness itself.  The point about
> > > never finding an even distribution in a small sample is definitely
> > > important.  And it helps me to understand better the need for a
> > > variation on the <random> theme, as was recently discussed on the
> > > mailing list.
> > >
> > > As in,
> > >
> > > <shuffle>
> > >   <li>One thing.</li>
> > >   <li>Another thing.</li>
> > >   <li>And so on.</li>
> > > </shuffle>
> > >
> > > In which one item is chosen each time, "randomly" (without further
> > > discussing what that is), and then the same element will not be chosen
> > > again in the same bot-user context until all elements from the
<shuffle>
> > > have been "used up".
> > >
> > > I think this meets a need for what people would tend to mislabel
> > > "random" (myself included).  It could be that this function is even
more
> > > needed than an actual <random>, since people are actually seeking a
way
> > > to create "varied, not-so-repetitive" responses, not really something
> > > that corresponds to a mathematical definition of random.
> > >
> > > On Sun, 2002-04-28 at 20:30, John Foderaro wrote:
> > > >
> > > >
> > > > >> The problem is that if two different <random> elements are
> > > > >> imagined to each have an independent random "space", tying all of
> > their
> > > > >> choices to the same sequence of pseudo-random numbers really
throws a
> > > > >> wrench into the works.
> > > >
> > > >  I know what you're saying but I don't think there is anything to
worry
> > > > about.  Random number generators will produce a nice even
distribution
> > > > but only over a very large number of samples.  If you're asking
> > > > for a random number between 0 and 4 (inclusive) and call random 5
> > > > times you almost certainly won't get each number chosen once.
> > > > And that's the correct result since the odds of that happening
> > > > if the random number generator were truly random is very small.
> > > >
> > > > I wrote little test program to show this:
> > > >
> > > > If I chose 5 random numbers I get one 2, two 3's and 2 4's.
> > > >
> > > > cl-user(31): (testit :count 5)
> > > > 0: 0  0.0d0
> > > > 1: 0  0.0d0
> > > > 2: 1  0.2d0
> > > > 3: 2  0.4d0
> > > > 4: 2  0.4d0
> > > >
> > > >
> > > > If I chose one million random numbers I get this distribution.
> > > > Now the distribution is very nice over the 5 possible numbers:
> > > >
> > > > cl-user(32): (testit :count 1000000)
> > > > 0: 199398  0.199398d0
> > > > 1: 199834  0.199834d0
> > > > 2: 200394  0.200394d0
> > > > 3: 200158  0.200158d0
> > > > 4: 200216  0.200216d0
> > > >
> > > >
> > > >
> > > > Suppose that after every 7th random number I obtain I call
> > > > the random number generator and throw away the value.  This is
> > > > simulating the case of running another <random> tag with a
> > > > different number of elements.
> > > >
> > > > We still end up with a nice distribution:
> > > >
> > > > cl-user(34): (testit :count 1000000 :toss-out 7)
> > > > 0: 200119  0.200119d0
> > > > 1: 200194  0.200194d0
> > > > 2: 199914  0.199914d0
> > > > 3: 199833  0.199833d0
> > > > 4: 199940  0.19994d0
> > > >
> > > >
> > > > So I don't think there is any need to create multiple independent
> > > > random number sequences, one for each <random> tag.
> > > >
> > > >
> > > > --john foderaro
> > > >
> > > > ps. here's my test code
> > > >
> > > > (in-package :user)
> > > >
> > > > (defvar results (make-array 5))
> > > >
> > > > (defun testit (&key (count 10000) (toss-out 0))
> > > >   (dotimes (i (length results)) (setf (svref results i) 0))
> > > >
> > > >   (dotimes (i count)
> > > >
> > > >     ; throw out a random result periodically
> > > >     (if* (and (> toss-out 0)
> > > >       (zerop (mod i toss-out)))
> > > >        then (random (+ (length results) 4)))
> > > >
> > > >     ; now collect some random info
> > > >     (incf (svref results (random (length results)))))
> > > >
> > > >   (dotimes (i (length results))
> > > >     (format t "~d: ~d  ~s~%"
> > > >     i
> > > >     (svref results i)
> > > >     (/ (float (svref results i) 1.0d0) count)))
> > > >   )
> > > > _______________________________________________
> > > > alicebot-archcomm mailing list
> > > > alicebot-archcomm@list.alicebot.org
> > > > http://list.alicebot.org/mailman/listinfo/alicebot-archcomm
> > > >
> > >
> > >
> > > _______________________________________________
> > > alicebot-archcomm mailing list
> > > alicebot-archcomm@list.alicebot.org
> > > http://list.alicebot.org/mailman/listinfo/alicebot-archcomm
> >
> > _______________________________________________
> > alicebot-archcomm mailing list
> > alicebot-archcomm@list.alicebot.org
> > http://list.alicebot.org/mailman/listinfo/alicebot-archcomm
> >
>
>
> _______________________________________________
> alicebot-archcomm mailing list
> alicebot-archcomm@list.alicebot.org
> http://list.alicebot.org/mailman/listinfo/alicebot-archcomm
>