代数图-0.7:代数图构造和转换库
版权(c) 安德烈·莫霍夫2016-2022
许可证MIT(请参阅文件LICENSE)
维护人员andrey.mokhov@gmail.com
稳定性实验的
安全哈斯克尔
语言哈斯克尔2010

代数。图表。标签

描述

阿尔加是用于图的代数构造和操作的库在哈斯克尔。请参见这篇论文对于图书馆背后的动机、基础理论和实施细节。

此模块提供用于表示边缘的基本数据类型和类型类边标记图形中的标签,例如,请参见代数。图表。贴标签于.

简介

半环和dioid

(单体a、,半群a) =>半环哪里 来源 #

A类半环扩展了可交换的单体带操作<.>起作用的类似于基础(加法)幺半群上的乘法,并且具有作为身份。此模块还提供了两个方便的别名:对于记忆、和<+>对于<>,使界面更加统一。

此类型类的实例必须满足以下半环定律:

  • 的关联性<+><.>:

    x(y)==(x)x<.>(y<.>z)==(x<.>y)<.>z(z)
  • 的标识<+><.>:

    零<+>x==x==x<+>零一个<.>x==x==x
  • 的交换性<+>:

    x<+>y==y<+>x
  • 毁灭:

    x<.>零==零零<.>x==零
  • 分布性:

    x<.>(y<+>z)==x<.>y<+>x<.>z(z)(x<+>y)<.>z==x<.>z<+>y<.>z(z)

方法

::a来源 #

(<.>)::a->a->a中缀7 来源 #

实例

实例详细信息
半环 任何 来源 # 
实例详细信息

定义于代数。图表。标签

半环(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>半环(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>半环(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,半环a、,半环o) =>半环(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

方法

::最佳的o a公司来源 #

(<.>)::最佳的o a->最佳的o a->最佳的o a公司来源 #

::单体a=>a来源 #

的别名记忆.

(<+>)::半群a=>a->a->a中缀6 来源 #

的别名<>.

半环a=>StarSemiring公司哪里 来源 #

A类星半环是一个半环使用附加的一元运算符明星满足以下两条定律:

星号a=1星号a星a=一星

方法

明星::a->a来源 #

实例

实例详细信息
StarSemiring公司 任何 来源 # 
实例详细信息

定义于代数。图表。标签

StarSemiring公司(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,StarSemiring公司a、,StarSemiring公司o) =>StarSemiring公司(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

方法

明星::最佳的o a->最佳的o a公司来源 #

半环a=>二元体来源 #

A类二元体是一个幂等半环,即满足以下条件幂等性除了法律半环法律:

x<+>x==x

实例

实例详细信息
二元体 任何 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>二元体(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>二元体(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>二元体(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>二元体(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,二元体a、,二元体o) =>二元体(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

边缘标签的数据类型

数据 非阴性来源 #

非负值,可以是有限的,有限的无限的注:电流实施号码实例在负文本上引发错误和上的否定方法。

实例

实例详细信息
莫纳德 非阴性 来源 # 
实例详细信息

定义于代数。图表。标签

Functor(仿真器) 非阴性 来源 # 
实例详细信息

定义于代数。图表。标签

方法

功能性维修计划::(a->b)->非阴性a->非阴性b#

(<$)::a->非阴性b->非阴性#

适用 非阴性 来源 # 
实例详细信息

定义于代数。图表。标签

号码a=>有边界(非阴性a) 来源 # 
实例详细信息

定义于代数。图表。标签

等式a=>等式(非阴性a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>号码(非阴性a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(非阴性a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,显示a) =>显示(非阴性a) 来源 # 
实例详细信息

定义于代数。图表。标签

有限的,有限的:: (号码a、,订单a) =>a->也许 吧(非阴性a)来源 #

有限非负值或没有什么如果论点是否定的。

不安全有限::a->非阴性来源 #

一个非负的有限值,创建不安全的:参数不是检查为非阴性,因此不安全有限(-1)编译得很好。

无限的::非阴性来源 #

(非负)无限值。

getFinite(有限)::非阴性a->也许 吧来源 #

获取有限值或没有什么如果值是无限的。

数据 距离来源 #

A类距离是一个非负值,可以是有限的,有限的无限的.距离形成a二元体如下:

=距离 无限的
= 0(<+>) =最小值(<.>) = (+)

实例

实例详细信息
号码a=>有边界(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

等式a=>等式(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>号码(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

显示a=>显示(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>半群(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(订单a、,号码a) =>单体(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>二元体(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(距离a) 来源 # 
实例详细信息

定义于代数。图表。标签

距离::非阴性a->距离来源 #

非负距离。

获取距离::距离a->非阴性来源 #

获取距离的值。

数据 容量来源 #

A类容量是一个非负值,可以是有限的,有限的无限的.容量构成二元体如下:

= 0=容量 无限的(<+>) =最大值(<.>) =最小值

实例

实例详细信息
号码a=>有边界(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

等式a=>等式(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>号码(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

显示a=>显示(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>半群(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(订单a、,号码a) =>单体(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>二元体(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(容量a) 来源 # 
实例详细信息

定义于代数。图表。标签

容量::非阴性a->容量来源 #

非负容量。

获取容量::容量a->非阴性来源 #

获取容量的价值。

数据 计数来源 #

A类计数是一个非负值,可以是有限的,有限的无限的.计数形成a半环如下:

= 0= 1(<+>) = (+)(<.>) = (*)

实例

实例详细信息
号码a=>有边界(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

等式a=>等式(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>号码(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

显示a=>显示(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半群(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>单体(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>StarSemiring公司(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

(号码a、,订单a) =>半环(计数a) 来源 # 
实例详细信息

定义于代数。图表。标签

计数::非阴性a->计数来源 #

非负计数。

获取计数::计数a->非阴性来源 #

获取计数的值。

新类型 动力装置来源 #

这个动力装置在基础元素集上.如果是一个幺半群,则幂集形成二元体如下:

=功率设置。空的
=电源设置$Set。单子 记忆x个<+>y=功率设置$设置。联盟(获取功率设置x)(获取功率集y)x个<.>y=动力装置$cartesian产品 地图挂起(获取功率设置x)(获取功率集y)

建造师

动力装置 

实例

实例详细信息
等式a=>等式(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

显示a=>显示(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>半群(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>单体(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>二元体(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>半环(动力装置a) 来源 # 
实例详细信息

定义于代数。图表。标签

数据 最小值来源 #

如果是一个幺半群,最小值 形成以下内容二元体:

=无最小值
=纯净的 记忆(<+>) =提升A2 最小值(<.>) =提升A2 地图挂起

创建类型为的单一值最小值 使用纯净的功能。例如:

获取最小值(纯净的“您好,”<+> 纯净的“世界!”)==只是“你好”获取最小值(纯净的“你好,”<.> 纯净的“世界!”)==只是“你好,世界!”

实例

实例详细信息
莫纳德 最小值 来源 # 
实例详细信息

定义于代数。图表。标签

Functor(仿真器) 最小值 来源 # 
实例详细信息

定义于代数。图表。标签

方法

功能性维修计划::(a->b)->最小值a->最小值b#

(<$)::a->最小值b->最小值#

适用 最小值 来源 # 
实例详细信息

定义于代数。图表。标签

IsList(IsList)a=>IsList(IsList)(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

关联的类型

类型 项目(最小值a)#

等式a=>等式(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>订单(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

显示a=>显示(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

订单a=>半群(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>单体(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>二元体(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

(单体a、,订单a) =>半环(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

类型 项目(最小值a) 来源 # 
实例详细信息

定义于代数。图表。标签

类型 项目(最小值a)=项目

获取最小值::最小值a->也许 吧来源 #

提取最小值或没有什么如果它不存在。

无最小值::最小值来源 #

与缺少最小值相对应的值,例如空集合。

类型 路径a=[(a,a)]来源 #

A类路径是边的列表。

数据 标签来源 #

的类型免费标签在基本符号集上.此数据类型是类的实例StarSemiring公司二元体.

实例

实例详细信息
Functor(仿真器) 标签 来源 # 
实例详细信息

定义于代数。图表。标签

方法

功能性维修计划::(a->b)->标签a->标签b#

(<$)::a->标签b->标签#

IsList(IsList)(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

关联的类型

类型 项目(标签a)#

显示a=>显示(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

半群(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

单体(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

StarSemiring公司(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

半环(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

类型 项目(标签a) 来源 # 
实例详细信息

定义于代数。图表。标签

类型 项目(标签a) =a

为零::标签a->布尔 来源 #

检查是否有标签.

类型 正则表达式一个=标签来源 #

的类型同义词正则表达式,构建于免费标签.

组合边缘标签

数据 最佳的o a公司来源 #

最优半环通过组合半环获得定义了优化准则,和一个半环描述了论据优化问题。例如,通过选择o个=距离国际一个=最小值(路径字符串),我们获得最短路径半环用于计算国际-带标签的图字符串顶点。

我们假设半环选择性的即针对所有人x个:

x=x | | x=y

总之,操作<+>总是简单地选择一个参数。对于示例容量距离半环是选择性的,而这个计数半环不是。

建造师

最佳的 

领域

实例

实例详细信息
(等式o、,等式a) =>等式(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

(订单o、,订单a) =>订单(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

(显示o中,显示a) =>显示(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,单体a、,单体o) =>半群(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

方法

(<>)::最佳的o a->最佳的o a->最佳的o a公司#

烤饼::非空(最佳的o a)->最佳的o a公司#

斯提姆::完整的b=>b->最佳的o a->最佳的o a公司#

(等式o、,单体a、,单体o) =>单体(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,二元体a、,二元体o) =>二元体(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

(等式o、,StarSemiring公司a、,StarSemiring公司o) =>StarSemiring公司(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

方法

明星::最佳的o a->最佳的o a公司来源 #

(等式o、,半环a、,半环o) =>半环(最佳的o a) 来源 # 
实例详细信息

定义于代数。图表。标签

类型 最短路径电子商务=最佳的(距离e)(最小值(路径a) )来源 #

这个最佳的半环专门用于寻找词典学上最小的最短路径.

类型 所有最短路径电子商务=最佳的(距离e)(动力装置(路径a) )来源 #

这个最佳的半环专门用于查找所有最短路径.

类型 计数最短路径电子=最佳的(距离e)(计数 整数)来源 #

这个最佳的半环专门用于计算所有最短路径.

类型 最宽的路径电子商务=最佳的(容量e)(最小值(路径a) )来源 #

这个最佳的半环专门用于寻找词典学上最小最宽的路径.