{"action":"created","issue":{"url":"https://api.github.com/repos/JWally/jsLPSolver/issues/23","labels_url":"https://api.github.com/repos/JWally/jsLPSolver/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/JWally/jsLPSolver/issues/23/comments","events_url":"https://api.github.com/repos/JWally/jsLPSolver/issues/23/events","html_url":"https://github.com/JWally/jsLPSolver/issues/23","id":120979339,"number":23,"title":"Solving too long","user":{"login":"castek","id":15982110,"avatar_url":"https://avatars.githubusercontent.com/u/15982110?v=3","gravatar_id":"","url":"https://api.github.com/users/castek","html_url":"https://github.com/castek","followers_url":"https://api.github.com/users/castek/followers","following_url":"https://api.github.com/users/castek/following{/other_user}","gists_url":"https://api.github.com/users/castek/gists{/gist_id}","starred_url":"https://api.github.com/users/castek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/castek/subscriptions","organizations_url":"https://api.github.com/users/castek/orgs","repos_url":"https://api.github.com/users/castek/repos","events_url":"https://api.github.com/users/castek/events{/privacy}","received_events_url":"https://api.github.com/users/castek/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-08T10:33:10Z","updated_at":"2015-12-08T11:48:49Z","closed_at":null,"body":"Hello,\r\nfirst I would like to thank Justin for this project.\r\nThe solver finds correct solution for many tasks (I have tested around 1000 tasks with 10-30 variables), many of them last less then second, but some of the tasks last very long (minutes, tens of minutes). Why? Is it possible to find the solution fast? I don't understand theory of LP. I give an example of the task that lasts too long. Thank you.\r\n\r\n\r\n\"{\"constraints\":{\"c0\":{\"min\":2.999},\"c1\":{\"min\":-3.001},\"c2\":{\"min\":3.999},\"c3\":{\"min\":-4.001},\"c4\":{\"min\":4.999},\"c5\":{\"min\":-5.001},\"c6\":{\"min\":2.999},\"c7\":{\"min\":-3.001},\"c8\":{\"min\":2.999},\"c9\":{\"min\":-3.001},\"c10\":{\"min\":3.999},\"c11\":{\"min\":-4.001},\"c12\":{\"min\":4.999},\"c13\":{\"min\":-5.001},\"c14\":{\"min\":3.999},\"c15\":{\"min\":-4.001},\"c16\":{\"min\":2.999},\"c17\":{\"min\":-3.001},\"c18\":{\"min\":2.999},\"c19\":{\"min\":-3.001},\"c20\":{\"min\":-22.001},\"c21\":{\"min\":-15.001},\"c22\":{\"min\":-0.001},\"c23\":{\"min\":-0.001},\"c24\":{\"min\":-0.001},\"c25\":{\"min\":-0.001},\"c26\":{\"min\":-0.001},\"c27\":{\"min\":-0.001},\"c28\":{\"min\":-0.001},\"c29\":{\"min\":-0.001},\"c30\":{\"min\":-0.001},\"c31\":{\"min\":-0.001},\"c32\":{\"min\":-0.001},\"c33\":{\"min\":-0.001},\"c34\":{\"min\":-0.001},\"c35\":{\"min\":-0.001},\"c36\":{\"min\":-0.001},\"c37\":{\"min\":-0.001},\"c38\":{\"min\":-0.001},\"c39\":{\"min\":-0.001},\"c40\":{\"min\":-0.001}},\"variables\":{\"x0\":{\"objective\":10,\"c0\":1,\"c1\":-1,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":1,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x1\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":1,\"c3\":-1,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":1,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x2\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":1,\"c3\":-1,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":1,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x3\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":1,\"c5\":-1,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":1,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x4\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":1,\"c5\":-1,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":1,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x5\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":1,\"c7\":-1,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":1,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x6\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":1,\"c7\":-1,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":1,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x7\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":1,\"c9\":-1,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":1,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x8\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":1,\"c9\":-1,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":1,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x9\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":1,\"c11\":-1,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":1,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x10\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":1,\"c11\":-1,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":1,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x11\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":1,\"c13\":-1,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":1,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x12\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":1,\"c13\":-1,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":1,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x13\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":1,\"c15\":-1,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":1,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x14\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":1,\"c15\":-1,\"c16\":0,\"c17\":0,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":1,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":0},\"x15\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":1,\"c17\":-1,\"c18\":0,\"c19\":0,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":1,\"c38\":0,\"c39\":0,\"c40\":0},\"x16\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":1,\"c17\":-1,\"c18\":0,\"c19\":0,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":1,\"c39\":0,\"c40\":0},\"x17\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":1,\"c19\":-1,\"c20\":-1,\"c21\":0,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":1,\"c40\":0},\"x18\":{\"objective\":10,\"c0\":0,\"c1\":0,\"c2\":0,\"c3\":0,\"c4\":0,\"c5\":0,\"c6\":0,\"c7\":0,\"c8\":0,\"c9\":0,\"c10\":0,\"c11\":0,\"c12\":0,\"c13\":0,\"c14\":0,\"c15\":0,\"c16\":0,\"c17\":0,\"c18\":1,\"c19\":-1,\"c20\":0,\"c21\":-1,\"c22\":0,\"c23\":0,\"c24\":0,\"c25\":0,\"c26\":0,\"c27\":0,\"c28\":0,\"c29\":0,\"c30\":0,\"c31\":0,\"c32\":0,\"c33\":0,\"c34\":0,\"c35\":0,\"c36\":0,\"c37\":0,\"c38\":0,\"c39\":0,\"c40\":1}},\"ints\":{\"x0\":1,\"x1\":1,\"x2\":1,\"x3\":1,\"x4\":1,\"x5\":1,\"x6\":1,\"x7\":1,\"x8\":1,\"x9\":1,\"x10\":1,\"x11\":1,\"x12\":1,\"x13\":1,\"x14\":1,\"x15\":1,\"x16\":1,\"x17\":1,\"x18\":1},\"optimize\":\"objective\",\"opType\":\"min\"}\""},"comment":{"url":"https://api.github.com/repos/JWally/jsLPSolver/issues/comments/162859603","html_url":"https://github.com/JWally/jsLPSolver/issues/23#issuecomment-162859603","issue_url":"https://api.github.com/repos/JWally/jsLPSolver/issues/23","id":162859603,"user":{"login":"bchevalier","id":1897225,"avatar_url":"https://avatars.githubusercontent.com/u/1897225?v=3","gravatar_id":"","url":"https://api.github.com/users/bchevalier","html_url":"https://github.com/bchevalier","followers_url":"https://api.github.com/users/bchevalier/followers","following_url":"https://api.github.com/users/bchevalier/following{/other_user}","gists_url":"https://api.github.com/users/bchevalier/gists{/gist_id}","starred_url":"https://api.github.com/users/bchevalier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bchevalier/subscriptions","organizations_url":"https://api.github.com/users/bchevalier/orgs","repos_url":"https://api.github.com/users/bchevalier/repos","events_url":"https://api.github.com/users/bchevalier/events{/privacy}","received_events_url":"https://api.github.com/users/bchevalier/received_events","type":"User","site_admin":false},"created_at":"2015-12-08T11:48:49Z","updated_at":"2015-12-08T11:48:49Z","body":"Hi,\r\n\r\nThank you for the feedback. I will have a look but my first guess is that it is difficult for the solver to find a solution with integer values considering that the given constraints are very close to integer values but not quite: for instance ```\"c0\":{\"min\":2.999}``` instead of ```\"c0\":{\"min\":3}```. Is this how your model is supposed to be?\r\n\r\nalso, is the constraint ```\"c40\":{\"min\":-0.001}``` useful? Since all the variables are strictly positive, this constraint is useless."}}