Hellow。
我尝试使用optaplanner解决一些优化问题,发生了一些错误。
版本:Optaplanner 6.5.1 - 快照
分数类型:硬软双分
分数方法:DRL
var viewMatrix = Matrix.LookAtLH(camera.Position, camera.Target, Vector3.UnitY);
var projectionMatrix = Matrix.PerspectiveFovRH(0.78f, (float)bmp.PixelWidth / bmp.PixelHeight, 0.01f, 1.0f); var worldMatrix = Matrix.RotationYawPitchRoll(mesh.Rotation.Y, mesh.Rotation.X, mesh.Rotation.Z) * Matrix.Translation(mesh.Position);
var transformMatrix = worldMatrix * viewMatrix * projectionMatrix;
var point = Project(vertex, transformMatrix);
这是我的班级图
使用上面的设置,在构造启发式步骤中,发生以下错误
Vector3 target = new Vector3(10,20,30);
我的修正点在哪里?
请帮帮我~~ ^^
答案 0 :(得分:0)
这两者之间有什么区别?
答案:由浮点运算引起的舍入误差。
HardSoftDoubleScore
的Javadoc:
警告:不建议使用由此引起的错误 分数腐败。例如,这打印为false:
System.out.println((0.01 + 0.05) == (0.01 + 0.02 + 0.03));
请参阅文档部分Avoid Floating Point Numbers in Score Calculation,了解如何解决该问题。