小编Jur*_*yra的帖子

从Haskell程序中的堆栈溢出或堆耗尽中恢复

我目前在Haskell中编写遗传算法,其中我的染色体是代表可执行系统的相当复杂的结构.

为了让我评估染色体的适应性,我必须运行一个evolution执行给定系统的一个计算周期的函数.然后通过计算evolution在系统中没有变化之前可以应用多少次来计算适应度(在这种情况下系统终止).

现在的问题如下:一些系统可以无限长时间运行并且永远不会终止 - 我想惩罚那些(通过给予它们很少的分数).我可以简单地对步骤数量设置一定的限制,但它不能解决另一个问题.

我的一些系统执行指数计算(即使对于它们增长到巨大尺寸的渐变步骤的小值)它们也会导致ERROR - Control stack overflow.对于人类观察者来说,很明显它们永远不会终止,但算法无法知道它是如何运行和粉碎的.

我的问题是:是否有可能从这样的错误中恢复?我希望我的算法在遇到这个问题后继续运行,并相应地调整染色体分数.

在我看来,最好的解决方案就是告诉程序:"嘿,试试这个,但如果你失败了就不要担心.我知道如何处理它".但是我甚至不确定这是否可能.如果没有 - 还有其他选择吗?

stack-overflow haskell exception

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

编写一个与浏览器交互的简单Web爬虫(Java)

我需要创建一个自动化流程(最好使用Java),它将:

  1. 使用特定网址打开浏览器.
  2. 使用指定的用户名和密码登录.
  3. 按照页面上的其中一个链接.
  4. 刷新浏览器.
  5. 登出.

这基本上是为了收集一些统计数据进行分析.每次用户跟踪链接时,都会为该特定用户生成一堆数据并保存在数据库中.我需要做的是,使用大约10个假用户,每5-15分钟ping一次页面.

你能谈谈简单的做法吗?必须有一个替代无尽的登录 - 刷新 - 注销手动过程...

java browser interaction bots web-crawler

2
推荐指数
1
解决办法
4262
查看次数