Welcome to the website of SUPRA chess engine!

Welcome to the website of SUPRA chess engine! - SUPRA
      


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

NEWS!!!

 SUPRA 11.3:


 
        
  • increased the reliability of the vertical filter.           
 
  
  • increase of the speed of deep memory processes.        

 

 

 

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. 

 

                    
                             Author's notes

My project in chess engine was and is a challenge that I set myself as an answer to the  passion that i always had  for chess. Supra Engine is a program written by an amateur programmer(and amateur player!). Being a genuine 100% (then 0% cloned) suffers a little (yet!) on  the performance  of its  intelligence strategic-positional. However in its first version, SUPRA engine, already  knows   all  the rules of  chess, including past pawns, small and large castling and promotion of pawns, having already  won a few amateur chess programs, for example, XADRECO.




Technical Data:

Type: UCI chess engine (only logical program, not have graphic structure, so need a graphical chess program in order to interfere and view. You can connect with any graphics program Chess, for example, fritz, ChessBase Light, Hiarcs, among others).

Language: C + +

Size: approx. 250 000 lines of code provided to version 11.0 (15 000 for version 1.0) 

executable size: approx. 2.5 MB

Creator and implementer:
Pedro Correia (Creator and owner of the mark SUPRASISTEMA)





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)

 






Central objective of the program SUPRA:

develop an alternative algorithm and 100% original (and starting from a zero base) capable of competing with the usual algorithms of the chess engine even the time for it tends to infinity ...




Chronology

1-  Early January 2010: Birth of the idea of creating a chess engine.

2- During the first week of January 2010: Referral to Web sites of programming and amateur chess engines. Surface contact with some programming languages (pascal, java and C++).

3- Second half of January 2010: In-depth study of C++

4- Early February: Birth of the first test (main 1)

5- From February to August 2010: Creation of the program algorithm. Massive increase in the size of the code. Many syntactic errors to amend and some of the most obvious logical errors resolved. Many sleepless nights ...

6- From September to December 2010: Consolidation of the algorithm. Slow recovery from logical errors in the program. One hell of puzzles.

7- 3 January 2011: Birth of the first version of the SUPRA chess engine.





Story of SUPRA


SUPRA 1.0

- Knowledge of all chess rules except the two situations of draw by repetition, and also the situation of draw for lack of material.





SUPRA 1.1.*

- Knowledge of all chess rules.


- Compatibility with all the open books. cfg.

- Ability to play from any position on the board and not only from the initial position as with the previous version.

- Existence of reconfigurable parameters by the user.

- Transmission  of  detailed research processes to the GUI.





SUPRA 2.0

 - Total change in the decision algorithm, equivalent to the minimax algorithm.




SUPRA 3 .*
 
- Improved speed of SUPRA due to the simplification in the matrix board.




SUPRA 4 .*
 

- Introduction of the alpha-beta algorithm: reasonable increase in speed.



SUPRA 5 .*
 

- Sorting in decreasing order of children of each node: steep rise in velocity.



SUPRA 6 .*

 - Effect of cutting across of sufficiency condition.



SUPRA 7 .*
 
- Improvement in the definition in the evaluation: performance improvement.



SUPRA 8 .*

- Killer moves heuristic and better time management.


SUPRA 9 .*

- Resettlement of new positional static and dynamic arrays.


SUPRA 10 .*

- Improved  static and dynamic positional arrays.





References 

I should mention the importance of the following sources:

Silvestro Fantacci website for their help in understanding of UCI protocol
http://fantacci.wikidot.com/chess-engine


Manual "Notes on Programming in C / C "by Paulo Jorge Santos and Baltarejo, help me to begin understanding the c++ language http://www.dei.isep.ipp.pt/~jsantos/docs/Sebenta-cpp-04-2006.pdf
(you have to paste this adress in address bar)

The book "Programming in C + +" by Joyanes Luis aguilar in resolution of some problems with the program.





Dedication

I want dedicated SUPRA engine to all amateur players who never give to overcome.
I also dedicated to my woman who has had all the patience to put up with my obsession for chess.
I also dedicated to my Father, who from an early age, taught me the magic of chess
...



About me

My name is Pedro and i am addicted to chess.

Sometimes I play with friends and relatives
I am very assiduos player in chessbase (www.playchess.com) with nickname SUPRASISTEMA.

I work on studies center SUPRASISTEMA as teacher of mathematics and physics.

I am an official member of TORR high IQ society (www.torr.org) and of the international high IQ society (www.highiqsociety.org)



 

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.





______________________________                 

Download SUPRA 11.3 for Windows 

______________________________ 
 
          
SUPRA 11.3 SUPRA 11.3 [833 Kb]

                                   Tournaments 




My Tornaments


SUPRA 10.1.1 vs CASSANDRE 0.24:
+14/=16/-0 (W-D-L)  73.33%  22.0/30 +176 elo

Book: Deep fritz 12
Time: 15 min
30 games

-------------------------------------------------------------------

SUPRA 10.1.1 vs SUPRA 5.1:
+12/=6/-2 (W-D-L)  75.00%  15.0/20 +191 elo

Book: Deep fritz 12
Time: 10 min
20 games


-------------------------------------------------------------------

SUPRA 10.1.1 vs XADRECO 0.57:
+16/=3/-1 (W-D-L)  87.50%  17.5/20 +338 elo

Book: Deep fritz 12
Time: 10 min
20 games


-------------------------------------------------------------------

SUPRA 10.1.1 vs PREDATEUR 0.15:
+2/=0/-6 (W-D-L) 87.50%  2/8 -191 elo

Book: Deep fritz 12
Time: 15 min
8 games




________________________________________________________________


Shahin Jafarli Tournaments

Jafarli Shahin has made a real odyssey of tournaments between SUPRA and a wide variety of engines through which has identified some serious flaws and weaknesses in the game of SUPRA thus actively contributing to the improvement of SUPRA.

I publish here the results of his last games in tournaments:

Supra 11.2 - Numpty 0.4pr (Elo=1295 according to RWBC web site)

Supra_11.2 - Numpty_0.4pr : 27.5/40 __ 23-8-9 (W-L-D) (11111111==111==0011111==1=1000=1101=010 1) __ 69%

---------------------------------------------------------------------------------------


Supra_11.2 - StAndersen_1.31 (Elo=1360 according to RWBC website)

Supra_11.2 - StAndersen_131 : 13.5/40 __ 10-23-7 __ (=10000=00110100001=01000==000=11100=100 0) __ 34%


________________________________________________________________



Michele Tumbarello Tournaments

Michele Tumbarello is currently developing in his chess club a tournament between SUPRA and human players.
This experience proves to be very important and interesting and I think it will be fruitful in improving the strategic quality of  play of SUPRA and allows a better understanding of the real impact that the improvements that I  made in each update has  in a combat scenario with humans. Note that this time SUPRA presents able to beat a man with over 1800 ELO!

I publish here the results of his last games in tournament: in download



________________________________________________________________


Oliver Deville Tournaments (Chesswar)
 
Oliver deville held last year  an open chesswar in which SUPRA participated .

I publish here the results of his tournament.


http://www.open-aurec.com/chesswar/Chesswar017/Chesswar017PSt.htm

SUPRA 3.1.3 was in position 137
________________________________________________________________




Adam Hair Tournaments (Tournament of the Also-Rans)
 
Adam Hair is making a tournament in which SUPRA is  participating .

I publish here the results of his last game in tournament.


http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=449984&t=41566&sid=00891b0e290213cae0b61430ce8c3c4c



___________________________________________________________

Download tournaments.pgn