Copy Link
Add to Bookmark
Report

AIList Digest Volume 2 Issue 169

eZine's profile picture
Published in 
AIList Digest
 · 1 year ago

AIList Digest             Sunday, 2 Dec 1984      Volume 2 : Issue 169 

Today's Topics:
Planning - Constraint Propagation and Planning,
AI Systems - Crossword Puzzle Program? & Learn Program,
Cognition - Dignostic Reasoning,
Humor - State-of-the-Art Riddle Program,
Knowledge Representation - OPS5 Disjunctions
----------------------------------------------------------------------

Date: 3:26 pm Nov 29, 1984
From: chandra@uiucuxc
Subject: Constraint Propagation & Planning


Constraint Propagation in Planning


I am thinking of doing my theses on Planning. I read Mark Stefik's
theses on Planning with Constraints. I wanted to know if anybody has seen
any other papers on constraint propagation applied to

a) Planning

or b) Blocks world problems....

I am planning on a system that will generate constraints from the
physical interaction between blocks and use them to do heirarchical
planning to achieve goals. Still thinking...

- Navin Chandra

full arpa address is : chandra@uiucuxc@uiucdcs@RAND-RELAY.ARPA

Thank you

------------------------------

Date: 10:12 pm Nov 23, 1984
From: davy@ecn-ee
Subject: Crossword Puzzles?


Anybody got a nifty program to fill in crossword puzzles? Basically I
need something which, given a template of "white squares" and "black
squares"
and a list of words, will generate patterns of the words
placed into the template. All the program has to do is stick the words
in the holes and make sure all the vertical/horizontal combinations
are really words; it doesn't have to handle clues, etc.

Please mail responses to:

{decvax, ihnp4, ucbvax}!pur-ee!davy
ecn.davy@purdue.arpa

Thanks in advance,
--Dave Curry

------------------------------

Date: 12:32 pm Nov 19, 1984
From: rjs@okstate
Subject: Learn

I am intersted in making a 'learn' system for xlisp 1.2+. To do this
I find myself in need of many examples of not only style but
*ACTUAL WORKING CODE*. If anyone who has something that currently works
could send me a copy, I will try to build a learn system and will
subsequently post it to the net.

To these ends, a few guidelines should be adheard to:
1. These xlisp 1.2+ programs should be short, useful, and explain
some '*function*' that shows xlisp's abilities as a language.
2. Interest should be aimed at A.I. people and others that would like
to learn xlisp in a cursory manner (i.e. two approaches).
3. The 'version' of xlisp 1.2+ that we have has been modified via the
following net notes:
net.sources / mit-eddi!jfw / 12:23 am Sep 19, 1984
net.sources / mit-eddi!jfw / 4:21 pm Sep 21, 1984
net.sources / mit-eddi!jfw / 8:24 pm Sep 21, 1984
net.sources / mit-eddi!jfw / 8:56 pm Sep 24, 1984
net.sources / mit-eddi!jfw / 2:04 pm Oct 9, 1984
net.lang.lisp / ea!mwm / 1:52 am Oct 13, 1984
Any programs should be runnable on this system.

Many Thanks in Advance

Roland Stolfa (Stalfonovich),
Oklahoma State University

....!ihnp4!umn-cs!isucs1!\
.......!ucbvax!mtxinu!ea! > okstate!rjs
....!convex!ctvax!uokvax!/

------------------------------

Date: 7:21 am Nov 12, 1984
From: robison@eosp1
Subject: Re: Diagnosing strategies for humans

This is a followup on the discussion of how doctors reason when
doing diagnoses:

>I don't think it would alarm anyone who does deductive reasoning a lot.
>The method described IS deductive reasoning. As Sherlock Holmes once
>observed: 'when all that is impossible has been removed, whatever remains,
>no matter how improbable, must be the truth.' This doesn't prevent checking
>out the most probable (or the most easily tested) first.

Sherlock Homes did not, in my opinion, describe what doctors do.
In the first place, many tests are available to doctors, some simple
and inexpensive, to rule out the improbable. Usually these tests are
not performed until the more likely cases are checked out. A good
example is a diseased gall bladder. Its common symptoms are similar
(depending upon how people report them) to lower backpain, ulcers,
and other forms of gastric distress, including viruses. Doctors
almost always will do the more painful, and more expensive ulcer test
first (barium X-ray), before checking for gall bladder disease, which
is less common.

Sherlock Holmes always reasoned on the basis of very little
information, but he was careful to collect all he could at a given
moment, and then was ready to deduce from that the ONLY possibility,
however improbable. Doctors will collect some of the information
easily available to them, and then deduce the most probable cause,
no matter how many possible causes are still not ruled out.

Please recall that I'm not flaming about all this. Anyone who has
suffered from one of the less likely possibilities will prefer that
more deductive reasoning were used sooner; but I can appreciate that
doctors have a system that works a high percentage of time, and also
minimizes the number of tests required, at the cost of delaying correct
treatment to a relatively few cases. I'm not sure that any alternative
would be better.

- Toby Robison (not Robinson!)
allegra!eosp1!robison
or: decvax!ittvax!eosp1!robison
or (emergency): princeton!eosp1!robison

------------------------------

Date: 4:34 pm Nov 21, 1984
From: emneufeld@water
Subject: UNIX - ai

/*
For all you ai-ers, here's a great state-of-the-art
ai program that runs on UNIX. Compile this program
with the command

cc riddle.c -o ridde -lcurses -ltermlib

*/



#include <math.h>
# include <sys/types.h>
# include <sys/timeb.h>
#include <curses.h>


main()
{
int i,j;
char a,b,c;
savetty();
initscr ();
printw ("ask me a riddle...\n");
refresh ();
i = randy (10);
j = 0;
while ((c = getchar ()) != '\n') {
if (i = j)
srand ((int) c);
j++;
}
printw ("Gee! ");
refresh ();
sleep (2);
printw (" That's a tough one...");
refresh ();
refresh ();
for (i = 0; i < 10; i++) {
printw (".");
refresh ();
sleep (1);
};
printw ("\nI give up !! What's the answer?\n");
refresh ();
while (getchar () != '\n');
for (j = 0; j < 100; j++) {
i = randy (3);
move (randy (31), randy (70));
switch (i) {
case 0:
printw ("Hee hee!");
break;
case 1:
printw ("Har har!");
break;
case 2:
printw ("That's a good one!");
break;
case 3:
printw ("Yuk, yuk!!");
break;
default:
printw ("That's hilarious!");
break;
}
refresh ();
}
endwin();
resetty();
}

randy(i)
int i;
{
i = (int) ((double) i * (double) rand () / (double) 017777777777);
return (i);
}

------------------------------

Date: 7:01 pm Nov 13, 1984
From: neihart
Subject: OPS5 disjuction dilemma.

I have encountered a problem with ops5 as follows: since
disjunctions are implicitly quoted (see pg 18 of ops5 users'
manual), it is impossible to substitute a variable within a dis-
junction. This is needed in the following example where the ^sd
field of a passtx should consist of a vector of 2 elements; how-
ever, it doesn't matter which element is listed first, so the
condition element should succeed as long as the two elements are
present in any order. If there were a method to call functions
for arguments of the condition elements, a function could create
the proper disjunction, an admittedly clumsy solution; however,
the call mechanism only works on RHSs of productions!

I have also considered using two ^sds, ^sd1 and ^sd2,
storing the least of the two numbers in ^sd in ^sd1 and the other
in ^sd2, thereby eliminating the vector and using two scalar
variables. However, this won't work since the LHS of the produc-
tion is incapable of sorting the two variables (eg, <d> and <in-
put1> below), providing the proper target variable for ^sd1 and
^sd2. How can I get around this and allow the LHS condition ele-
ments 4 and 5 below to match regardless of the order of the two
^sd arguments?

(p Dflipflop
(inv ^name <inv1> ^input <input1> ^output <output1>)
(inv ^name <inv2> ^input <output1> ^ output <output2>)
(inv ^name <inv3> ^input <enable> ^output <output3>)
(passtx ^name <tx1> ^gate <enable> ^sd
;*** following line doesn't work since <d> and <input1> are taken literally.
{<< <d> <input1> >> <temp1>} {<< <d> <input1> >> <temp2> <> <temp1>})
(passtx ^name <tx2> ^gate <output3> ^sd
;*** following line doesn't work since <output2> and <input1>
;*** are taken literally, rather than their values being used.
{<< <output2> <input1> >><temp3>}{<< <output2> <input1> >><temp4> <> <temp3>})
-->
(make Dff ^name <inv1> ^clock <enable> ^Q <output2> ^Qbar <output1>)
(remove 1 2 3 4 5)
)

------------------------------

Date: 12:25 pm Nov 15, 1984
From: paul@ctvax
Subject: OPS5 Disjunctions

The solution is simple (though a little ugly). Productions themselves
are disjunctions. The idea is that rules be aranged into disjunctive
form, then each disjunction is a separate OPS5-rule. and each rule
is itself a conjunction (with possible negations).

(p variant1
...ce's that bind <foo1> and <foo2> ...
( <foo1> <foo2> )
-->
(make found))

(p variant2
...ce's that bind <foo1> and <foo2> ...
( <foo2> <foo1> )
-->
(make found))

(p var1orvar2
...ce's that bind <foo1> and <foo2> ...
(found)
-->
.... rhs goes here ...)

This way you can avoid duplication of the RHS.

paul.ct@CSNet-Relay
ctvax!paul

------------------------------

Date: 9:21 pm Nov 17, 1984
From: neihart
Subject: OPS5 Disjunctions

That certainly is a solution to the problem, but it gets inadequate
quickly. The number of productions needed to express a production which
has n vectors, with m order-independent elements each, is m to the
n productions! I've tried making a routine which would (build ..) these
productions automatically, however I've discovered that values in the
attribute-value pairs cannot be expressions which evaluate to a variable,
such as <x>!

------------------------------

Date: 9:36 am Nov 18, 1984
From: neihart
Subject: OPS5 Disjunctions

I've decided it is easier to make multiple version of the same thing in the
working memory, one for each possible permutation, than it is to just have
one copy with one or more complicated productions for matching. All the
versions can have the same value in the ^name field, so that as soon as one
is used, all working memory elements with the same name as the one just
used can be removed. This is still a clumsy way to get around the problem,
but does anyone know of any better method?

------------------------------

End of AIList Digest
********************

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT