Linear Programming 2: Theory and Extensions