Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- close all;
- Sorting = true;
- SortingIdealPoint = true;
- sortCol = 3;
- Filtering = true;
- params = 10;
- items = 1000;
- different = 40;
- pointCompareArray = zeros(1, different);
- dimmCompareArray = zeros(1, different);
- timeArray = zeros(1, different);
- for l=1:different
- paretoOptimal = [];
- x = dataCreate(params, items);
- tic
- if Sorting && ~SortingIdealPoint
- x = sortrows(x, sortCol);
- end
- if SortingIdealPoint
- x = sortIdealPoint(x);
- end
- dimmCompareCnt = 0;
- pointCompareCnt = 0;
- while size(x, 1) > 0
- y = 1;
- j = 2;
- fl = false;
- while j <= size(x, 1)
- pointCompareCnt = pointCompareCnt + 1;
- dimmCompareCnt = dimmCompareCnt + 1;
- a = x(y, :);
- b = x(j, :);
- signum = sign(x(y, 1) - x(j, 1));
- comparable = true;
- for k = 2: size(x, 2)
- signumK = sign(x(y, k)-x(j, k));
- if signum == 0
- signum = signumK;
- end
- dimmCompareCnt = dimmCompareCnt + 1;
- if signum * signumK < 0
- comparable = false;
- break
- end
- end
- if comparable && signum > 0
- x(y, :) = [];
- y = j - 1;
- j = j - 1;
- fl = true;
- elseif comparable
- x(j, :) = [];
- j = j - 1;
- end
- j = j + 1;
- end
- checkPoint = x(y, :);
- if fl == false || Filtering
- paretoOptimal = [paretoOptimal; x(y, :)];
- x(y, :) = [];
- end
- if Filtering
- j = 1;
- while j < size(x, 1)
- pointCompareCnt = pointCompareCnt + 1;
- dimmCompareCnt = dimmCompareCnt + 1;
- signum = sign(checkPoint(1) - x(j, 1));
- comparable = true;
- for k = 2: size(x, 2)
- signumK = sign(checkPoint(k)-x(j, k));
- if signum == 0
- signum = signumK;
- end
- dimmCompareCnt = dimmCompareCnt + 1;
- if signum * signumK < 0
- comparable = false;
- break
- end
- end
- if comparable && signum < 0
- x(j, :) = [];
- j = j - 1;
- end
- j = j + 1;
- end
- if size(x, 1) == 1
- paretoOptimal = [paretoOptimal; x(1, :)];
- x(1, :) = [];
- end
- end
- end
- dimmCompareArray(l) = dimmCompareCnt;
- pointCompareArray(l) = pointCompareCnt;
- timeArray(l) = toc;
- end
- fprintf('dimm compare\t mean: %f\tstd: %f\n', mean(dimmCompareArray), std(dimmCompareArray))
- fprintf('point compare\t mean: %f\tstd: %f\n', mean(pointCompareArray), std(pointCompareArray))
- fprintf('time\t\t mean: %f\tstd: %f\n', mean(timeArray), std(timeArray))
- fprintf('%f\t%f\t%f\t%f\t%f\t%f\n', mean(pointCompareArray), std(pointCompareArray), mean(dimmCompareArray), std(dimmCompareArray) ,mean(timeArray), std(timeArray))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement