小编Gav*_*ard的帖子

如何将有序文本打包到任意2D多边形中?

问题

我试图找到一个经典2D包装问题的变体的解决方案 - 类似于这个问题.

给定任意多边形P和短语W,我想使用平移,缩放和90度旋转将W的字母"打包" 到P中,这样:

  • W的字母尽可能覆盖P ;
  • W的字母通常按顺序保留(也就是说,当W可以被分解成更小的序列时,该序列中的字母应保持可读).

我想要实现的一些例子:

例1 例2

目前的方法

我已经开始建立一个遗传算法来尝试解决这个问题,它采用以下方法:

  • 在网格内映射P256x256 ;
  • W中的每个字母创建一个简化的边界多边形;
  • 使用每个字母的位置,旋转和比例作为染色体(作为灰色编码的二进制字符串,每个x位置,y位置和比例为8位,旋转2位,产生大小26*length(W)位的染色体);
  • 采用交叉战略,需要n从信length(W) - n信从 ;
  • 使用简单的突变策略,其中每个位在被选择用于突变的个体中发生突变的概率是1 / 26;
  • 目前,基于边界字母多边形所覆盖的P的量来评估适应度.

目前,算法正在运行并找到解决方案,尽管它们并不特别漂亮,因为适应度函数没有考虑字母之间的重叠或可读性约束.

它也很慢,因为适应性评估需要大量的几何计算(我在Ruby中编写算法,但使用C扩展来处理几何体).我正在考虑使用神经网络(或者可能是SVM)来生成符合本文本文中的想法的适应度估计.

问题

关于到目前为止我做了什么,我有几个问题:

  • 首先,整体方法是否有意义?显然,大部分的工作和计算时间都在调整适应度函数,但在我深入研究之前,我想检查一下我是朝着正确的方向前进,并且没有一种不同的方法可以解决这个问题.更好.

  • 如何制定适应度函数来解释字母排序/可读性约束?

  • 我是否可以对健身功能进行任何优化以改善我可以计算的世代数?

任何其他想法或建议也将非常感激.我已经阅读了大多数关于类似主题的现有SO问题,并阅读了很多关于该主题的论文,但没有涉及任何专门处理文本包装的问题.

谢谢!

algorithm genetic-algorithm

15
推荐指数
1
解决办法
689
查看次数

如何使用nginx读取和操作POST请求变量?

我正在使用nginx(v1.4.1)代理外部服务,但希望能够POST在代理之前检查并可能修改请求的主体.问题是,我无法POST通过$request_body变量或其他方式在处理请求时访问请求体.

我已经阅读了很多帖子和SO问题,并且已经实现了这个建议的策略,该策略旨在允许记录POST正文(当使用proxy_pass指令时).然而,虽然这对我有用,但我仍然无法$request_body在处理请求期间阅读任何内容.

为清楚起见,这是我配置的相关部分:

location /proxy-this/ {
    client_max_body_size 8k;
    client_body_buffer_size 16k;
    client_body_in_single_buffer on;
    proxy_pass https://example.com/external-endpoint/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_set_header Content-Length '';
}
Run Code Online (Sandbox Code Playgroud)

而我希望能够做到的:

location /proxy-this/ {
    ... (same configuration as above) ...
    set $request_body $request_body&extra_param=1;
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能是使用nginx_lua模块,并看了看HttpFormInputModule,但第一个似乎矫枉过正,后者一段时间没有更新.

nginx

5
推荐指数
2
解决办法
5311
查看次数

标签 统计

algorithm ×1

genetic-algorithm ×1

nginx ×1