The alpha beta pruning question was tricky (I felt it that way). One direct answer I can give is if you navigate to wikipedia for alpha beta pruning (https://en.wikipedia.org/wiki/Alpha%E2%80%93beta_pruning) there you can see that
```
The algorithm maintains two values, alpha and beta, which respectively represent the minimum score that the maximizing player is assured of and the maximum score that the minimizing player is assured of. Initially, alpha is negative infinity and beta is positive infinity, i.e. both players start with their worst possible score
```
Also if we think about it, lets suppose at some level $\alpha = 3$, then we know for sure that in future $\alpha$ should be at least 3. So in turn alpha is the minimum possible value for max layer at any point (level). So if you know the definition or read this somewhere then question is easy, but figuring this out in exam was bit tricky. I took some sample values and ran the algorithm in the exam and then also at the end got it wrong.
Also what is wrong with question 31 ?. I wrote a python script for the same and it runs properly without any issues. Thing that is not mentioned is that s1 ans s2 value constraints. For example we can give the values like $s1 = -3$ and $s2 = 0$ and then also the code runs. Is there any other problem you are seeing for this question ?
I understand the ambiguity but I don't think GATE will accept the challenge (like the same way I feel for the joint probability question).
```
def fun(D, s1, s2):
if s1 < s2:
D[s1], D[s2] = D[s2], D[s1]
fun(D, s1 + 1, s2 - 1)
vf = [1, 2, 3, 4, 5]
fun(vf, 0, 3)
print(vf)
```