diff --git a/src/main/java/Presenter/Algorithms/LeastMedianOfSquaresEstimator.java b/src/main/java/Presenter/Algorithms/LeastMedianOfSquaresEstimator.java index 3d3752c..3b116ad 100644 --- a/src/main/java/Presenter/Algorithms/LeastMedianOfSquaresEstimator.java +++ b/src/main/java/Presenter/Algorithms/LeastMedianOfSquaresEstimator.java @@ -1,11 +1,9 @@ package Presenter.Algorithms; import Model.Coordinates; +import sun.awt.image.ImageWatched; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Set; -import java.util.TreeSet; +import java.util.*; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. @@ -18,6 +16,7 @@ public class LeastMedianOfSquaresEstimator extends Algorithm { private LinkedList set = new LinkedList<>(); + private LinkedList sortedIntersections = new LinkedList<>(); private int n; private double quantile = 0.5; private double quantileError; @@ -32,6 +31,8 @@ public class LeastMedianOfSquaresEstimator extends Algorithm { private double umin; private double umax; private double heightsigmaMin; + private Coordinates sigmaMinStart; + private Coordinates sigmaMinEnd; private int numberOfIntersections; private final int constant = 1; private Coordinates kMinusBracelet; @@ -119,10 +120,35 @@ public class LeastMedianOfSquaresEstimator extends Algorithm { } public void upperBound(double point){ + ArrayList temp = new ArrayList<>(); + ArrayList min = new ArrayList<>(); + double height; + for (Coordinates p : set) { + temp.add(new Coordinates(point, (p.getX() * point) + p.getY())); + } + + Collections.sort(temp); + + for (int i=1;i<(n-(kMinus+1));i++){ + height = temp.get(i+(((int) kMinus) - 1)).getY() - temp.get(i).getY(); + + if (height < heightsigmaMin) + sigmaMinStart = new Coordinates(point, temp.get(i+(((int) kMinus) - 1)).getY()); + sigmaMinEnd = new Coordinates(point, temp.get(i).getY()); + } } public void lowerBound(Slab slab){ + double[] alpha = new double[n]; + double[] beta = new double[n]; + + alpha[0] = 0; + beta[0] = 0; + + for (int i=1;i < n; i++){ + + } // if Ui is active on return add it to the list of active slabs..!!! }