#include "stdafx.h"
#include "Label.h"


Label::Label(long _id, int _currentNodeId, vector<Customer> _sequence, vector<bool> _visited, double _priceMinSpeedWithoutWage, double _priceWithWage, int _time, int _cargoWeight) :
	id(_id),
	currentNodeId(_currentNodeId),
	sequence(_sequence),
	customerVisited(_visited),
	priceMinSpeedWithoutWage(_priceMinSpeedWithoutWage),
	time(_time),
	speeds(0),			// this vector contains the different speeds of the last job in the sequence, while speeding up a given sequence
	completionTimes(0),	// this vector contains the different completion times of the last job in the sequence, while speeding up a given sequence
	workloads(0),		// this vector describes the sum of workloads of jobs, which have the same speed as the last job in the sequence and are consecutive, starting from the last job. 
	pricesWithoutWage(0),
	indexOnBound(-1),
	dominated(false),
	cargoWeight(_cargoWeight),
	dualVariables(0),
	optCost(0),
	reducedCost(0)
{}


Label::Label(long _id, int _currentNode, vector<bool> _visitedCustomer) :
	id(_id),
	currentNodeId(_currentNode),
	sequence(0),
	customerVisited(_visitedCustomer),
	priceMinSpeedWithoutWage(0),
	time(0),
	speeds(0),			// this vector contains the different speeds of the last job in the sequence, while speeding up a given sequence
	completionTimes(0),	// this vector contains the different completion times of the last job in the sequence, while speeding up a given sequence
	workloads(0),		// this vector describes the sum of workloads of jobs, which have the same speed as the last job in the sequence and are consecutive, starting from the last job. 
	pricesWithoutWage(0),
	indexOnBound(-1),
	dominated(false),
	cargoWeight(0),
	dualVariables(0),
	optCost(0),
	reducedCost(0)
{}

Label::Label():
	id(-1),
	currentNodeId(-1),
	sequence(0),
	customerVisited(0),
	priceMinSpeedWithoutWage(0),
	time(-1),
	speeds(0),			// this vector contains the different speeds of the last job in the sequence, while speeding up a given sequence
	completionTimes(0),	// this vector contains the different completion times of the last job in the sequence, while speeding up a given sequence
	workloads(0),		// this vector describes the sum of workloads of jobs, which have the same speed as the last job in the sequence and are consecutive, starting from the last job. 
	pricesWithoutWage(0),
	indexOnBound(-1),
	dominated(false),
	cargoWeight(0),
	dualVariables(0),
	optCost(0),
	reducedCost(0)
{}

Label::~Label()
{}