
================
PERTO Quik-Start
================

If you have already performed a run with PERTO and are ready to put it to 
use, this section provides one approach. If this is your first experience 
with PERTO, see the Section titled, "General," below.

Creating a repertoire collection of "single candidate move" games
-----------------------------------------------------------------

Say you have already selected a position (a main line) upon which you wish 
to model your repertoire. You intend to create a small collection of games 
in which your move choices will be tailored and limited to just a single 
move to meet whatever position your opponent presents you with. (For an 
example of such a file, download B96repo.zip.)

The first step is a selection of games from your database. Work from
specific to general. The first file of games extracted might be all those
sharing the same ECO....or all those having a common move sequence but
falling somewhat short of the final, selected position.

A second file might be extracted from similar games--but a bit more
general. Perhaps the parent opening.

At mininum, there should be at least three files in the pyramid--specific 
to general. The final one should be a sampling of all games in your 
collection--giving it as little bias towards openings or players as 
possible. Selecting all games for a single year, or a portion of a year, 
is a good approach.

Run PERTO against the three (or more) files. Make sure your selected 
position is included in at least one game in at least one file of those in 
the search array. If there is any chance it might not be, include the line 
file again as a "search file." Select both reports; set "perspective" for 
your choice of color.

	Hint: by always specifying the line file first in the search
	array, you will be assured that your line appears intact in the
	"Tabbed Report."

At run completion, examine the Tabbed Report (LineRpt2.txt). There will 
likely be a number of odd approaches to your position dictated by your own 
side (color). Delete these lines. (For instance, if you are looking at the 
Sicilian from a White perspective, you could achieve your position by 
playing 1.Nc3, but seldom would this be your choice if you actually wished 
to coax a Sicilian from your opponent.) Deleting such lines will simplify 
the report considerably. (You could however decide to keep several to 
alter your approach--but then it would not be a "one-candidate" 
repertoire.)

Now examine your opponent's "stoppers" list at the top of the report.
Eliminate any that may have referenced (only) the lines you deleted.

The counts of the stoppers provide a good sampling of the frequency of 
opponent's expected moves. You should use some consistent portion of the 
number to choose games for your repertoire collection--e.g., if a count 
was 80, and you intend to target 10%, you might wish to select eight games 
representing that move.

Now comes the hard part... You will have to assemble such games and then 
find the most reasonable continuations. For this purpose, the 
tree-searcher, ChessU3 is invaluable. Print 100 or so games of each 
stopper type from your database, analyze with ChessU3--selecting-out your 
target amount (it was eight, wasn't it?). Be honest in an appraisal; don't 
just select games where your side wins but rely on ChessU3 to choose the 
most realistic outcome as it approaches the end of a branch.

As your games are chosen, they can be saved aside with ChessU3 (Option-G 
or Option-V). Once you've accumulated a batch, it may be necessary to 
normalize some openings of the selected games. This is fairly easily done 
by comparing strings with your editor. If the U3 line matches the game 
immediately below it, the game is fine as is. If not, copy the U3 line and 
paste it over the corresponding moves of the game.

	Important: label all such games "(normalized opening)" so
	that they don't inadvertently stray into someone's historical
	collection.

U3 "lines" can be deleted once they have all been compared or pasted. Keep 
the games! Use ChessU4 to review. (You will also find ChessU4 handy for 
position searching and checking.)

That's all there is to it. Gradually accumulate the batches and you might
end up with 50 to 100 games. When done, check your game file with ChessU3
to see if there are any strays--two or more conflicting moves for your
color at a single position. Randomize the collection with PGNSort (Sort
Key > Random). Your repertoire is ready for play and review!

=================
PERTO.EXE General
=================

	Note: only the most recent versions of ChessU3 & ChessU4 accept
	the * game result terminator. PERTO creates this terminator but
	it can be converted to "1/2" with your editor.

"PERTO" is short for "repertoire" (and a good way to learn to spell it).It
starts with a single board position (expressed as the end of a line of
notation), then works backwards through game collections to find ALL
POSSIBLE move sequences that could reach the position. In doing so, it
identifies all "stoppers" as well. A stopper is a move that would take
one, irretrievably, away from the position. The idea is to help OTB
players establish an opening repertoire and to help correspondence players
achieve a winning position.

PERTO can accept multiple game collections--in fact it will produce better
results the more games there are. You can open up to 10 game files--or up
to 8000 total games.

To understand what game files should make up the search criteria it is
useful to think of a pyramid: at the top (the first file searched) there
should be a tight collection of games very similar to the line being
investigated. This might be accomplished with opening collections or by
selecting out games from your database having the associated ECO.

Next would come games of a more general classification but still similar to
the line of interest. If the first file was organized by ECO, the second
might be by opening name.

There can be several stages but at the "bottom"--the last search
file--should come a mixed collection containing all openings. This is not
only because transpositions can come from anywhere, but also because the
general collection helps fill in most accurately the average
"alternative-expectation" number for moves early on in the chosen line.

	[To build a general collection I selected games from the
	past year from my Chess Assistant database. (Selecting by year
	tends to avoid bias toward certain openings.) These games were
	printed as PGN, then HighRank.exe was used to weed out the
        amateur games. Next the collection was randomized with an option
	of PGNSort.exe. Randomization is not necessary for PERTO but it
	does provide a quick way to skim off smaller collections for
	other projects--I am able to select x-number of games off the
	top of the large PGN file without expected bias.]

Incidentally, the order in which collections are read is unimportant to
PERTO. It's just more useful to think of them when arranged in a
specific-to-general sequence. Plus, the main line will be unbroken
in the reports if it is in the first file.

As PERTO begins an analysis, it reads the line (position) file first (the
top line/game) then searches all the files for move sequences that reach
it. The line position ITSELF MUST be in one of the collections or there
will be NO OUTPUT. If unsure, define the LinesU4 file a second time as the
first member of the search array ("search file" list).

Analysis goes to LineRpt1.txt and LineRpt2.txt. File names I use here are 
defaults--other names can be chosen.

You can store multiple lines of interest in the search criterion file
(LinesU4.txt). Only the top one will be used in a search.

With some study, the analysis files produced in LineRpt1 and LineRpt2.txt
should make sense (for help see Reports.txt). ChessU3 and ChessU4 can read
the notation style created in LineRpt1.txt.

PERTO can handle annotated games. It accepts PGN and most other ASCII
scores.

	-Paul Onstad 70641.3236@compuserve.com

[eof]
