The prospects are rather bright. Preliminary analysis of the computational results on an old 486 Intel machine showed that it is possible to generate several thousands objective functions within a few hours. Of course, not all of them are new. Nevertheless, it should be possible to write several hundred technical reports a year based on this scheme.

These reports can then be submitted to journals.

Even if only a fraction of these papers get accepted, a conservative estimate shows that it should be possible to produce about 10-20 publications a year. This is a great advantage for young scientists, whose prospects of getting a position are based only on the number of publications they have. Moreover, with a correspondingly enlarged bibliography, it should also be easier to get funding.

Further work should now be directed to automatic report-writing programs, which can improve the quantity of the output even more. However, it might be argued that the scheme outlined above puts a great pressure on the peer-review system, employed by most editors in the scientific publishing business, on the publishers, who have to print all these results, and on the readers. But the publishing houses can simply increase the prices for the journals, and nobody reads scientific publications anyway. What remains is the problematic refereeing process. To facilitate this process, an automatic rejection generator, following the lines of the program above, is in development. Further research is under away.

**Disclaimer.**
The author takes no responsibility for any kind of damage to a brain
or to a career that this work produces. The views and opinions expressed
in this work are those of the author. No person except the author has
proofread this paper, and the author did not listen to any suggestions
at all. Moreover, while producing the scientific results outlined in this
work, the author was neither partially nor fully supported by a grant from
a research agency.

**Appendix. The Source Code**

PROGRAM Generator; CONST place = '@'; CONST max_places = 255; CONST max_no_op = 127; CONST max_depth = 255; CONST max_unknowns = 255; VAR no_op : 1..max_no_op; VAR no_place : 0..max_places; VAR depth : 1..max_depth; VAR unknowns : 1..max_unknowns; VAR i, position, newindex : INTEGER; VAR formula, localformula, newpart, firstpart : STRING; VAR operator : ARRAY[1..max_no_op] OF STRING; VAR index_place : ARRAY[1..max_places] OF INTEGER; VAR inputfile : TEXT; BEGIN; RANDOMIZE; ASSIGN(inputfile, 'rules'); RESET(inputfile); READLN(inputfile, depth); READLN(inputfile, unknowns); READLN(inputfile, no_op); FOR i := 1 TO no_op DO READLN(inputfile, operator[i]); CLOSE(inputfile); formula := place; FOR i := 1 TO depth DO BEGIN; localformula := formula; no_place := 0; REPEAT position := POS(place, localformula); IF (position<>0) THEN BEGIN; no_place := no_place + 1; IF (no_place=1) THEN index_place[1] := position ELSE index_place[no_place] := position + index_place[no_place-1]; DELETE(localformula, 1, position); END ELSE localformula := ''; UNTIL(localformula=''); position := index_place[1+RANDOM(no_place)]; newindex := 1 + RANDOM(no_op); newpart := operator[newindex]; DELETE(formula, position, 1); INSERT(newpart, formula, position); END; WRITE('f('); IF (unknowns=1) THEN WRITE('x_1'); IF (unknowns=2) THEN WRITE('x_1, x_2'); IF (unknowns=3) THEN WRITE('x_1, x_2, x_3'); IF (unknowns>3) THEN WRITE('x_1, \ldots, x_{',unknowns,'}'); WRITE(') :='); REPEAT i := POS(place, formula); IF (i<>0) THEN BEGIN; firstpart := COPY(formula, 1, i-1); DELETE(formula, 1, i); WRITE(firstpart); WRITE('x_{',1+RANDOM(unknowns),'}'); END ELSE BEGIN; WRITELN(formula); formula := ''; END; UNTIL(formula=''); END.

Tue Dec 21 21:12:32 CET 1999