(* Drawing Budget Sets *) (* << afriatEfficiency *) DrawABudget[{p1_, p2_}, {x1_, x2_}] := Module[{w, t}, w = p1 x1 + p2 x2; Plot[w/p2 - p1 t/p2, {t, 0, w/p1}, AspectRatio -> 1, DisplayFunction -> Identity]] DrawBudgets[p_, x_] := Table[{DrawABudget[p[[i]], x[[i]]], Graphics[Point[x[[i]]]]}, {i, 1, Length[p]}] PlotViolations[p_, x_] := ListPlot[x[[ViolationList[p, x, 1]]], AspectRatio -> 1, DisplayFunction -> Identity, PlotStyle -> {Hue[0], PointSize[0.02]}] DrawViolations[p_, x_] := Show[DrawBudgets[p, x], PlotViolations[p, x], Prolog -> PointSize[0.02], DisplayFunction -> $DisplayFunction]