(C) With 'Light', Serpukhov, 1996
SPECTRUM AND EXPERT SYSTEM
We want to immediately respond to a question - why and why
and where it is used? And most importantly - is it really
possible to implement a Spectrum? Respond immediately - you
can, even at 48K. But first, let immediately determine that
such an expert system. Under the expert system means a computer
system that can offer sensible advice, or make a reasonable
solution to the problem at available some of the original data.
An example of expert systems on the Spectrum can be used in
the first place, strategic games, and even more chess programs.
This assertion is based on the definition of an expert system,
which is approved by the Board of Specialists in expert systems
British Computer Society.
Of course, this article does not claim to be complete
coverage of this section, but we hope it will, at least
piqued your interest in this area, which borders on the
artificial intelligence.
In this paper we consider an expert system which involves
human presence in the initial decision-making process, ie, in
education system.
Considered here an expert system may be simply represented as
the following algorithm:
Input
> Variables
Application
current
decisive
Rules
Assumption
the possible
outcome
All is good, but at an early stage in such an expert system
does not contain data that the program could give the assumption
about the possible outcome. And here on the stage by a man who
acts as a teacher, entered into the computer those variables
for which precisely known outcome, the person teaching it. Thus
initially, ie at the training stage, the algorithm of the
expert system might look as follows:
Input
> Variables <
Application
current
decisive
Rules
Assumption
the possible
outcome
Yes
This is true
No
Modification
decisive
Rules
As can be seen from the algorithm, simple expert system is
easy implemented on the Spectrum. In proof of this on the
algorithm draw up a program in BASIC, as a matter of common
language. When want this program to easily translate into any
language, even assembler. For simplicity, assume that there are
only two possible outcomes: for example, tomorrow it will rain
tomorrow and it will not rain. If you enter and to run this
program, it asks the question about the number of involved
variables.
Number of the variable variable name
1 Pressure rises
2 Pressure drops
3 Wind is
4 No wind
Clearly, the choice of variables lies entirely on your
knowledge and abilities. Then, in memory of the machine creates
three arrays. Array R - must contain the rules of inference
judgments (which is developing a computer), an array of V -
variable values represented in this particular case, array V
$ - used to store the variable names.
The program asks for the names after the launch of these
variables. She also asks for the names of variables and O $ B $
- two possible outcomes. Next, find out details of a specific
example (for a given program requires answers to yes / no).
Having collected all the necessary information, the program
makes the assumption regarding the possible outcome. When you
agree with the system, enter Y, or N - if not According to ".
Then move on to another example. Thus the process of machine
learning. It should be noted that the machine is gradually
improving its prediction regarding the possible outcome, though
how much better - depends on what information you have entered
at the beginning.
(Ed. - Training system goes much better if you enter into it
Real case of the facts - and whether there was actually rain -
and not the consent or disagreement with its decision).
And now he is listing the program.
10 CLS
20 INPUT "Enter the number of VARIABLES"; VAR
30 DIM V (VAR): DIM R (VAR): DIM V $ (VAR)
40 FOR I = 1 TO VAR
50 V (I) = 0
60 R (I) = 0
70 NEXT I: PRINT
80 PRINT "Name these variables'
90 FOR I = 1 TO VAR
100 INPUT "variable name:"; V $ (I)
110 NEXT I: PRINT
120 PRINT "Name the possible outcomes:"
130 INPUT "FIRST EXODUS:"; O $
140 INPUT "SECOND EXODUS:"; B $
150 PRINT
160 FOR I = 1 TO VAR
170 V (I) = 0
180 PRINT "VARIABLE:"; V $ (I)
190 INPUT "IS THIS VARIABLE <Y/N>"; A $
200 IF A $ = "Y" OR A $ = "y" THEN LET V (I) = 1
210 NEXT I
220 DC = 0
230 FOR I = 1 TO VAR
240 DC = DC + V (I) * R (I)
250 NEXT I
260 PRINT "possible outcome -";
261 IF DC> 0 THEN PRINT O $
262 IF DC <0 THEN PRINT B $
270 INPUT "It is true <Y/N>"; A $
280 IF A $ = "Y" OR A $ = "y" THEN GOTO 150
290 IF DC> 0 THEN FOR I = 1 TO VAR: R (I) = R (I)-V (I):
NEXT I
291 IF DC <0 THEN FOR I = 1 TO VAR: R (I) = R (I) + V (I):
NEXT I
300 GOTO 150
Once you decide that you have trained their expertise
throughout the system in the world, can be safely deleted from
the program training unit (not Remember only to keep the arrays
with data) and include the program of what else the program, or
use it independently (eg for the prediction of rain for days to
come).
We represent, however, that we have incorporated this expert
system in strategic game, and the computer on the basis of this
system operates a kind of fighting robots having very little
protection and the most weak means of attack. We also assume
that our system embedded rule to destroy all enemy objects
within sight. And here may come a time when this robot is very
weak heroically climb into your rocket launcher, and as a
result, about it will remain so. Here we have two options:
first - to describe it all possible situation (which is not
very realistic) and the second - to enter into ability to
navigate the system with minimum and maximum variable values.
In simple terms - to make sure that our hypothetical robot say
to the protection of 1 unit is not useful in a fight with robot
having protection in 20 units. Then a block diagram of the
expert system will be as follows:
Home
<
Request
variables
Selecting the most
> Probable
outcome
Yes
Can set
nye minimal
nye and maxi
mum value
of influence
the choice of excitation
ble
outcomes
No
DECISION
I must say that this block diagram is not perfect, but
due to the fact that the minimum and maximum values of the
variables checked only when necessary - the algorithm is
obtained pretty quick.
I must say that speed is not the last role.
Of course, when you build an expert system that puts
medical diagnoses, then there performance is not very crucial.
Another thing - computer games. Here you can even donate some
intelligence for speed program.
But the point here is this: There are two types of production
solutions - parallel and serial. Here's their flowcharts:
Variable Request variable <
Can I predict
some initial NO
YES
The outcome of a possible outcome
Parallel Sequential
solution solution
Undoubtedly, the sequential solution is faster, so
as a parallel solution requires the input of all the known
variables, and consistently unable to conclude that using only
part of them. By the way, there is speculation that this is how
the human brain works in decision-making.
There is no doubt that in general the parallel procedure to
get a more accurate solution than consistent.
However, in this case agree that we are interested
higher speed of calculation than the correctness of the
decision. Calculation algorithm in this case is as follows:
Home
<
Request
variable
Selecting the most
> Probable
outcome
Yes
Can set
nye minimal
nye and maxi
mum value
expressions for the remaining
variables
affect
choice of excitation
can proceed
No
DECISION
Thus, we have a fast algorithm that describes
effect of expert system in reaching a decision.
Naturally, the material in this article does not describe
all possible solutions and algorithms on this issue, because
the problem of artificial intelligence has not been solved so
far. However, simple algorithms may apply even when programming
on the Spectrum. A realization of these Algorithms for you. So
what? you undertake to create intelligent Speccy program?
Those who liked this idea can write their thoughts on the
following address: 142214 Serpukhov, st. Podolsky, D., 107
square meters. 57.