

{"id":975,"date":"2013-06-18T10:43:42","date_gmt":"2013-06-18T08:43:42","guid":{"rendered":"https:\/\/project.inria.fr\/plasma-lab\/?page_id=975"},"modified":"2015-03-19T14:28:45","modified_gmt":"2015-03-19T13:28:45","slug":"how-to-use-the-optimization-panel","status":"publish","type":"page","link":"https:\/\/project.inria.fr\/plasma-lab\/documentation\/tutorial\/how-to-use-the-optimization-panel\/","title":{"rendered":"How to use the optimization panel"},"content":{"rendered":"<p><div class=\"alert alert-warning\" role=\"alert\"><p class=\"printonly\"><strong>Warning!<\/strong><\/p><strong>Prerequisite<\/strong><br \/>\nFor this tutorial we assume that you know how to check a property. If you don&#8217;t know how to do that please refer to <a href=\"https:\/\/project.inria.fr\/plasma-lab\/check-a-property\/\">step 3<\/a>.<\/div><\/p>\n<p>The <strong>optimization panel<\/strong> is similar to the experiment panel. Then only new components being<\/p>\n<ul>\n<li>An optimization variables panel<\/li>\n<\/ul>\n<div style=\"width: 407px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/plasma-lab.gforge.inria.fr\/plasma_lab_images\/plasma_optimisation.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/plasma-lab.gforge.inria.fr\/plasma_lab_images\/plasma_optimisation.png\" width=\"397\" height=\"263\" \/><\/a><p class=\"wp-caption-text\">Optimization panel<\/p><\/div>\n<p style=\"text-align: justify;\">This new component allows <strong>to define a set of initial states<\/strong> by modifying variables initial values. When launching the experiment, each initial states will be checked as a separate experiment (as you can see on the results panel).<\/p>\n<p style=\"text-align: justify;\">In order to define this set of initial values we use the <strong>optimize<\/strong> keyword when editing our property. The complete syntax of the property language, included optimization variables, is described in the <a title=\"Bounded Linear Temporal Logic\" href=\"https:\/\/project.inria.fr\/plasma-lab\/documentation\/languages\/property-language\/\">BLTL page<\/a>. We give two examples below.<\/p>\n<p style=\"text-align: justify;\"><div class=\"alert alert-success\" role=\"alert\"><p class=\"printonly\"><strong>Important!<\/strong><\/p><\/p>\n<p style=\"text-align: justify;\" class=\"first-p\">To range the variable p1 from 0 to 5 with an increment of 1 we can use the following syntax:<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">optimize p1:=[0;5;1] end<br \/>\nF&lt;=#5 &#8220;eat&#8221;<\/p>\n<p style=\"text-align: justify;\">This will generate 6 initial states, one for each value of p1.<\/p>\n<p style=\"text-align: justify;\"><\/div><\/p>\n<p style=\"text-align: justify;\"><div class=\"alert alert-success\" role=\"alert\"><p class=\"printonly\"><strong>Important!<\/strong><\/p><\/p>\n<p style=\"text-align: justify;\" class=\"first-p\">We can also vary the parameters of the properties by using the <strong>declare<\/strong> keyword. For instance, instead of using a numerical value for the temporal bound of the property, we can declare a variable K that takes the value 5 and 10 using the following syntax:<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">declare K:=[5;10;5] end<br \/>\nF&lt;=#(K) &#8220;eat&#8221;<\/p>\n<p style=\"text-align: justify;\">This will generate 2 properties, one for each value of K. The two syntax can also be combined to optimize both the variables of the model and the parameters of the property.<\/p>\n<p style=\"text-align: justify;\"><\/div><\/p>\n<p style=\"text-align: justify;\">When we check a property with optimization constraints using the experiment or the optimization panel, several results will be displayed for each instances of the variables.<\/p>\n<p><div style=\"width: 617px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/plasma-lab.gforge.inria.fr\/plasma_lab_images\/plasma_result_optimisation.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/plasma-lab.gforge.inria.fr\/plasma_lab_images\/plasma_result_optimisation.png\" width=\"607\" height=\"296\" \/><\/a><p class=\"wp-caption-text\">Results of an experimentation with optimization variables<\/p><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>The optimization panel is similar to the experiment panel. Then only new components being An optimization variables panel This new component allows to define a set of initial states by modifying variables initial values. When launching the experiment, each initial states will be checked as a separate experiment (as you\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/project.inria.fr\/plasma-lab\/documentation\/tutorial\/how-to-use-the-optimization-panel\/\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":234,"featured_media":0,"parent":135,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-975","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/users\/234"}],"replies":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/comments?post=975"}],"version-history":[{"count":12,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/975\/revisions"}],"predecessor-version":[{"id":2004,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/975\/revisions\/2004"}],"up":[{"embeddable":true,"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/pages\/135"}],"wp:attachment":[{"href":"https:\/\/project.inria.fr\/plasma-lab\/wp-json\/wp\/v2\/media?parent=975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}