diff --git a/Math/Optimization/Graph/Graph.php b/Math/Optimization/Graph/Graph.php deleted file mode 100644 index 1cd85c6c3..000000000 --- a/Math/Optimization/Graph/Graph.php +++ /dev/null @@ -1,222 +0,0 @@ -edges = new MultiMap(KeyType::MULTIPLE, OrderType::LOOSE); - } - - /** - * Add vertice to graph. - * - * @param VerticeInterface $vertice Vertice - * - * @return bool - * - * @since 1.0.0 - */ - public function addVertice(VerticeInterface $vertice) : bool - { - if (!isset($this->vertices[$vertice->getId()])) { - $this->vertices[$vertice->getId()] = $vertice; - - return true; - } - - return false; - } - - /** - * Add edge to graph. - * - * @param EdgeInterface $edge Edge - * - * @return bool - * - * @since 1.0.0 - */ - public function addEdge(EdgeInterface $edge) : bool - { - if (!isset($this->edges[$edge->getId()])) { - $this->edges[$edge->getId()] = $edge; - - return true; - } - - return false; - } - - /** - * Remove vertice from graph. - * - * @param mixed $id Id of vertice to remove - * - * @return bool - * - * @since 1.0.0 - */ - public function removeVertice($id) : bool - { - if (isset($this->vertices[$id])) { - unset($this->vertices[$id]); - - return true; - } - - return false; - } - - /** - * Remove edge by nodes from graph. - * - * @param mixed $a First node of edge - * @param mixed $b Second node of edge - * - * @return bool - * - * @since 1.0.0 - */ - public function removeEdge($a, $b) : bool - { - return $this->edges->remove([$a, $b]); - } - - /** - * Remove edge from graph. - * - * @param mixed $id Id of edge to remove - * - * @return bool - * - * @since 1.0.0 - */ - public function removeEdgeById($id) : bool - { - if (isset($this->edges[$id])) { - unset($this->edges[$id]); - - return true; - } - - return false; - } - - /** - * Get vertice. - * - * @param mixed $id Id of vertice - * - * @return VerticeInterface - * - * @since 1.0.0 - */ - public function getVertice($id) : VerticeInterface - { - return $this->vertices[$id] ?? new NullVertice(); - } - - /** - * Get edge by nodes. - * - * Order of nodes is irrelevant - * - * @param mixed $a First node of edge - * @param mixed $b Second node of edge - * - * @return EdgeInterface - * - * @since 1.0.0 - */ - public function getEdge($a, $b) : EdgeInterface - { - return $this->edges->get([$a, $b]) ?? new NullEdge(); - } - - /** - * Get edge by id. - * - * @param int $id Edge id - * - * @return EdgeInterface - * - * @since 1.0.0 - */ - public function getEdgeById(int $id) : EdgeInterface - { - return $this->edges->get($id) ?? new NullEdge(); - } - - /** - * Count vertices. - * - * @return int - * - * @since 1.0.0 - */ - public function countVertices() : int - { - return count($this->vertices); - } - - /** - * Count edges. - * - * @return int - * - * @since 1.0.0 - */ - public function countEdges() : int - { - return count($this->edges); - } -} \ No newline at end of file