Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

Manual Reference Pages  -  PTOOLS-MOPT (6)

NAME

mopt - multiple constant optimizer

Synopsis
Description
Examples
Algorithm
Author

mopt

DESCRIPTION

Mopt finds "optimal" combinations of scanning or bombing constants for corewar warriors. In contrast to other popular optimizers (optima, corestep) which optimize for a single step value, mopt is useful for optimizing complex bombing/scanning patterns of stones and cmp-scanners. The program asks for core size, target size, and up to 10 increment/offset pairs. "Increment" is the distance between two consecutive bombs/scans; "offset" is the position of the first bomb/scan relative to zero. Increments and offsets can be simply numbers or "generators" that provide a stream of numbers. If at least one generator is specified, mopt will find the 20 best combinations of increment/offset pairs, otherwise it will report the score for the specified increment/offset combination. Generators have a syntax similar to for-loops in the C language (see examples below) and use single letter variables A through Z. You don’t have to use them in sequence, i.e. A for increment generator #1, B for offset generator #2 etc..

EXAMPLES

1) Suppose we have a stone:

```

spl #A,<B
mov <-2,-2
jmp -2

```

and we want to find optimal values for increments A and B:

```

Coresize: 8000 <enter>
Increment value or generator #1: a=4,a<8000,a=a+4 <enter>
Offset value or generator #2: 0 <enter>
Increment value or generator #2: b=1,b<8000,b=b+2 <enter>
Offset value or generator #3: <enter>

```

2) Now a carpet-bombing cmp-scanner:

```

sub incr,1
cmp 0,C
...
incr    spl #-A,<-B
...

Coresize: 8000 <enter>
Increment value or generator #1: a=2,a<4000,a=a+4 <enter>
Offset value or generator #2: c=10,c<15,c=c+1 <enter>
Increment value or generator #2: b=a <enter>
Offset value or generator #3: <enter>

```

3) Lastly, a spl/jmp bombing cmp-scanner:

```

sub incr,1
cmp 0,C      ;C is A/2
...
incr    spl #-A,<-B
...

Coresize: 8000 <enter>
Increment value or generator #1: a=2,a<4000,a=a+4 <enter>
Offset value or generator #2: c=a/2 <enter>
Increment value or generator #2: b=a <enter>
Offset value or generator #3: <enter>

```

ALGORITHM

Scoring is based on Nandor Sieben’s iterative optima algorithm with two modifications: A variable gap cut-off ("target size") is used and early gaps weigh more than late gaps.

AUTHOR

Stefan Strack (stst@vuse.vanderbilt.edu)
Search for    or go to Top of page |  Section 6 |  Main Index

 PMARS PROJECT MOPT (6) May 15, 1994

Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.