SUPRA is the first Portuguese UCI chess engine!
The new version SUPRA 11.3 is available for download at bottom of page
SUPRA engine will be continuously updated at least 6 in 6 months

Since version 2.0 that SUPRA uses a new decision algorithm centered on the idea that the best answer to a parent node depends on the other player's best response to all child nodes, ie the analysis is done from back to front and in the end tends to choose the best path possible for the engine depending on the level of depth possible.
This algorithm was created by me in late July 2011
and is, as I found out later, equivalent to the minimax algorithm.
Note that from the beginning I always make the program SUPRA using algorithms created exclusively by me, just unknown or unknown for me.
When I created the algorithm used in version 2.0 SUPRA I obviously need to do filtering.
SUPRA 2 .* and 3 .* use filtering totally created by me and never proved effective.
It was during the month of August I decided to do a search of filtering, finally breaking the barrier of total genuineness of SUPRA.
I was very surprised when I discovered that the algorithm-based decision of SUPRA 2.0 was equivalent to the minimax!
and it was then that I found on the net the alpha-beta pruning algorithm.
So I decided to study in depth the alpha beta pruning algorithm and applies it to SUPRA.
SUPRA uses for the first time an algorithm does not fully discovered by me though retainig yet its originality I would say at least 90%, since it is based on the algorithm used for the first time in SUPRA 2.0 and manner of application of alpha-beta pruning is surely different from usual.
Current operational characteristics
- SUPRA is based on an algorithm of analysis of material flow similar to the usual minimax.
- Additionally SUPRA still have the alpha beta algorithm with wormhole filtering, killer moves heuristic, vertical filter and positive/negative float filter in a way to cut the number of nodes examined and traverse the search tree faster.
- SUPRA also has fixed positional matrices that tend in general to make the pieces occupy the center and help pawns moving for promotions. There are still dynamic arrays configurable through the option aggressiveness and temperament that help SUPRA distinguish more strategically advantageous positions in detriment of other less advantageous positions that have the same value through the base algorithm.
Explanation of operation of the algorithms used in SUPRA:
Algorithm Base*: Equivalent to the minimax with simple evaluation function primarily based on material gradient.
Filtering algorithms in order of efficiency:
1 - alpha-beta algorithm (filtering horizontal / vertical: all nodes hereafter condition alpha>=beta will be discarded without loss of accuracy. 100% sure that is the answer is the same but much faster.
2 - wormhole pruning*, works within the alpha beta and can not exist without it. 100% sure that is the answer is the same but much faster.
3 - vertical filter *reduces deph locally whenever we are in a "region" of the search tree in which SUPRA is definitely not just benefit so the research need not be as expanded as it is highly unlikely to see a rise Thurs alfa0 (best value found so far)
However the study only deph ends in pairs so with the response of the enemy to ensure the setting. (Vertical filtering: only the child nodes are discarded). this filtering is not 100% sure but I think surely be very safe and only happens above deph 7.
4 - Positive and negative float filter*: this filter works in sync with alpha and beta acts through a condition of sufficiency: if the value of alpha is very high (high advantage for SUPRA) or very low beta (high advantage to the opponent ) suspending the search engine in this section even if no have the condition alpha> = beta. (Filtering horizontal / vertical). this filtering is not 100% sure but I think surely be very safe.
5 - killer moves heuristic: At all levels deph whenever there is a court of alpha beta SUPRA memorizes the node corresponding to this cut. And whenever a node starts a expand (analyzing the children of a node) SUPRA always begins by examining first the last killer move of this level deph . 100% safe.
6 - Deep memory: 100% secure
*algorithms totaly designed by me or independently designed by me (if already available) (All code of SUPRA program was executed by me)
Acknowledgements
I deeply appreciate the comments of support and encouragement as well as all tournaments conducted by various people which I highlight (in Immortal chess forum: herbanmusic, IndianaJones, Dydolec, shahinjy, juandelacruza chessgod101, Fidelio, Silversurfer, CS29797, Behovodec, Кевин, batatas, Adam5 and more!) and (Toposcar in playchess.com) and (Paul and Saemon_Havarian in Torre)
Thanks also to Oliver Deville for having made the first tournament on a grand scale in which SUPRA participated.
Special thanks:
I appreciate the efforts of Shahin Jafarli (shahinjy) in the development of countless tournaments of SUPRA against several engines through which identified some failures of SUPRA and reported me.
Thank Silversurfer for tirelessly publish instantly immortal chess any update of SUPRA.
Thanks also to Michele Tumbarello (Toposcar), ChessBase friend of mine , who always finds me in ChessBase and supports giving me very useful advice.