source: tspsg-svn/trunk/src/tspsolver.h @ 13

Last change on this file since 13 was 13, checked in by laleppa, 17 years ago

Writing solving algorithm...

  • Property svn:keywords set to Id URL
File size: 1.5 KB
RevLine 
[12]1/*
2 *  TSPSG - TSP Solver and Generator
3 *  Copyright (C) 2007 L¸ppa <lacontacts[at]gmail[dot]com>
4 *
5 *  $Id: tspsolver.h 13 2007-10-21 13:07:21Z laleppa $
6 *  $URL: https://tspsg.svn.sourceforge.net/svnroot/tspsg/trunk/src/tspsolver.h $
7 *
8 *  This file is part of TSPSG.
9 *
10 *  TSPSG is free software: you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License as published by
12 *  the Free Software Foundation, either version 3 of the License, or
13 *  (at your option) any later version.
14 *
15 *  TSPSG is distributed in the hope that it will be useful,
16 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 *  GNU General Public License for more details.
19 *
20 *  You should have received a copy of the GNU General Public License
21 *  along with TSPSG.  If not, see <http://www.gnu.org/licenses/>.
22 */
23
24#ifndef TSPSOLVER_H
25#define TSPSOLVER_H
26
27#include <QtCore>
28
29const double infinity = 1.7E+308;
30
[13]31typedef QList<double *> tMatrix;
32
[12]33// Structure represent one step of solving
34// The tree of such elements will represent the solving process
35struct sStep {
[13]36        tMatrix matrix;
[12]37        double price;
38        struct {unsigned int x; unsigned int y;} pos;
[13]39        sStep *plNode, *prNode;
40        sStep() { price = pos.x = pos.y = 0; plNode = prNode = NULL; }
[12]41};
42
43// TSP Solver class
44class CTSPSolver
45{
46public:
47        CTSPSolver();
[13]48        sStep *solve(int, tMatrix);
49private:
50        int nCities;
51        sStep *root;
52        double findMinInRow(int, tMatrix);
53        double findMinInCol(int, tMatrix);
[12]54};
55
56#endif // TSPSOLVER_H
57
Note: See TracBrowser for help on using the repository browser.