Boid writeup idea

Andrew Mcelroy wrote:

I have spent the last 4 years thinking about async distributed systems.
I am not a AI researcher but I do work with statistical classifiers for
computer vision.
This system sounds like an expert system that asserts things in a
distributed manner.

Oh. Yes, that’s a good way to put it. Now we can begin the conversation
on the topic, I think…
Since ‘thunk’ seems to love ‘boid’, I think instead of Expert System
Which Asserts Things In A Distributed Manner, we should call it
ESWATIADM.

Each mini expert would modify and score the design. In effect they became
the fitness function for the GA. It was largely a blackboard system, the GA
threw the initial data onto the blackboard and the experts adjusted it until
either they cycled or no one could find anything else to do. Then it went
back to the GA.

This smacks of something similar:

But mini-expert is too much, these “boid” entities are more
“nano data gathers with mosquito like wits” or some suitably be-humble-
ified equivalent. Seriously. (Maybe that’s why it takes 10k or so of
them to take over the vacuum department at WalMart. )

They make maybe 2-5 assertions.

And are only interested in Pass/Fail.


Mixed into this is the fact that they do not actually “make
decisions”, so much as cause things to happen with respect to the
HelperClasses - see Ruleby - I think same concept.

To add a little more confusion there are already three "boid"ypes:
Verify (pass/fail), Review (push through a human opinion), and Report
(outputs something for humans - so it gets a little fuzzy what is
being compared to what. And there is more but… THANKS for giving me
something concrete to compare to)

PETER,

I’ll be very interested if the two systems seem similar to you!

PS
I am a humble programmer, and I like programming much more than
talking or writing about it. I’m still trying to understand why “the
web” doesn’t seem to use anything like this stuff yet. If it was
pounded out 20 years ago, I’d expect that I’d see some evidence of
this kind of thing working. And in my defense, I have backed into this
trying to solve a real problem and make an honest living from here in
the woods. Boids were the last thing on my mind when I started this
project.

I see the greatest leverage as being from “externally contributed” but
I’ve written about that already. And I do not see the Financial stuff
as the best domain to show off in by any means.

On Mon, Mar 29, 2010 at 8:41 AM, Aldric G.
[email protected]wrote:

What you are describing is just a decision-making system. “The web” uses
this for things like finding the fastest route from one host to another.
Some people use it to play tic-tac-toe, chess or reversi, or are
attempting to use it to play the game of go.

Any suggested resources? I’d be curious to see how it works. Currently,
I’m
just using Minimax to play 4x4x4 tic-tac-toe. And I’m doing it in C at
that

thunk wrote:

Boids were the last thing on my mind when I started this
project.

They are the last thing on our mind now, too.

When I use a word,' Humpty Dumpty said, in rather a scornful tone,it means
just what I choose it to mean – neither more nor less.’ " - Lewis Carroll,
Through the Looking Glass

Please, -please- stop using the word Boid. Every time you do, the
conversation jumps backwards.


What you are describing is just a decision-making system. “The web” uses
this for things like finding the fastest route from one host to another.
Some people use it to play tic-tac-toe, chess or reversi, or are
attempting to use it to play the game of go.

Almost half my AI course was search and how to implement it in half a
dozen
languages that no one uses (lisp, prolog, ml, pop11, c and pascal). The
other half was using heuristics to speed up the search. Even neural
networks
and genetic algorithms can be viewed as search problems (GAs more so
than
NN).

It all came down to finding the correct representation for the problem
space
and then finding the best way to navigate it.

So learning search is good.

Guys,

Never thought about playing games with this, but yes, depending on the
helper class design this thing, as far as I can see, could play tic
tac toe against 100’s of very quick kids at one time. Or checkers. I
did those in the 70’s.

It could also play just about all the games at the same time, and
without the change of a single line of code except the helper_classes
it could be taught new games. The output on the other-side of the
“reader” would also have to be modified to inform humans of its
decision.

Chess I don’t feel qualified to answer. However, given that the
helper library could be using historical moves, or some sort of
internal score on all allowed moves to some depth I can’t see why
not.

And it might be of note that the rules could be contributed from folks
on the web. That’s rather the part that trips my trigger.

I woke up thinking about “inside-out programming”. There’s top-down
and bottom up (?) - why not “inside out” - maybe that is the term :slight_smile:
that is escaping me/us (as I can’t think of a posting saying what
these things should be called). It’s “inside out” because the guts of
the decisions that would be nested into 3-4-5 levels of c has been put
at the top.

Going with the “guts” - visualize your stomach being replaced with
1000 tubes that go into and out of your body? No, on second thought,
don’t.

Figuring chess match time, it would be interesting to figure out at
2,000 “fully fired” mini-plug-lets per second what kind of depth could
be achieved on all he average number of available moves. Ruby just
has to be too slow to compete with Deep Blue style code? Not of my
interest to me except to do head to head against something
specialized.

I was thinking about “Minimal Program Units” - for “Boid”. It was the
"Swarm"concept that seems to fit so well, that has helped me think
about this, that attracted me to that term in the first place.

Josh C. wrote:

On Mon, Mar 29, 2010 at 8:41 AM, Aldric G.
[email protected]wrote:

What you are describing is just a decision-making system. “The web” uses
this for things like finding the fastest route from one host to another.
Some people use it to play tic-tac-toe, chess or reversi, or are
attempting to use it to play the game of go.

Any suggested resources? I’d be curious to see how it works. Currently,
I’m
just using Minimax to play 4x4x4 tic-tac-toe. And I’m doing it in C at
that

I’ll wait for someone with actual experience in AI to correct me, but I
think that in truth, for TTT, Chess and Reversi, it seems to be more
about the decision tree (and, sometimes, a huge library of moves) than
about getting a bunch of true/false answers - so Minimax is a good way
to do it, and your next step would be to look at A* (A star) search.

As far as weiqi/go is concerned, the search tree is so big that using an
Expert System may be a viable option…

On 2010-03-29, thunk [email protected] wrote:

Never thought about playing games with this, but yes, depending on the
helper class design this thing, as far as I can see, could play tic
tac toe against 100’s of very quick kids at one time. Or checkers. I
did those in the 70’s.

Again, this tells us nothing.

What’s “this”?

I was thinking about “Minimal Program Units” - for “Boid”. It was the
"Swarm"concept that seems to fit so well, that has helped me think
about this, that attracted me to that term in the first place.

But you still haven’t told anyone what you’re talking about.

Imagine someone giving a lecture on anatomy, and constantly saying
things like:

It’s connected to the other things. You have to think about
its chemical composition to see what it does. I wonder whether
anyone could use it to play games.

… and never saying “I am talking about the hard whitish parts of the
body which form a sort of general structure for the rest of it.”

If you can’t see how this is missing, I don’t think it matters whether
your
idea is brilliant or stupid – since no one will ever know what you’re
saying,
nothing will come of it.

If you’re serious, come up with some DEFINITIONS. Start there.

-s

The decision has been made. We are going to just follow one or two
“commercial paths” and let the rest of all this slide until we have
“touched bottom”. A couple of us were interested in pulling a
framework out of it now, hooking it up to something non-proprietary,
and setting that out there for you Ruby folks to poke around on in
time for the Midwest Conference.

Deadlines are something I don’t deal with well, reminds me too much of
when I had to work for a living :slight_smile:

On Mar 29, 2010, at 4:35 PM, thunk wrote:

when I had to work for a living :)\
Enough talk about this thing. COde on github or it did not happen
period. It all sounds very interesting but you are talking jobberish
unless you let us see the code for ourselves. Ruby folks are a very
hands on type of folk and if you don’t show us some code could you
please show us the respect of shutting up about it?

Thanks
Ezra Z.
[email protected]