I am trying to learn reinforcement learning and I am focusing on the value iteration. I am looking at the example of grid world, and I am rtying to implement it in python. While doing this, I encountered the situation in which I had to set the rewards for the agent, but looking at the theory, I have found that each state has also a value, which is found using the value iteration. So, my doubt is: **What is the difference between a reward and a value for a given state? And should the initial values of the states always be set equal to zero?**