Presentation of a 2D doubling map with as few "parameters" as possible

I am working on a turn-based game AI using the neural network technique known as NEAT . I am trying to train a network that can move around two-dimensional space (X & Y coords), given the many values ​​that are stored in what is actually a two-dimensional array.

I see two strategies for using a neural network:

  • For each "cell" in the grid, specify estimates from different heuristics as contributions to neurons and create NN, which is a very complex scoring system. Move the Non Playing Character (NPC) to the place with the highest score.

  • Create a compressed value for each ejuristic measure (somehow compressed as few bits as possible) and providing an input neuron for each of these measures.

I am interested in the second option, because it represents the least amount of necessary calculations (the runtime of the game is quite long), however, I am confused by the approach I could use to create a version of the “small representation” of two-dimensional heuristic values. I know there are methods like Fourier transforms, but I don’t know if they will fit my problem. Basically I am looking for a way to convert a 50x50 doubling array into one or two double values. These two double values ​​can be compressed with losses, I do not need to return the original values, I just need a reasonable mechanism for changing the input data to a small size.

"" NPC ( "" "" ). , , (, 5 1 , , ).

, , , , .

Thankyou,

( ):

, . , , - ( 2D- ) . , - , 0.0 1.0. , , , "" .

, , , " ", , . 2500 , . , NN , , , , ( MD5, SHA) ...

+3
2

, , . .

:

, , , . , , .

, :

, , . , 50x50 * 1x2500, , , .

* 50x50? , . , , , .

+2

, - 1- , () . , MATLAB :

x = [1:1000];
y = rand(1,1000);
f = fft(y, 250); % truncate to 250 terms
plot(x,y, x,abs(ifft(f), 1000));

, , , iFFT f y. y, . , x = 424, 475 725 FFT f, y x = 423, 475 726. y global max x = 503, ifft (f), .

, , 1000 250 . :

x = [1:1000];
y = rand(1,1000);
f = real(fft(y, 250)); % only uses 1/4 the space now
plot(x,y, x,abs(ifft(f, 1000)));

, ifft (f) y, 2 , 1/4 .

" ". 2500 625. , , "", . , 10% , 3 4; 2500 "" 250. , .

, 1% 5 6 . 25 .

, 2500 1 2, - . , , . MATLAB, GNU Octave Excel, - , .

+1

Source: https://habr.com/ru/post/1706297/


All Articles