![Python Reinforcement Learning](https://wfqqreader-1252317822.image.myqcloud.com/cover/708/36698708/b_36698708.jpg)
State-action value function (Q function)
A state-action value function is also called the Q function. It specifies how good it is for an agent to perform a particular action in a state with a policy π. The Q function is denoted by Q(s, a). It denotes the value of taking an action in a state following a policy π.
We can define Q function as follows:
![](https://epubservercos.yuewen.com/F4348E/19470379901496006/epubprivate/OEBPS/Images/36a6e230-3432-4477-810c-5dca66d8669d.png?sign=1739327532-Tq6nXGX1UKA0lKLsMuVuTSrQWSdFZ6Ga-0-6cf0c8cd1ba6173ef8c8d7017226f212)
This specifies the expected return starting from state s with the action a according to policy π. We can substitute the value of Rt in the Q function from (2) as follows:
![](https://epubservercos.yuewen.com/F4348E/19470379901496006/epubprivate/OEBPS/Images/0424410a-24d5-4fc3-859d-f201929b41c3.png?sign=1739327532-ee1GsszFdnis1SqP56coKkRQlB20Y2MV-0-e77a9e871ad3294b8c071034d9747a0d)
The difference between the value function and the Q function is that the value function specifies the goodness of a state, while a Q function specifies the goodness of an action in a state.
Like state value functions, Q functions can be viewed in a table. It is also called a Q table. Let us say we have two states and two actions; our Q table looks like the following:
![](https://epubservercos.yuewen.com/F4348E/19470379901496006/epubprivate/OEBPS/Images/3.jpg?sign=1739327532-oTzOLNVookggYENTp6Nst1cTGg2jMHy2-0-45ae4b2064bae77687e6c7400c3e91c7)
Thus, the Q table shows the value of all possible state action pairs. So, by looking at this table, we can come to the conclusion that performing action 1 in state 1 and action 2 in state 2 is the better option as it has high value.
Whenever we say value function V(S) or Q function Q( S, a), it actually means the value table and Q table, as shown previously.