生成避免排列的模式

生成集合$\{1,2,\ldots,n\}$的所有排列,避免某些模式。
地面装置尺寸$n$ (最多12个)
禁止使用的图案
(每个最大长度6)
预定义输入
输出格式
输出  编号绘图

对象信息

给定两个排列$\pi=(a_1,\ldots,a_n)$和$\tau=(b_1,\ldots,b_k)$,我们说$\pi$包含模式$\tau$,如果存在$\pi$的子序列$(a{i_1},a{i_2},\ldots,a{ik})$,其中$i_1\lti_2\lt\cdots\lti_k$的条目与$(b_1,\ltots,b_k)$的相对顺序相同。这种子序列的出现被称为比赛$\pi$中的$\tau$。否则,我们会这样说$\pi$避免了$\tau模式$.例如,排列$\pi=451362$包含模式$\tau=2314$,如子序列$4516$所示,它与$\pi$中的$\tau$匹配,而$\pi$s避免$\tau'=1234$。

通过对模式匹配时施加额外的条件,可以用多种方式修改模式避免的这一经典概念。

根据这些定义,经典图案是没有阴影单元格的网格图案,即$M$的所有条目都是0。长春花图案是一种网格图案,有一列阴影细胞。条形图案是带有单个着色单元格的网格图案。方框图案是一种网格图案,其中$\tau$点的边界框中的所有单元格都会着色。有关这些不同类型图案的更多示例和插图,请参阅[HHMW22]或上述介绍这些图案的论文之一。

论文[HHMW22]提出了一种非常通用的算法,称为算法J,用于生成许多不同类型的模式避免排列,该算法在对模式的一些非常温和的约束下工作。满足这些约束的模式称为驯服.具体来说,如果最大入口不在边界处,则经典置换模式是温和的。例如,$\tau=231$是tame,但$\tau'=321$不是tame。有关管状、条状、盒式或网状图案平缓的条件,请参见[HHMW22]。[HHMW22]中开发的算法可以为任何布尔公式$F$生成所有避免模式的排列,该公式由前面讨论的类型之一的驯服模式、连接词$\wedge$和析取词$\vee$组成。连词表示置换必须避免这两种模式,析取表示置换必须至少避免其中一种模式。我们为满足$F$表示的约束的长度为$n$的置换集编写$S_n(F)$。例如,$S_n(231)$是避免$231$的排列集,$S_n(231\wedge 132)$是同时避免$231$和$132$的排列集合,而$S_n。该算法可以生成的一个更复杂的集合是$S_n(231\楔形(2\下划线{41}3\V形3\bar{1}42))$.

在这个网站上运行的算法J的实现是由于Chigozie Agomo。输入字段采用公式$F$,语法规则如下:
连词$\楔形$&(与号)
分离$\vee$|(竖条)
经典图案231美元$231(连续数字)
血管图案$2\下划线{41}3$24_13(下划线条目之间的下划线)
条形图案$3\bar{1}42$3b142(上覆入口前b)
网格图案$(231,M)$与$M$如上231:0100 0100 1111 0100(模式,然后是冒号,后面是矩阵$M$,从上到下逐行)
优先约束231&(24_13|3b142)与(231&24_13)|3b143(使用括号)

枚举(OEIS)

避免模式的排列描述和计算了大量不同的组合对象,因此有大量与它们相关的OEIS序列。下面列出了一些由该程序可以生成的温和模式产生的序列。

下载源代码

[压缩C++源代码(GNU GPL)]

参考文献