2010-09-18 11:11:44 -04:00
|
|
|
<?php
|
|
|
|
namespace Moserware\Skills\FactorGraphs;
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
require_once(dirname(__FILE__) . "/FactorGraph.php");
|
2010-09-25 10:15:51 -04:00
|
|
|
require_once(dirname(__FILE__) . "/Schedule.php");
|
2010-09-18 21:19:51 -04:00
|
|
|
|
2010-09-18 11:11:44 -04:00
|
|
|
abstract class FactorGraphLayer
|
|
|
|
{
|
|
|
|
private $_localFactors = array();
|
|
|
|
private $_outputVariablesGroups = array();
|
|
|
|
private $_inputVariablesGroups = array();
|
|
|
|
private $_parentFactorGraph;
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
protected function __construct(FactorGraph &$parentGraph)
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
2010-09-25 15:46:23 -04:00
|
|
|
$this->_parentFactorGraph = &$parentGraph;
|
2010-09-18 11:11:44 -04:00
|
|
|
}
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
protected function &getInputVariablesGroups()
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
return $this->_inputVariablesGroups;
|
|
|
|
}
|
|
|
|
|
|
|
|
// HACK
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
public function &getParentFactorGraph()
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
return $this->_parentFactorGraph;
|
|
|
|
}
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
public function &getOutputVariablesGroups()
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
return $this->_outputVariablesGroups;
|
|
|
|
}
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
public function &getLocalFactors()
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
return $this->_localFactors;
|
|
|
|
}
|
|
|
|
|
2010-09-25 18:25:56 -04:00
|
|
|
public function setInputVariablesGroups(&$value)
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
$this->_inputVariablesGroups = $value;
|
|
|
|
}
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
protected function scheduleSequence(&$itemsToSequence)
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
2010-09-25 12:50:33 -04:00
|
|
|
return new ScheduleSequence("TODO", $itemsToSequence);
|
2010-09-18 11:11:44 -04:00
|
|
|
}
|
|
|
|
|
2010-09-25 15:46:23 -04:00
|
|
|
protected function addLayerFactor(&$factor)
|
2010-09-18 11:11:44 -04:00
|
|
|
{
|
|
|
|
$this->_localFactors[] = $factor;
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract function buildLayer();
|
|
|
|
|
|
|
|
public function createPriorSchedule()
|
|
|
|
{
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function createPosteriorSchedule()
|
|
|
|
{
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|