# Pareto optimal fronts using internal function?

How do I estimate the Pareto front in my multiobjective optimization problem?

I found @Daniel Lichtbau's interesting answer. Yet I don't know how such an "internal function" can be called and used.

Update: InternalListMin is now available as ResourceFunction["ParetoListMinima"] in Wolfram Resource Function Respository.

ResourceFunction["ParetoListMinima"]

lists = RandomInteger[10, {20, 3}];
pareto = InternalListMin[lists];

Row[{Panel[Grid[lists /. Thread[pareto -> (Style[#, Red, Bold] & /@ # & /@ pareto)]]],
ListPointPlot3D[{lists, pareto}, PlotStyle -> {Blue, Red},
ImageSize -> 400, PlotRangePadding -> 1, BoxRatios -> 1,
AspectRatio -> 1] /. Point -> (Sphere[#, .5] &)}]


lists = RandomInteger[10, {20, 2}];
pareto = InternalListMin[lists];

Row[{Panel[Grid[lists /. Thread[pareto -> (Style[#, Red, Bold] & /@ # & /@ pareto)]]],
ListPlot[{lists, pareto}, PlotStyle -> {Blue, Red},PlotMarkers -> {\[FilledSquare], 20},
ImageSize -> 400, Frame -> True, PlotRangePadding -> 1, AspectRatio -> 1]}]


If the input list is a Dataset you can use

lists =Dataset[ RandomInteger[10, {20, 3}]];
pareto = InternalListMin[Normal@lists];

Row[{Panel[Grid[Normal@lists /. Thread[pareto -> (Style[#, Red, Bold] & /@ # & /@ pareto)]]],
ListPointPlot3D[{Normal@lists, pareto}, PlotStyle -> {Blue, Red},
ImageSize -> 400, PlotRangePadding -> 1, BoxRatios -> 1,
AspectRatio -> 1] /. Point -> (Sphere[#, .5] &)}]


• Thanks, this is just about what I'm looking for. The only problem is that I am using a "Dataset" function instead of a real list. I'll quickly add an example! Commented May 3, 2016 at 9:48
• @MirkoAveta, please see the last example.
– kglr
Commented May 3, 2016 at 9:57
• Than you very much!!! Commented May 3, 2016 at 9:58
• I directly copied your first example code and ran it on V13.2. Why should the sphere marked in red display in blue? (V13.3 is fine). @kglr Commented Nov 22, 2023 at 3:24
• @Vancheers, I am using V13.3.1. I don't know what changed in v13.2 (V13.3) that caused (fixed) the issue.
– kglr
Commented Nov 22, 2023 at 22:08