# Questions about the OptNet paper derivations

I have the following questions related to the paper OptNet:

1. First of all, according to my understanding, the paper uses neural networks to solve QP problems. The advantage is it can solve multiple QP problems in parallel and it is faster than Gurobi solver. Am I right?
2. Does it solve QP problems by solving its KKT condition?
3. I am very confused about the differential start from eq(5). Why take the differential of the KKT condition? In particular, what are the variable and dependent variables of following differential:
4. Why take gradient with respect to $$Q, A, G, q, b, h$$. I thought they are the data of the QP problem and should be fixed.

I must be misunderstanding something, any answer and references will be welcome.

After learning the paper and also the code for one day or so, I can answer some of my questions. Noted that this answer is not finished yet, I will make some updates when I understand it better.

1. First of all, according to my understanding, the paper uses neural networks to solve QP problems. The advantage is it can solve multiple QP problems in parallel and it is faster than Gurobi solver. Am I right?

No, This paper does not aim to solve QP problems by using neural networks. The objective of this paper is to introduce a novel neural network architecture, just like CNNs, RNNs, or fully connected networks. All of them are used to solve machine learning problems, but not for mathematical programming problems. This architecture somehow needs to solve a self-created QP problem inside its network.

1. Does it solve QP problems by solving its KKT condition?

It solves QP problems by a method called primal-dual interior point method(PDIPM), and authors use batch approaches to accelerate.

I think based on KKT condition it really takes diffrentials of optimization parameters Q(zi), q(zi), A(zi), b(zi), G(zi), and h(zi) with respect to zi. For the QP problem yes they are fixed cause now z is the optimization variable, and the result of this optimization is noted as z* or zi+1.