next up previous
Next: About this document Up: A Problem Generator Previous: Numerical Results

Outlook

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.


next up previous
Next: About this document Up: A Problem Generator Previous: Numerical Results

Joerg Fliege
Tue Dec 21 21:12:32 CET 1999