function [BestXTable, MinMean] = minMeanPoint(this)
% Attempts to find the feasible point BestXTable that minimizes
% the mean of the ObjectiveFcn model.
%

%   Copyright 2016-2022 The MathWorks, Inc.

if isempty(this.ObjectiveFcnModel) || ...
        (this.PrivOptions.NumCoupledConstraints > 0 && any(cellfun(@isempty, this.ConstraintModels)))
    BestXTable = [];
    MinMean = NaN;
else
    % Set tighter optimization stopping criteria
    BOOptions = this.PrivOptions;
    BOOptions.MaxIterPerRestart = 40;
    BOOptions.RelTol = 1e-7;
    [MinMean, BestX] = findIncumbent(this, BOOptions);
    BestXTable = untransformPoints(this, BestX, true);
end
% If none found, revert to the minVisitedMeanPoint
if isempty(BestXTable)
    [BestXTable, MinMean] = minVisitedMeanPoint(this);
end
end
