non-final mask are for states (s) whose next state (s’) are not going into final state.
since V(s’) = 0, the next_state_values remain zeros from the initialization



 optimal_minimal:

next_state_values = torch.zeros(BATCH_SIZE, device=device)