Skip to content

Commit

Permalink
Temporary commit
Browse files Browse the repository at this point in the history
hbae003 committed Mar 8, 2017

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 449dff0 commit 6aa2d45
Showing 39 changed files with 421 additions and 1,545 deletions.
33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj
*.dot

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
19 changes: 19 additions & 0 deletions Header/dsatur.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef _DSATUR_H_
#define _DSATUR_H_

#include "graph_color.h"

using GraphColoring::GraphColor;

namespace GraphColoring{
class Dsatur : public GraphColor {
public:
Dsatur(map<string,vector<string> > input_graph) :GraphColor(input_graph) {
//algorithm = kDSATUR;
}
map<string,int> color();
string get_algorithm_string() { return "DSATUR"; }
};
}

#endif
97 changes: 0 additions & 97 deletions Header/graph.h

This file was deleted.

24 changes: 7 additions & 17 deletions Header/graph_color.h
Original file line number Diff line number Diff line change
@@ -21,43 +21,33 @@ using std::cerr;
using std::endl;

namespace GraphColoring {
enum Algorithm {kNone,kDSATUR,kMCS,kTABUCOL,kHybrid,kLMXRLF,kHybridDSATUR};
class GraphColor {
protected:
Algorithm algorithm;
map<string,vector<string> > graph;
map<string,int> coloring;
bool colored;

/* Helper Functions */
/* Parsing Helper Functions */
vector< vector<string> > get_input(char* input_file);
vector<string> split(string to_split);

/* Writing helper function */
string get_color_string(int color,int max_color);
int find_max_color();
public:
//Default coloring algorithm is DSATUR
GraphColor():colored(false){ algorithm = kNone; }
GraphColor(map<string, vector<string> > input_graph):colored(false){
graph = input_graph;
}

/* Mutators */
void add_edge(string source,string sink);
void add_node(string new_node) { graph.insert(pair<string,vector<string> >(new_node,vector<string>())); }
void set_algorithm(Algorithm new_algorithm) { algorithm = new_algorithm; }
virtual void set_condition(int con) {}

/* Coloring functions */
virtual map<string,int> color(int condition = 0) = 0;
virtual map<string,int> color() = 0;
bool verify();
/* Parsing functions */
void parse_edge_list(char* input_file);
void parse_edge_matrix(char* input_file);

/* Accessors */
unsigned size() { return graph.size(); }
Algorithm get_algorithm() { return algorithm; }
map<string,int> get_coloring() { return coloring; }
string get_algorithm_string();
virtual string get_algorithm_string() = 0;

/* Mutators */
void set_graph(map<string,vector<string> > new_graph) { graph = new_graph; }
@@ -70,4 +60,4 @@ namespace GraphColoring {
};
}

#endif // _GRAPH_COLOR_H_
#endif // _GRAPH_COLOR_H_
28 changes: 28 additions & 0 deletions Header/hybrid.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#ifndef _HYBRID_H_
#define _HYBRID_H_

#include "graph_color.h"
#include "lmxrlf.h"
#include "tabucol.h"

using GraphColoring::GraphColor;
using GraphColoring::Lmxrlf;
using GraphColoring::Tabucol;

namespace GraphColoring{
class Hybrid : public GraphColor {
private:
int condition;
map< string,vector<string> > get_subgraph(map< string,int > coloring);
public:
Hybrid(map<string,vector<string> > input_graph) :GraphColor(input_graph) { }
Hybrid(map<string,vector<string> > input_graph, int con) :GraphColor(input_graph){
condition = con;
}
map<string,int> color();
string get_algorithm_string() { return "HYBRID"; }
void set_condition(int con) { condition = con; }
};
}

#endif
21 changes: 21 additions & 0 deletions Header/hybrid_dsatur.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#ifndef _HYBRID_DSATUR_H_
#define _HYBRID_DSATUR_H_

#include "graph_color.h"
#include "dsatur.h"
#include "tabucol.h"

using GraphColoring::GraphColor;
using GraphColoring::Dsatur;
using GraphColoring::Tabucol;

namespace GraphColoring{
class HybridDsatur : public GraphColor {
public:
HybridDsatur(map<string, vector<string> > input_graph) :GraphColor(input_graph) { }
map<string,int> color();
string get_algorithm_string() { return "HYBRIDDSATUR"; }
};
}

#endif
17 changes: 11 additions & 6 deletions Header/my_lmxrlf.h → Header/lmxrlf.h
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#ifndef _MY_LMXRLF_H_
#define _MY_LMXRLF_H_
#ifndef _LMXRLF_H_
#define _LMXRLF_H_

#include "graph_color.h"

using GraphColoring::GraphColor;
using GraphColoring::Algorithm;

namespace GraphColoring{
class lmxrlf : public GraphColor {
class Lmxrlf : public GraphColor {
private:
//helper functions
int condition;
vector<string> get_independent(vector<string> set);
vector<string> make_independent_set();
int objf(vector<string> set);
@@ -20,8 +20,13 @@ namespace GraphColoring{
vector<string> uncolored_neighbor(vector<string> new_set);
map<string,int> lmxrlf_alg(int endcond);
public:
lmxrlf() :GraphColor() { algorithm = kLMXRLF; }
map<string,int> color(int condition = 0);
Lmxrlf(map<string, vector<string> > input_graph) :GraphColor(input_graph) { }
Lmxrlf(map<string, vector<string> > input_graph, int con) :GraphColor(input_graph){
condition = con;
}
map<string,int> color();
string get_algorithm_string() { return "LMXRLF"; }
void set_condition(int con) { condition = con; }
};
}

17 changes: 17 additions & 0 deletions Header/mcs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef _MCS_H_
#define _MCS_H_

#include "graph_color.h"

using GraphColoring::GraphColor;

namespace GraphColoring{
class Mcs : public GraphColor {
public:
Mcs(map<string, vector<string> > input_graph) :GraphColor(input_graph) { }
map<string,int> color();
string get_algorithm_string() { return "MCS"; }
};
}

#endif
17 changes: 0 additions & 17 deletions Header/my_dsatur.h

This file was deleted.

23 changes: 0 additions & 23 deletions Header/my_hybrid.h

This file was deleted.

21 changes: 0 additions & 21 deletions Header/my_hybrid_dsatur.h

This file was deleted.

Loading

0 comments on commit 6aa2d45

Please sign in to comment.