Answers.Body: <p>The point of pseudoRNG is to be unmodable and unpredictable, making it hard to train an AI to learn. It would more likely be useful and more efficient to have the equation that the game uses for generation available, so that you can manually make the check, or to just have a list of the loop if the pseudoRNG is based on the time elapsed.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-05-18T10:02:39.670Z
Answers.Text: If the RNG in question really is a linear congruential as OP suggests, then it feasible to crack it with not much data. I agree that a more direct analysis would be better than AI approach, I think any supervised learning will struggle with the apparent complexity of the function.
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-05-18T04:02:59.533Z
Answers.LastActivityDate: 2018-05-18T17:01:40.630Z
Answers.LastEditDate: 2018-05-18T17:01:40.630Z
Answers.UserDisplayName: Aaron Quitta
Body: <p>For speedrunning purposes, I am trying to train a neural network to identify human-executable ways to manipulate pseudo-RNG (in Pokemon Red, for the interested). The game runs at sixty frames per second, and the linear-congruential PRNG updates every frame, while many frames are unlikely to be relevant to the manipulation (and so should contain no actions from the neural net). Any given manipulation is likely to last 30sec-2min, and the advancement rate of the PRNG can change depending on location in the game-world.</p>
  
  <p>I have some experience with coding AI/deep-learning. I've made some programs using Multilayer Perceptron and IndRNN approaches. From what I can tell, IndRNN or A3C would be my best bets. I'm not expert enough to know the correct approach, though, or to know if the dimensionality of the problem makes it outright unfeasible.</p>
  
  <p>1) Is this problem reasonably solvable with NN/deep learning?</p>
  
  <p>2) What approach would you recommend to tackle it?</p>
  
Tags: <neural-networks><game-ai><recurrent-neural-networks><learning-algorithms>
Title: Teaching a NN to manipulate pseudoRNG over a long time scale?
UserDisplayName: RSQ
ThreadText: # Teaching a NN to manipulate pseudoRNG over a long time scale?
  
  (Asked by: username_0 on 2018-05-18)
  
  For speedrunning purposes, I am trying to train a neural network to identify human-executable ways to manipulate pseudo-RNG (in Pokemon Red, for the interested). The game runs at sixty frames per second, and the linear-congruential PRNG updates every frame, while many frames are unlikely to be relevant to the manipulation (and so should contain no actions from the neural net). Any given manipulation is likely to last 30sec-2min, and the advancement rate of the PRNG can change depending on location in the game-world.
  
  I have some experience with coding AI/deep-learning. I've made some programs using Multilayer Perceptron and IndRNN approaches. From what I can tell, IndRNN or A3C would be my best bets. I'm not expert enough to know the correct approach, though, or to know if the dimensionality of the problem makes it outright unfeasible.
  
  1) Is this problem reasonably solvable with NN/deep learning?
  
  2) What approach would you recommend to tackle it?
  
  **Tags:** neural-networks, game-ai, recurrent-neural-networks, learning-algorithms
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-05-18. Score: 1
  
  The point of pseudoRNG is to be unmodable and unpredictable, making it hard to train an AI to learn. It would more likely be useful and more efficient to have the equation that the game uses for generation available, so that you can manually make the check, or to just have a list of the loop if the pseudoRNG is based on the time elapsed.
  
  > **Comments:**
  > **username_2**: If the RNG in question really is a linear congruential as OP suggests, then it feasible to crack it with not much data. I agree that a more direct analysis would be better than AI approach, I think any supervised learning will struggle with the apparent complexity of the function.  
  
  ---
  
  