小编jkf*_*kff的帖子

NFA最小化而不确定

众所周知,如何从常规语言的NFA到最小的DFA.但是,DFA可能具有指数级更大的州.

我需要的是一种减少NFA的方法,再次给出一个NFA但具有较少数量的状态.Ti我不需要结果是确定性的,但我希望它保持尽可能小,同时保留公认的语言(可能不是绝对最佳,但越小越好).

这个问题的最佳算法是什么?或者也许不是"最好的",但至少"最容易实现非极端效率"?或者问题是否有一个众所周知的名称,以便我自己能找到好的信息来源?

regex language-agnostic algorithm computer-science finite-automata

12
推荐指数
1
解决办法
1663
查看次数

表示和乘以稀疏布尔矩阵的最快方法是什么?

所以,我使用的是布尔矩阵,其维数通常是几十到几百,它们通常非常稀疏(在大多数行和列中只有2-4个非零),并且我的运行时间由它们的乘法主导.

在这些情况下,哪种数据结构最适合加速乘法?

目前我将每个矩阵存储在一个连续的bitset(64位长的数组)中,并且基本上将它们与标准算法相乘,只需加快稀疏性,快速操作就可以找到一个字中的下​​一个设置位,以及通过位掩码操作进行矢量化.

我是否应该使用一些稀疏表示呢?

algorithm performance bit-manipulation matrix data-structures

9
推荐指数
2
解决办法
1050
查看次数

在Apache Beam中为不同的BigQuery表写入不同的值

假设我有一个PCollection<Foo>并且我想将它写入多个BigQuery表,为每个表选择一个可能不同的表Foo.

如何使用Apache Beam BigQueryIOAPI 执行此操作?

google-bigquery google-cloud-dataflow apache-beam

9
推荐指数
1
解决办法
2439
查看次数

为什么TensorFlow Estimator API将输入作为lambda?

tf.estimatorAPI需要输入"输入功能"返回Dataset秒.例如,Estimator.train()拿一个input_fn(文档).

在我看过的例子中,无论何时手动提供此函数,它都是无争议的lambda.

这是不是意味着函数总是返回相同的值?或者它是否多次调用而没有参数?我无法找到关于此的文档.为什么函数不像train()只是Dataset明确地输入?

python tensorflow tensorflow-datasets tensorflow-estimator

7
推荐指数
1
解决办法
626
查看次数

什么是"标记DFA"?

我遇到了一个正则表达式库http://laurikari.net/tre/以及http://hackage.haskell.org/package/regex-tdfa,但是我找不到任何有关这种"标记DFA"方法的信息.正在使用:既不在这些库的页面上,也不在谷歌(incl.scholar).

有谁知道它是什么?

regex language-agnostic algorithm data-structures

6
推荐指数
1
解决办法
641
查看次数

如何可视化许多并发多阶段流程的行为?

假设我有一个(连续流)请求处理,每个请求有几个阶段.例如:"连接到数据源","从数据源读取数据","验证数据","处理数据","连接到数据接收器","将结果写入数据接收器".

哪种可视化方法甚至工具都能很好地显示这种系统的行为?

我希望能够看到哪些阶段需要很长时间,以及不同请求的阶段如何相互对齐(例如,看到数据源在被太多请求访问时响应的时间更长一旦).

如果只有几十个请求,我可以使用几十个单独的彩色时间表,但是几千个不合适.我想我可以摆脱N色时间线,其中N是"并发因素",但1)也许有更好的东西,2)也许存在这方面的工具?

PS无耻插件:一旦我找到最佳的可视化方法,我会将它添加到我的名为timeplot的漂亮工具中;)

PPS另一个无耻的插件:我决定写一个单独的工具:splot.这是它可以做的,基于一个简单的简单日志和一个awk单行:

替代文字

它显示了160个集群的核心,执行RabbitMQ为其提供的任务.蓝色是"获取数据",橙色是"计算",白色是"无所事事".从该图中可以立即看出几个问题,仅通过查看日志就很难找到.

debugging concurrency monitoring distributed visualization

6
推荐指数
1
解决办法
1513
查看次数

如何流式编程执行ScriptBlock的输出?

我的程序执行用户指定的脚本块,我希望它以递增方式返回其输出(例如,如果脚本块运行很长时间).

但是,ScriptBlock的API似乎没有暴露任何管道相关的东西!

它有一些看起来像我需要的函数(InvokeWithPipe),但它们是内部的,它们的参数是内部类型.我不想在这里诉诸于反思.

那么,有没有办法访问scriptblock的管道?也许某种强大的解决方法?

.net streaming powershell

6
推荐指数
1
解决办法
445
查看次数

使Java Swing应用程序持久化

我想为基于Swing的应用程序添加持久性; 这是我第一次做这样的事情.

我知道如何使用Java序列化API(虽然我使用的是xstream),我知道JComponent是可序列化的,但我对更多架构考虑感兴趣:应该如何设计应用程序以使其持久化变得容易; 等等

我很高兴看到有任何消息来源深入考虑这些问题,但我也很高兴听到一些明确的最佳实践:)

java architecture swing persistence

5
推荐指数
1
解决办法
2164
查看次数

是否存在开源分布式日志库?

我在谈论一个允许我从不同机器记录事件的库,并将这些事件在"全局"时间轴上以足够高的精度对齐.

实际上,我问,因为我自己在集群计算项目中编写了这样的东西,我发现它非常有用,我很惊讶我找不到任何类似物.

因此,重点是这样的事情是否存在(我更好地为此做出贡献)或者什么都不存在(我最好写一个我的解决方案的开源模拟).

以下是我希望从这样的库中获得的功能:

  • 独立于不同机器之间的时钟偏移
  • 定时精度至少为几毫秒,最好是几微秒
  • 可扩展到数千个并发日志记录进程,每秒至少有几兆字节的聚合日志
  • 软实时操作(我不想从200台机器上收集200个大型日志,然后计算时钟偏移并合并它们 - 我想看看"现场"会发生什么,可能会有10秒的小延迟)

language-agnostic logging monitoring distributed cluster-computing

5
推荐指数
1
解决办法
1468
查看次数

我想编写一个没有使用入口障碍的工具.我必须用C写吗?

我想编写一个供开发人员使用的开源工具.我想消除进入障碍,所以如果他们喜欢这个想法,他们就会得到这个工具并开始玩它.

特别是,我不想要"哦,我是否还应该安装200Mb的ThatLanguage运行时库?哦,那么它们不能建立在我最新版本的Linux上?" 进入障碍.

我应该用C编写这个工具吗?或者是Python,或者Java,还是其他什么,已经足够广泛而不必担心这类事情(每个人都已安装它们)?

嗯,当然我知道它们非常普遍,但仍然 - 编写超轻量级零依赖工具有什么重大好处,还是我太完美了?

language-agnostic portability open-source

5
推荐指数
1
解决办法
169
查看次数