Skip to content

Commit

Permalink
Temporary commit
Browse files Browse the repository at this point in the history
  • Loading branch information
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.