{ "info": { "author": "Zhan Lin", "author_email": "dy403164418@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Usage: Users are required to provide classes Algs and Simulator to SIM. Algs should inherit from algs. In the following example, we provide piecewise_linear(Algs) and SIM_Resolve_First(Simulator) to SIM. SIM.update() will solve the model, while SIM.avg(n) return simulation results.\r\n\r\nExample:\r\n\r\nfrom SIM import *\r\n\r\nfrom SIM_Resolve_First import *\r\n\r\nfrom piecewise_linear import *\r\n\r\ncase = SIM_Resolve_First()\r\n\r\nalgs = piecewise_linear()\r\n\r\nsim = SIM(case,algs)\r\n\r\nsim.update()\r\n\r\n#sim.train_mab()\r\n\r\nprint sim.avg(1000)\r\n\r\n\r\nStructure of Algs and Simulator:\r\n\r\nSIM:\r\n\r\nThe only requirement of Simulator is having a function sim() to return a realization. If there are any parameters, they should be implemented in set_para(). SIM_Resolve_First.py and SIM_ALP.py are examples.\r\n\r\nAlgs:\r\n\r\nInterfaces you should provide include lift_value(),relation(),strategy() and update(). Also, lifting method should be described in the class.\r\n\r\nExample of Piecewise Linear:\r\n\r\nfor t in range(self.T):\r\n\r\n for j in range(self.J):\r\n\r\n for k in range(self.div_num):\r\n\r\n self.div_axis[t,j,k] = self.low_bound[t,j] + (self.up_bound[t,j]-self.low_bound[t,j])/float(self.div_num - 1) * k\r\n\r\n self.xi[t,j,k] = self.script.add_var(0,self.div_axis[t,j,k])\r\n\r\n for t in range(self.T):\r\n\r\n for j in range(self.J):\r\n\r\n left = {}\r\n\r\n for k in range(self.div_num):\r\n\r\n left[self.xi[t,j,k]] = 1\r\n\r\n right = {}\r\n\r\n right[self.constant] = 1\r\n\r\n self.script.add_lin_equ(left,right)\r\n\r\n for k in range(self.div_num):\r\n\r\n self.script.add_lin_greater({self.xi[t,j,k]:1},{self.constant:0})\r\n\r\n for t in range(self.T):\r\n\r\n for j in range(self.J):\r\n\r\n left = {self.xi[t,j]:1}\r\n\r\n right = {}\r\n\r\n for k in range(self.div_num):\r\n\r\n right[self.xi[t,j,k]] = self.div_axis[t,j,k]\r\n\r\n self.script.add_lin_equ(left,right)\r\n\r\nlift_value(data):\r\n\r\nreturn lift value for a realization.\r\n\r\nrelation():\r\n\r\nset up dependence self.P for items. For example, if decision X(t,j) depends on first three elements of lifted vector, then self.P[t,j] = {1,2,3}\r\n\r\nstrategy(t,history,x):\r\n\r\nreturn strategy at stage t with history and optimized decision variable x.\r\n\r\nupdate():\r\n\r\nupdate lifting methods.\r\n\r\npiecewise_linear.py and tri_linear.py are examples of Algs.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "pyldr", "package_url": "https://pypi.org/project/pyldr/", "platform": "", "project_url": "https://pypi.org/project/pyldr/", "project_urls": null, "release_url": "https://pypi.org/project/pyldr/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Python Package for Linear Decision Rule and Generalized Decision Rule", "version": "0.1.2" }, "last_serial": 2907309, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "670dc55109c124b8f977d144dd060488", "sha256": "2dcb9f073ed8b254f4808d4eac24d34db355067022ecae94c49056b32cfe2048" }, "downloads": -1, "filename": "pyldr-0.1.1.tar.gz", "has_sig": false, "md5_digest": "670dc55109c124b8f977d144dd060488", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18222, "upload_time": "2017-05-21T19:46:36", "url": "https://files.pythonhosted.org/packages/28/d6/af4ca664e6bc7a976412c8660e5ee48fd76d27e683e41afdbb3f2eb25f8b/pyldr-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "224b04a08d993eacdd466b7453a3a520", "sha256": "476603e4762ee34193bd402f3a075d0f9ea6c9a0bf7b7a84694f97ae33e7c271" }, "downloads": -1, "filename": "pyldr-0.1.2.tar.gz", "has_sig": false, "md5_digest": "224b04a08d993eacdd466b7453a3a520", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18868, "upload_time": "2017-05-21T19:59:33", "url": "https://files.pythonhosted.org/packages/7e/be/54541d1232f4d9407b3b9e466f383d94e976644b5623dceb7cffbfbf1284/pyldr-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "224b04a08d993eacdd466b7453a3a520", "sha256": "476603e4762ee34193bd402f3a075d0f9ea6c9a0bf7b7a84694f97ae33e7c271" }, "downloads": -1, "filename": "pyldr-0.1.2.tar.gz", "has_sig": false, "md5_digest": "224b04a08d993eacdd466b7453a3a520", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18868, "upload_time": "2017-05-21T19:59:33", "url": "https://files.pythonhosted.org/packages/7e/be/54541d1232f4d9407b3b9e466f383d94e976644b5623dceb7cffbfbf1284/pyldr-0.1.2.tar.gz" } ] }