Free cookie consent management tool by TermsFeed Policy Generator

Changeset 5931


Ignore:
Timestamp:
04/02/11 16:45:04 (14 years ago)
Author:
abeham
Message:

#1330

  • changes according to the review
Location:
branches/QAP
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/QAP/HeuristicLab.Analysis/3.3/HeuristicLabAnalysisPlugin.cs.frame

    r5446 r5931  
    2828  [Plugin("HeuristicLab.Analysis", "3.3.3.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Analysis-3.3.dll", PluginFileType.Assembly)]
     30  [PluginDependency("HeuristicLab.ALGLIB", "3.1")]
    3031  [PluginDependency("HeuristicLab.Collections", "3.3")]
    3132  [PluginDependency("HeuristicLab.Common", "3.3")]
  • branches/QAP/HeuristicLab.Analysis/3.3/MultidimensionalScaling/MultidimensionalScaling.cs

    r5871 r5931  
    2929    /// Performs the Kruskal-Shepard algorithm and applies a gradient descent method
    3030    /// to fit the coordinates such that the difference between the fit distances
    31     /// and the actual distances becomes minimal.
     31    /// and the dissimilarities becomes minimal.
    3232    /// </summary>
    3333    /// <remarks>
    3434    /// It will initialize the coordinates in a deterministic fashion such that all initial points are equally spaced on a circle.
    3535    /// </remarks>
    36     /// <param name="dissimilarities">A symmetric NxN matrix that specifies the distances between each element i and j. Diagonal elements are ignored.</param>
     36    /// <param name="dissimilarities">A symmetric NxN matrix that specifies the dissimilarities between each element i and j. Diagonal elements are ignored.</param>
    3737    ///
    3838    /// <returns>A Nx2 matrix where the first column represents the x- and the second column the y coordinates.</returns>
     
    4343      int dimension = dissimilarities.Rows;
    4444      if (dimension == 1) return new DoubleMatrix(new double[,] { { 0, 0 } });
    45       else if (dimension == 2) return new DoubleMatrix(new double[,] { { 0, dissimilarities[0, 1] } });
     45      else if (dimension == 2) return new DoubleMatrix(new double[,] { { 0, 0 }, { 0, dissimilarities[0, 1] } });
    4646
    4747      DoubleMatrix coordinates = new DoubleMatrix(dimension, 2);
     
    5858    /// Performs the Kruskal-Shepard algorithm and applies a gradient descent method
    5959    /// to fit the coordinates such that the difference between the fit distances
    60     /// and the actual distances is minimal.
     60    /// and the dissimilarities is minimal.
    6161    /// </summary>
    6262    /// <remarks>
    6363    /// It will use a pre-initialized x,y-coordinates matrix as a starting point of the gradient descent.
    6464    /// </remarks>
    65     /// <param name="dissimilarities">A symmetric NxN matrix that specifies the distances between each element i and j. Diagonal elements are ignored.</param>
    66     ///
     65    /// <param name="dissimilarities">A symmetric NxN matrix that specifies the dissimilarities between each element i and j. Diagonal elements are ignored.</param>
    6766    /// <param name="coordinates">The Nx2 matrix of initial coordinates.</param>
     67    /// <param name="maximumIterations">The number of iterations for which the algorithm should run.
     68    /// In every iteration it tries to find the best location for every item.</param>
    6869    /// <returns>A Nx2 matrix where the first column represents the x- and the second column the y coordinates.</returns>
    69     public static DoubleMatrix KruskalShepard(DoubleMatrix dissimilarities, DoubleMatrix coordinates) {
     70    public static DoubleMatrix KruskalShepard(DoubleMatrix dissimilarities, DoubleMatrix coordinates, int maximumIterations = 100) {
    7071      int dimension = dissimilarities.Rows;
    7172      if (dimension != dissimilarities.Columns || coordinates.Rows != dimension) throw new ArgumentException("The number of coordinates and the number of rows and columns in the dissimilarities matrix do not match.");
     
    7879      alglib.mincgreport rep;
    7980
    80       for (int iterations = 0; iterations < 10; iterations++) {
     81      for (int iterations = 0; iterations < maximumIterations; iterations++) {
     82        bool changed = false;
    8183        for (int i = 0; i < dimension; i++) {
    8284          double[] c = new double[] { coordinates[i, 0], coordinates[i, 1] };
     
    9395          } catch (alglib.alglibexception) { }
    9496          if (!double.IsNaN(c[0]) && !double.IsNaN(c[1])) {
     97            changed = changed || (coordinates[i, 0] != c[0]) || (coordinates[i, 1] != c[1]);
    9598            coordinates[i, 0] = c[0];
    9699            coordinates[i, 1] = c[1];
    97100          }
    98101        }
     102        if (!changed) break;
    99103      }
    100104      return coordinates;
     
    106110      Info info = (obj as Info);
    107111      for (int i = 0; i < info.Coordinates.Rows; i++) {
    108         double c = info.Distances[info.Row, i];
     112        double c = info.Dissimilarities[info.Row, i];
    109113        if (i != info.Row) {
    110114          double a = info.Coordinates[i, 0];
     
    143147      for (int i = 0; i < dimension - 1; i++) {
    144148        for (int j = i + 1; j < dimension; j++) {
    145           if (dissimilarities[i, j] != dissimilarities[j, i]) throw new ArgumentException("Distances is not a symmetric matrix.", "distances");
     149          if (dissimilarities[i, j] != dissimilarities[j, i]) throw new ArgumentException("Dissimilarities is not a symmetric matrix.", "dissimilarities");
    146150          if (dissimilarities[i, j] != 0) {
    147151            stress += Stress(coordinates[i, 0], coordinates[i, 1], dissimilarities[i, j], coordinates[j, 0], coordinates[j, 1]);
     
    155159    private class Info {
    156160      public DoubleMatrix Coordinates { get; set; }
    157       public DoubleMatrix Distances { get; set; }
     161      public DoubleMatrix Dissimilarities { get; set; }
    158162      public int Row { get; set; }
    159163
    160164      public Info(DoubleMatrix c, DoubleMatrix d, int r) {
    161165        Coordinates = c;
    162         Distances = d;
     166        Dissimilarities = d;
    163167        Row = r;
    164168      }
  • branches/QAP/HeuristicLab.Analysis/3.3/Tests/HeuristicLab.Analysis.Tests-3.3.csproj

    r5873 r5931  
    3232    <ErrorReport>prompt</ErrorReport>
    3333    <WarningLevel>4</WarningLevel>
     34  </PropertyGroup>
     35  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
     36    <DebugSymbols>true</DebugSymbols>
     37    <OutputPath>bin\x86\Debug\</OutputPath>
     38    <DefineConstants>DEBUG;TRACE</DefineConstants>
     39    <DebugType>full</DebugType>
     40    <PlatformTarget>x86</PlatformTarget>
     41    <CodeAnalysisLogFile>bin\Debug\HeuristicLab.Analysis.Tests.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     42    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     43    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     44    <ErrorReport>prompt</ErrorReport>
     45    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     46    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     47    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
     48    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
     49    <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
     50  </PropertyGroup>
     51  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
     52    <OutputPath>bin\x86\Release\</OutputPath>
     53    <DefineConstants>TRACE</DefineConstants>
     54    <Optimize>true</Optimize>
     55    <DebugType>pdbonly</DebugType>
     56    <PlatformTarget>x86</PlatformTarget>
     57    <CodeAnalysisLogFile>bin\Release\HeuristicLab.Analysis.Tests.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     58    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     59    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     60    <ErrorReport>prompt</ErrorReport>
     61    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     62    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     63    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
     64    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
     65    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
     66  </PropertyGroup>
     67  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
     68    <DebugSymbols>true</DebugSymbols>
     69    <OutputPath>bin\x64\Debug\</OutputPath>
     70    <DefineConstants>DEBUG;TRACE</DefineConstants>
     71    <DebugType>full</DebugType>
     72    <PlatformTarget>x64</PlatformTarget>
     73    <CodeAnalysisLogFile>bin\Debug\HeuristicLab.Analysis.Tests.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     74    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     75    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     76    <ErrorReport>prompt</ErrorReport>
     77    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     78    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     79    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
     80    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
     81    <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
     82    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
     83  </PropertyGroup>
     84  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
     85    <OutputPath>bin\x64\Release\</OutputPath>
     86    <DefineConstants>TRACE</DefineConstants>
     87    <Optimize>true</Optimize>
     88    <DebugType>pdbonly</DebugType>
     89    <PlatformTarget>x64</PlatformTarget>
     90    <CodeAnalysisLogFile>bin\Release\HeuristicLab.Analysis.Tests.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
     91    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
     92    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
     93    <ErrorReport>prompt</ErrorReport>
     94    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
     95    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
     96    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
     97    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
     98    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
    3499  </PropertyGroup>
    35100  <ItemGroup>
  • branches/QAP/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/ExhaustiveSwap2MoveGenerator.cs

    r5838 r5931  
    4343      if (length == 1) throw new ArgumentException("ExhaustiveSwap2MoveGenerator: There cannot be an Swap move given a permutation of length 1.", "permutation");
    4444      int totalMoves = (length) * (length - 1) / 2;
    45       Swap2Move[] moves = null;
     45      Swap2Move[] moves = new Swap2Move[totalMoves];
    4646      int count = 0;
    4747
    48       if (permutation.PermutationType == PermutationTypes.RelativeUndirected) {
    49         if (totalMoves - 3 > 0) {
    50           moves = new Swap2Move[totalMoves - 3];
    51           for (int i = 0; i < length - 1; i++) {
    52             for (int j = i + 1; j < length; j++) {
    53               if (j - i >= length - 2) continue;
    54               moves[count++] = new Swap2Move(i, j);
    55             }
    56           }
    57         } else { // when length is 3 or less, there's actually no difference, but for the sake of not crashing the algorithm create a dummy move
    58           moves = new Swap2Move[1];
    59           moves[0] = new Swap2Move(0, 1);
     48      for (int i = 0; i < length - 1; i++)
     49        for (int j = i + 1; j < length; j++) {
     50          moves[count++] = new Swap2Move(i, j);
    6051        }
    61       } else {
    62         moves = new Swap2Move[totalMoves];
    63         for (int i = 0; i < length - 1; i++)
    64           for (int j = i + 1; j < length; j++) {
    65             moves[count++] = new Swap2Move(i, j);
    66           }
    67       }
    6852      return moves;
    6953    }
  • branches/QAP/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2SingleMoveGenerator.cs

    r5838 r5931  
    4949    public static Swap2Move Apply(Permutation permutation, IRandom random) {
    5050      int length = permutation.Length;
    51       if (length == 1) throw new ArgumentException("StochasticSwap2SingleMoveGenerator: There cannot be an Swap move given a permutation of length 1.", "permutation");
    52       int index1 = random.Next(length - 1);
    53       int index2 = random.Next(index1 + 1, length);
     51      if (length < 2) throw new ArgumentException("StochasticSwap2SingleMoveGenerator: There cannot be a swap-2 move given a permutation of length less than 2.", "permutation");
     52      int index1 = random.Next(length), index2 = 0;
     53      do {
     54        index2 = random.Next(length);
     55      } while (index1 == index2);
    5456      return new Swap2Move(index1, index2);
    5557    }
  • branches/QAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.Designer.cs

    r5838 r5931  
    6868      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
    6969      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
    70       this.nameTextBox.Location = new System.Drawing.Point(86, 29);
    71       this.nameTextBox.Size = new System.Drawing.Size(561, 20);
     70      this.nameTextBox.Location = new System.Drawing.Point(105, 29);
     71      this.nameTextBox.Size = new System.Drawing.Size(517, 20);
    7272      //
    7373      // nameLabel
    7474      //
    7575      this.nameLabel.Location = new System.Drawing.Point(3, 32);
     76      //
     77      // infoLabel
     78      //
     79      this.infoLabel.Location = new System.Drawing.Point(628, 32);
    7680      //
    7781      // importInstanceButton
     
    160164      this.visualizationTabPage.Name = "visualizationTabPage";
    161165      this.visualizationTabPage.Padding = new System.Windows.Forms.Padding(3);
    162       this.visualizationTabPage.Size = new System.Drawing.Size(639, 385);
     166      this.visualizationTabPage.Size = new System.Drawing.Size(639, 411);
    163167      this.visualizationTabPage.TabIndex = 1;
    164168      this.visualizationTabPage.Text = "Visualization";
     
    172176      this.qapView.Location = new System.Drawing.Point(3, 3);
    173177      this.qapView.Name = "qapView";
    174       this.qapView.Size = new System.Drawing.Size(633, 379);
     178      this.qapView.Size = new System.Drawing.Size(633, 405);
    175179      this.qapView.TabIndex = 0;
    176180      this.qapView.Weights = null;
  • branches/QAP/HeuristicLab.Problems.QuadraticAssignment/3.3/Analyzers/BestQAPSolutionAnalyzer.cs

    r5838 r5931  
    4040      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
    4141    }
    42     public LookupParameter<DoubleMatrix> CoordinatesParameter {
    43       get { return (LookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
    44     }
    4542    public LookupParameter<DoubleMatrix> DistancesParameter {
    4643      get { return (LookupParameter<DoubleMatrix>)Parameters["Distances"]; }
     
    7774      : base() {
    7875      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem."));
    79       Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the locations."));
    8076      Parameters.Add(new LookupParameter<DoubleMatrix>("Distances", "The distances between the locations."));
    8177      Parameters.Add(new LookupParameter<DoubleMatrix>("Weights", "The weights between the facilities."));
  • branches/QAP/HeuristicLab.Problems.QuadraticAssignment/3.3/QuadraticAssignmentProblem.cs

    r5855 r5931  
    5050      get { return (IValueParameter<Permutation>)Parameters["BestKnownSolution"]; }
    5151    }
    52     public IValueParameter<DoubleMatrix> CoordinatesParameter {
    53       get { return (IValueParameter<DoubleMatrix>)Parameters["Coordinates"]; }
    54     }
    5552    public IValueParameter<DoubleMatrix> WeightsParameter {
    5653      get { return (IValueParameter<DoubleMatrix>)Parameters["Weights"]; }
     
    6562      get { return BestKnownSolutionParameter.Value; }
    6663      set { BestKnownSolutionParameter.Value = value; }
    67     }
    68     public DoubleMatrix Coordinates {
    69       get { return CoordinatesParameter.Value; }
    70       set { CoordinatesParameter.Value = value; }
    7164    }
    7265    public DoubleMatrix Weights {
     
    10295    }
    10396    public QuadraticAssignmentProblem()
    104       : base() {
     97      : base(new QAPEvaluator(), new RandomPermutationCreator()) {
    10598      Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution which is updated whenever a new better solution is found or may be the optimal solution if it is known beforehand.", null));
    106       Parameters.Add(new OptionalValueParameter<DoubleMatrix>("Coordinates", "The coordinates of the locations. If this is changed the distance matrix is calculated automatically using the euclidean distance."));
    10799      Parameters.Add(new ValueParameter<DoubleMatrix>("Weights", "The strength of the connection between the facilities.", new DoubleMatrix(5, 5)));
    108100      Parameters.Add(new ValueParameter<DoubleMatrix>("Distances", "The distance matrix which can either be specified directly without the coordinates, or can be calculated automatically from the coordinates.", new DoubleMatrix(5, 5)));
    109101
    110102      Maximization = new BoolValue(false);
    111 
    112       Coordinates = new DoubleMatrix(new double[,] {
    113         { 294.000,   3.000 },
    114         { 585.246, 214.603 },
    115         { 474.000, 556.983 },
    116         { 114.000, 556.983 },
    117         {   2.754, 214.603 }
    118       });
    119103
    120104      Weights = new DoubleMatrix(new double[,] {
     
    134118      });
    135119
    136       RandomPermutationCreator solutionCreator = new RandomPermutationCreator();
    137       solutionCreator.LengthParameter.Value = new IntValue(5);
    138       solutionCreator.PermutationParameter.ActualName = "Assignment";
    139       QAPEvaluator evaluator = new QAPEvaluator();
    140 
    141       SolutionCreatorParameter.Value = solutionCreator;
    142       EvaluatorParameter.Value = evaluator;
     120      SolutionCreator.PermutationParameter.ActualName = "Assignment";
     121      ParameterizeSolutionCreator();
     122      ParameterizeEvaluator();
    143123
    144124      InitializeOperators();
     
    231211        AdjustWeightsMatrix();
    232212      }
    233     }
    234     private void CoordinatesParameter_ValueChanged(object sender, EventArgs e) {
    235       if (Coordinates != null) {
    236         Coordinates.Reset += new EventHandler(Coordinates_Reset);
    237         Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged);
    238         UpdateDistancesFromCoordinates();
    239       }
    240     }
    241     private void Coordinates_ItemChanged(object sender, EventArgs<int, int> e) {
    242       UpdateDistancesFromCoordinates();
    243     }
    244     private void Coordinates_Reset(object sender, EventArgs e) {
    245       UpdateDistancesFromCoordinates();
    246213    }
    247214    #endregion
     
    262229      Distances.RowsChanged += new EventHandler(Distances_RowsChanged);
    263230      Distances.ColumnsChanged += new EventHandler(Distances_ColumnsChanged);
    264       CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged);
    265       Coordinates.Reset += new EventHandler(Coordinates_Reset);
    266       Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged);
    267231    }
    268232
     
    289253      if (BestQAPSolutionAnalyzer != null) {
    290254        BestQAPSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    291         BestQAPSolutionAnalyzer.CoordinatesParameter.ActualName = CoordinatesParameter.Name;
    292255        BestQAPSolutionAnalyzer.DistancesParameter.ActualName = DistancesParameter.Name;
    293256        BestQAPSolutionAnalyzer.WeightsParameter.ActualName = WeightsParameter.Name;
     
    335298      }
    336299    }
    337 
    338     private void UpdateDistancesFromCoordinates() {
    339       if (Coordinates != null && Coordinates.Columns == 2 && Coordinates.Rows > 1) {
    340         DoubleMatrix distance = new DoubleMatrix(Coordinates.Rows, Coordinates.Rows);
    341         for (int i = 0; i < Coordinates.Rows - 1; i++) {
    342           for (int j = i + 1; j < Coordinates.Rows; j++) {
    343             double dx = Coordinates[i, 0] - Coordinates[j, 0];
    344             double dy = Coordinates[i, 1] - Coordinates[j, 1];
    345             distance[i, j] = Math.Sqrt(dx * dx + dy * dy);
    346             distance[j, i] = Distances[i, j];
    347           }
    348         }
    349         Distances = distance;
    350       }
    351     }
    352300    #endregion
    353301
     
    356304      parser.Parse(filename);
    357305      if (parser.Error != null) throw parser.Error;
    358       Coordinates = new DoubleMatrix();
    359306      Distances = new DoubleMatrix(parser.Distances);
    360307      Weights = new DoubleMatrix(parser.Weights);
     
    372319        parser.Parse(stream);
    373320        if (parser.Error != null) throw parser.Error;
    374         Coordinates = new DoubleMatrix();
    375321        Distances = new DoubleMatrix(parser.Distances);
    376322        Weights = new DoubleMatrix(parser.Weights);
  • branches/QAP/QAP.sln

    r5873 r5931  
    138138    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    139139    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
    140     {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x64.ActiveCfg = Debug|Any CPU
    141     {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x86.ActiveCfg = Debug|Any CPU
     140    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x64.ActiveCfg = Debug|x64
     141    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x64.Build.0 = Debug|x64
     142    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x86.ActiveCfg = Debug|x86
     143    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Debug|x86.Build.0 = Debug|x86
    142144    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
    143145    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|Any CPU.Build.0 = Release|Any CPU
    144     {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x64.ActiveCfg = Release|Any CPU
    145     {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x86.ActiveCfg = Release|Any CPU
     146    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x64.ActiveCfg = Release|x64
     147    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x64.Build.0 = Release|x64
     148    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x86.ActiveCfg = Release|x86
     149    {34C967E5-EEB1-4502-8035-122EDDEF44CB}.Release|x86.Build.0 = Release|x86
    146150  EndGlobalSection
    147151  GlobalSection(SolutionProperties) = preSolution
Note: See TracChangeset for help on using the changeset viewer.