{"id":82,"date":"2017-03-11T06:20:45","date_gmt":"2017-03-11T06:20:45","guid":{"rendered":"https:\/\/fbln.me\/fss\/?page_id=82"},"modified":"2017-07-26T18:37:09","modified_gmt":"2017-07-26T18:37:09","slug":"operators","status":"publish","type":"page","link":"https:\/\/fbln.me\/fss\/operators\/","title":{"rendered":"Operators"},"content":{"rendered":"<h5 style=\"text-align: center;\">\u00a0<b>Operators and Functioning of FSS(Delivered Versions) from <a href=\"http:\/\/www.cirg.ecomp.poli.br\/\"><span style=\"color: #000000;\">CIRG @ POLI<span lang=\"en-us\">\/<\/span>UPE<\/span><\/a><\/b><\/h5>\n<p align=\"left\"><b><span style=\"font-size: small;\">Version 1.0 &#8211; FSS (Vanilla Version)<\/span><\/b><\/p>\n<p><i><u>General Definitions<\/u><\/i><br \/>\n<span lang=\"EN-US\"><span style=\"font-size: small;\">-Aquarium: the hyper dimensional search space<\/span><\/span><br \/>\n<span lang=\"EN-US\"><span style=\"font-size: small;\">-Fish (individual): a candidate solution for the optimization; they all have a Weight (W) and a Position (X)<\/span><\/span><br \/>\n<span lang=\"EN-US\"><span style=\"font-size: small;\">-Food (concentration): the metaphor for guiding fish to &#8220;good&#8221; regions of the aquarium<\/span><\/span><br \/>\n<span lang=\"EN-US\"><span style=\"font-size: small;\">-Swimming: an operator composed of three movements that are vectorially composed before the actual move<\/span><\/span><br \/>\n<span lang=\"EN-US\"><span style=\"font-size: small;\">-Feeding: the operator that updates the fish weight according to the quality of motion (i.e. after swimming)<\/span><\/span><\/p>\n<h4><span style=\"color: #000000;\">Operators <\/span><span style=\"color: #000000;\"><span style=\"font-size: small;\"><br \/>\n<\/span><\/span><\/h4>\n<p>&#8211; Individual movement:<\/p>\n<p align=\"left\"><span style=\"font-size: small;\">Every fish in the school performs a local search looking for promising regions in the search space. It is done as represented below:<\/span><\/p>\n<p>[latex]\\vec { x } \\left( t+1 \\right) =\\vec { x } \\left( t \\right) +U(-1,1){ step }_{ ind }(t)\\\\\u00a0 \\\\step_{ ind }(t+1)=step_{ ind }(t)-\\frac { (step_{ ind\\quad inicial }-step_{ ind\\quad final }) }{ interations } [\/latex]<\/p>\n<p align=\"left\"><span style=\"font-size: small;\"><br \/>\nwhere\u00a0[latex]\\vec { x } \\left( t \\right)[\/latex] and\u00a0[latex]\\vec { x } \\left( t+1 \\right)[\/latex] represent the position of the fish\u00a0[latex] i [\/latex] before and after the individual movement operator, respectively. \u00a0<span class=\"mwe-math-element\"> [latex]U(-1,1)[\/latex]<\/span> is a uniformly distributed random number varying from -1 up to 1 and\u00a0[latex]{ step }_{ ind }(t)[\/latex] is a parameter that defines the maximum displacement for this movement. The new position\u00a0[latex]\\vec { x } \\left( t+1 \\right)[\/latex] is only accepted if the fitness of the fish improves with the position change. If it is not the case, the fish remains in the same position and <span class=\"mwe-math-element\"><span class=\"mwe-math-mathml-inline mwe-math-mathml-a11y\">[latex]\\vec { x } \\left( t+1 \\right) =\\vec { x } \\left( t \\right)[\/latex]\u00a0 and\u00a0 [latex]interations[\/latex]\u00a0 is the number of interations used in the simulation.<br \/>\n<\/span><\/span><\/span><\/p>\n<p>&#8211; Feeding: (1.1)<\/p>\n<p align=\"left\"><span style=\"font-size: small;\"> The feeding operator is used in order to update the weights of every fish according to:<\/span><\/p>\n<p align=\"left\">[latex]W(t+1)=W(t)+\\cfrac { \\Delta f }{ max(\\left| \\Delta f \\right| ) } \\\\ \\\\ \\Delta f=f\\left[ \\vec { x } (t) \\right] -f\\left[ \\vec { x } (t-1) \\right]\\\\ \\\\ [\/latex]\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><br \/>\nWhere [latex] W(t) [\/latex] is the weight parameter for fish [latex] i [\/latex],\u00a0 [latex] \\Delta f\u00a0 [\/latex] is the fitness variation between the last and the new position, and [latex] max(\\left| \\Delta f \\right|) [\/latex] represents the maximum absolute value of the fitness variation among all the fishes in the school. It is important to create a variable [latex](w\\_scale)[\/latex] to limit the weight of the fish, through tests it has been seen to be an important variable.<br \/>\n<\/span><\/p>\n<p>&#8211; Collective-instinctive movement: (1.2)<\/p>\n<p align=\"left\"><span style=\"font-size: small;\">An average of the individual movements is calculated based on the following:<\/span><\/p>\n<p>[latex]\\vec { I } (t)=\\cfrac { \\sum _{ i=1 }^{ N }{ { \\vec { \\Delta x }\u00a0 }_{ i } } { { \\Delta f }_{ i } } }{ \\sum _{ i=1 }^{ N }{ { \\Delta f }_{ i } }\u00a0 } \\\\ \\\\ \\Delta \\vec { x } =\\vec { x } (t)-\\vec { x } (t-1).[\/latex]<\/p>\n<p align=\"left\"><span style=\"font-size: small;\"><br \/>\nThe vector [latex] I [\/latex] represents the weighted average of the displacements of each fish. It means that the fishes that experienced a higher improvement will attract fishes into its position. After the vector [latex] i [\/latex] computation, every fish will be encouraged to move according to: <\/span><\/p>\n<p align=\"left\"><span style=\"font-size: small;\">[latex]\u00a0\\vec { x } (t+1)=\\vec { x } (t)+\\vec { I } (t) .[\/latex]<br \/>\n<\/span><\/p>\n<p>&#8211; Barycenter: (1.3)<\/p>\n<p align=\"left\"><span style=\"font-size: small;\">the barycenter [latex]\\vec { B } \\left( t \\right)[\/latex] of the school is calculated based on the position\u00a0[latex]{\\vec { x }\u00a0 }_{ i } [\/latex] and the weight [latex] { W_{ i }(t) }\u00a0[\/latex] of each fish:<\/span><\/p>\n<p>[latex]\\vec { B } \\left( t \\right) =\\cfrac { \\sum _{ i=1 }^{ N }{ { \\vec { x }\u00a0 }_{ i } } { { W }_{ i }(t) } }{ \\sum _{ i=1 }^{ N }{ W_{ i }(t) }\u00a0 } [\/latex]<\/p>\n<p>&nbsp;<\/p>\n<p>&#8211; Collective-volitive movement: (1.4 and 1.5)<\/p>\n<p align=\"left\"><span style=\"font-size: small;\">The Collective-volitive movement is used in order to regulate the exploration\/exploitation ability of the school during the search process.<\/span><\/p>\n<p>[latex]\\vec { x } \\left( t+1 \\right) =\\vec { x } \\left( t \\right) +{ step }_{ vol }U(0,1)\\cfrac { (\\vec { { x } } (t)-\\vec { B } (t)) }{ DE(\\vec { { x } } (t),\\vec { B } (t)) } \\\\ \\\\ \\vec { x } \\left( t+1 \\right) =\\vec { x } \\left( t \\right) -{ step }_{ vol }U(0,1)\\cfrac { (\\vec { { x } } (t)-\\vec { B } (t)) }{ DE(\\vec { { x } } (t),\\vec { B } (t)) } \\\\ \\\\ \\quad step_{ vol }(t+1)=step_{ vol }(t)-\\frac { (step_{ vol\\quad inicial }-step_{ vol\\quad final }) }{ interations } [\/latex]<\/p>\n<p align=\"left\"><span style=\"font-size: small;\"><br \/>\nwhere [latex] { step }_{ vol } [\/latex] defines the size of the maximum displacement performed with the use of this operator. It is recommended to place the [latex] { step }_{ vol } [\/latex] as the double of the\u00a0[latex] { step }_{ ind} [\/latex] .\u00a0 [latex] DE(\\vec { { x } } (t),\\vec { B } (t)) [\/latex] is the euclidean distance between the fish [latex] i [\/latex] position and the school barycenter and [latex] U(0,1) [\/latex] is a uniformly distributed random number varying from 0 up to 1.<\/span><\/p>\n<h4><span style=\"color: #000000;\">Pseudocode\u00a0<\/span><\/h4>\n<p><span style=\"font-size: small;\">1. Initialize fishes in the swarm<\/span><br \/>\n<span style=\"font-size: small;\">2.<strong> While<\/strong> maximum iterations or stop criteria is not attained <strong>do<\/strong><\/span><br \/>\n<span style=\"font-size: small;\">3.<strong> for <\/strong>each fish <em>i <\/em>in the swarm <strong>do<\/strong><\/span><br \/>\n<span style=\"font-size: small;\">\u00a0\u00a0\u00a0 a. <strong> update position applying the individual operator <\/strong><\/span><br \/>\n[latex] \\quad \\quad \\quad \\quad \\quad \\vec { x } \\left( t+1 \\right) =\\vec { x } \\left( t \\right) +U(-1,1){ step }_{ ind }(t)\\quad \\quad { \\overrightarrow { temp } }_{ i }={ x }_{ i }(t)+{ \\Delta x }_{ i }(t+1)[\/latex]<\/p>\n<p><span style=\"font-size: small;\">\u00a0\u00a0\u00a0\u00a0\u00a0 calculate fish fitness<\/span> [latex]{ f }_{ i }{ (\\overrightarrow { temp }\u00a0 }_{ i })[\/latex]<br \/>\n<span style=\"font-size: small;\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if\u00a0\u00a0\u00a0 [latex]{ f }{ (\\overrightarrow { temp }\u00a0 }_{ i })&lt;f({ x }_{ i }(t))[\/latex]<br \/>\n<\/strong><\/span><\/p>\n<p><span style=\"font-size: small;\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><\/span>[latex]\\quad \\quad \\quad \\quad \\quad { x }_{ i }(t+1)={ \\overrightarrow { temp }\u00a0 }_{ i }, \\quad \\quad \\quad { f }_{ i }^{ (t+1) }={ f }_{ i }{ (\\overrightarrow { temp }\u00a0 }_{ i })[\/latex]<\/p>\n<p><span style=\"font-size: small;\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else<\/strong><\/span><\/p>\n<p><span style=\"font-size: small;\"><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><\/span>[latex]{ x }_{ i }(t+1)={ x }_{ i }(t),\\quad \\quad \\quad \\quad { f }_{ i }^{ (t+1) }={ f }_{ i }^{ (t) }[\/latex]<\/p>\n<p><span style=\"font-size: small;\">\u00a0 \u00a0\u00a0\u00a0 b. <strong> apply feeding operator <\/strong><\/span><br \/>\n<span style=\"font-size: small;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 update fish weight according to 1.1<\/span><br \/>\n<span style=\"font-size: small;\">\u00a0 \u00a0\u00a0\u00a0 c. <strong> apply collective-instinctive movement <\/strong><\/span><br \/>\n<span style=\"font-size: small;\">\u00a0 \u00a0\u00a0\u00a0\u00a0 update fish position according to 1.2 <\/span><br \/>\n<span style=\"font-size: small;\">\u00a0 \u00a0\u00a0\u00a0 d. <strong> apply collective-volitive movement <\/strong><\/span><br \/>\n<span style=\"font-size: small;\"><strong>\u00a0 \u00a0\u00a0 \u00a0 if<\/strong> overall weight of the school increases in the cycle update fish position using 1.4<\/span><br \/>\n<span style=\"font-size: small;\"><strong>\u00a0 \u00a0\u00a0\u00a0\u00a0 elseif<\/strong> overall weight of the school decreases in the cycle update fish position using 1.5<\/span><br \/>\n<span style=\"font-size: small;\"><strong>\u00a0\u00a0 end for decrease the individual and volitive steps linearly <\/strong><\/span><br \/>\n<span style=\"font-size: small;\"><strong>end while<\/strong><\/span><\/p>\n<p><a style=\"color: #000000;\" href=\"https:\/\/fbln.me\/fss\/wp-content\/uploads\/2017\/02\/Andreas_Janecek-Update_Strategies_for_FSSICSI2011.pdf\">\u00a0<span style=\"font-size: small;\">A nice presentation explaining FSS operators and beyond <\/span> (click to dowload)<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0Operators and Functioning of FSS(Delivered Versions) from CIRG @ POLI\/UPE Version 1.0 &#8211; FSS (Vanilla Version) General Definitions -Aquarium: the hyper dimensional search space -Fish (individual): a candidate solution for the optimization; they all have a Weight (W) and a Position (X) -Food (concentration): the metaphor for guiding fish to &#8220;good&#8221; regions of the aquarium &hellip; <a href=\"https:\/\/fbln.me\/fss\/operators\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Operators<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/pages\/82"}],"collection":[{"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":25,"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/pages\/82\/revisions"}],"predecessor-version":[{"id":544,"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/pages\/82\/revisions\/544"}],"wp:attachment":[{"href":"https:\/\/fbln.me\/fss\/wp-json\/wp\/v2\/media?parent=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}