相关疑难解决方法(0)

逻辑将策略性地将项目放置在具有最小重叠连接的容器中

这更像是一个算法问题.我有一个页面,使用javaScript通过绘制从源到目标的箭头连接显示项目和项目与其他项目的关系(想想jsPlumb).每个项目可以有0个或更多连接.我面临的挑战是以最佳方式战略性地将div /圈放置在容器中.

  • 最佳:最少连接数(连接两个圆圈的箭头)重叠

可视示例:下图是未经优化的显示版本,已将圆圈随机放置在容器内.

在此输入图像描述

请注意,在上图中,连接(箭头)重叠的数量不必要地高.下图是一个优化的解决方案,在这个小例子中,圆圈位于更好的位置,导致连接没有重叠:

在此输入图像描述

放置物品的容器尺寸为1020x800.存在大量圆圈的地方总会有重叠,因此我们的想法是尽量减少连接重叠的数量.我希望能够做到这一点的例子,因为我发现阅读算法文章有点令人生畏:(.

javascript java algorithm layout

10
推荐指数
1
解决办法
1824
查看次数

智能手机GPS定位算法研究

我正在开发一个Android应用程序来根据传感器的数据计算位置

  1. 加速度计 - >计算线性加速度

  2. 磁力计+加速度计 - >运动方向

初始位置将取自GPS(纬度+经度).

现在根据传感器的读数,我需要计算智能手机的新位置:

我的算法遵循 - (但不计算准确位置):请帮助我改进它.

注意: 我的算法代码在C#中(我将传感器数据发送到服务器 - 数据存储在数据库中.我正在计算服务器上的位置)

所有DateTime对象都是使用TimeStamps计算的 - 从01-01-1970

    var prevLocation = ServerHandler.getLatestPosition(IMEI);
    var newLocation = new ReceivedDataDTO()
                          {
                              LocationDataDto = new LocationDataDTO(),
                              UsersDto = new UsersDTO(),
                              DeviceDto = new DeviceDTO(),
                              SensorDataDto = new SensorDataDTO()
                          };

    //First Reading
    if (prevLocation.Latitude == null)
    {
        //Save GPS Readings
        newLocation.LocationDataDto.DeviceId = ServerHandler.GetDeviceIdByIMEI(IMEI);
        newLocation.LocationDataDto.Latitude = Latitude;
        newLocation.LocationDataDto.Longitude = Longitude;
        newLocation.LocationDataDto.Acceleration = float.Parse(currentAcceleration);
        newLocation.LocationDataDto.Direction = float.Parse(currentDirection);
        newLocation.LocationDataDto.Speed = (float) 0.0;
        newLocation.LocationDataDto.ReadingDateTime = date;
        newLocation.DeviceDto.IMEI = …
Run Code Online (Sandbox Code Playgroud)

c# algorithm gps android android-sensors

10
推荐指数
2
解决办法
8929
查看次数

计算复杂性和形状嵌套

我有SVG的无线路径,我需要在给定的矩形内尽可能有效地打包(尽可能减少空间浪费).经过一些研究,我发现了bin打包算法,它似乎是处理盒子而不是弯曲的随机形状(我的SVG形状非常复杂,包括beziers等).

AFAIK,没有用于实际打包抽象形状的确定性算法.

我希望在这里被证明是错误的,这将是理想的(有一个数学确定性方法来包装它们).如果我是对的而且没有,那么这个问题的最佳方法是什么

主题名称是形状嵌套,嵌套问题或嵌套过程.

在形状嵌套中,没有单一/统一的算法或数学方法来嵌套形状并且可以获得最少的空间浪费.

  • 第一种方法是打包算法(为每个形状创建一个虚构的边界框,并使用矩形2D算法来打包边界框).这种方法速度快,但在空间浪费方面效率最低.

  • 第二种方法是某种增量旋转.该算法以增量步长旋转形状并检查它是否适合空间.在空间浪费方面,这比包装方法更好,但是它的速度非常慢,

有哪些其他课堂示例可以解决这个问题?

time-complexity computational-geometry

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

近似搜索如何工作

[序幕]

这个Q&A旨在更清楚地解释我在这里首次发表的近似搜索类的内部工作

我已经被要求提供关于这几次的更多详细信息(由于各种原因)所以我决定写关于这个的Q&A风格主题,我将来可以很容易地参考这个主题并且不需要一遍又一遍地解释它.

[题]

如何逼近Real域(double)中的值/参数以实现多项式,参数函数或求解(困难)方程(如超越)的拟合?

限制

  • 真实域名(double精确)
  • C++语言
  • 可配置的近似精度
  • 已知的搜索间隔
  • 拟合值/参数不是严格单调的或根本不起作用

c++ math approximation

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

用不均匀的光盘进行最佳覆盖

我可以使用哪种算法来搜索n个光盘(x j,y j,r j覆盖XY平面有限区域的最佳(最小面积

我发现有许多关于固定半径光盘的研究,但关于可变半径却没有任何研究。

n固定,但光盘可以自由放置(它们不在指定的位置,并且它们的中心不需要在区域内)。该区域通常是非连接和非简单连接的(可以由多个部分组成并且可以具有孔)。在我的特定情况下,是由多个封闭的多边形定义的(使用奇偶填充规则)。

回顾一下:

输入:

  • XY平面的有限区域(例如,描述为具有奇偶填充规则的闭合多边形的集合)

  • n> 0 的整数

输出:

  • n用中心x[i], y[i]和半径描述的光盘列表,r[i]以便该区域的每个点都包含在至少一张光盘中

最小化:

  • 圆盘结合所覆盖的平面区域

解决方案示例

在此示例中,输入为“ A”形。手动放置十个点,并计算出覆盖该区域与Voronoi单元的交点的最小圆。

我目前正在研究仅基于寻找中心x[i], y[i]r[i]使用此算法计算半径的方法(搜索空间减少?n并始终产生可接受的解决方案)。

algorithm math optimization geometry 2d

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