вбдгжеизйз "!#!%$' &( 0)#12)43(56" 078@9BAC53CD#EF HG ...

22

Transcript of вбдгжеизйз "!#!%$' &( 0)#12)43(56" 078@9BAC53CD#EF HG ...

����������� ���������������������� �"!�# $���% &('*)+# !+,�-.�0/�!�#1-2# 34� 5768'*)��9':);!8<:=(#1%># !@?A<B��5C�9<B);<�%D% ��%D# E9-AFHGJI(-EK# EL!;�B-M<N5(�2<�% &(':)�# !+-M'O/�<�);<B% ��% '75P��/();':/RQ�E9# !S'7&P�B);<�%9�PEL$")T# !8'7�U-WV XYV ZY=R<(E[� <"5�'J�"'EK# EL!;�B-M<J/()8'*/�'�E[!8'O/�'*)\��':% 5:=��U)8&O]^�:#>-2/P% �_���B� � !+# $���% &('*)+# !+,�-W�^�(���\FL][`

• �aI E9I�b�)�# 'N5��"6�#>� �c<26�I(��dfe"'_':=[g+� !�# hR'O�+��-iIP-i-M'(5(��% '_6S':)T�"� $�# 5P'�FH�J/ '�E[E9I(#<B% &:I(-M<PE06jIP��d9k(�PE05(�N$9'U��!j)l'Y% �N6;':)+� �"$�# 5(<�E0!8<�-N="G�-W� '�-M'�5(��% '�`

• �9'(5(�_E[�B)m�on � $�I"!8< 5�'2$f':-pI(-�<J/�':/PIB% <PdKe '7':I_-�<�#>Eq5(��IP-�<_E9I(= rs/�':/(I�% <(d4k(�PE"`

• �9'(5(�_E[�B)m�on � $�I"!8< 5�'2�U-WIB-t'UI7-�<�# E���X:E

• �9'(5(�_E[�B)m�on � $�I"!8< 5�'�#1��!;�B);< !j# h <�-M�B��!;�N':Ic< !j)8< h�GPE05(�N<:)8u:I�# h '�E05P��/�<U)8vB-M�(!+);'�Eo`

w�x9y{z�|~}�x�y[�sz��Uz��8�Uz��U�\}O� }�|�z7�U����xo�U}����;�w"����x9y����\|�z7�:�\�{x9�:}~�B���U���L�8|~���Uy�z�������� �c���*�O������:}\x�x(�\�Y�P� �\�s}����¡��|�zmx¢�\�J�:�\��| �\�£}¤�8�:���8�*¥¦�\}\x¨§ª©«�7¬ }��*­ ®����U�"y4�£}��YxK¯�°�}:±Uz��°�}*z:�*¯³²Y´µ�H�B¯U�UyL���P¶�·�*x(�U¸��{�¹}º�U}*���J�*x�� }��8�:�\�K»

• ¼ #1/�'75(�J/();':=(% ��-�<J�s/��U)+-2IR!S< d9e '7':I�hR<B% ':);�PEKF• ½ �"6�#>��#>)*'7!;<B-M<B�P,"'_5('�E0$4<:-N/�'�E•

�B�R!j)8�_¾2!�#>/�'UE05(�N$�)jIR3[<:-M�B��!;'7�c¿7!�#1/�'�E05(�J-NI�!S< d4e('O�T':Ic5(�(6+#1�(#1)\EL�:IoE¢/();Q:/()�# '�E[F•

�B�R!j)8�_À2!�#>/�'UE05(�_EL�:% �(d4e '•

/()8'*=�<�=(#1%D# 5(< 5(�25P':Eq':/���)S< 5�':)8��E�ZB�PEª$4<�% <�-M�:��!8'75�'~Á� ¼«Ã�Ä �(�(Z�u*I�<B� !+# 5(< 5B�c5��-��:� EL<P&(�B�oE05��7EL<�Å 5(<(Z:�N6+);�"uUÆ�Ç:��$�# <25(�J-N# &:)l<(d4e"'

• $�)+# !;G�)j# '_5(��/ <�)8<(5(<JI EL<U��5('7�PE[!8<(!+Å>E{!j# $f<(E05P�2$f':�9h��U)8&(Ç:��$�# <

�È�É� �¨�³�*�º�:�\�[|¤�¹y����~x"�\�*}��^yLz�»• ÊfËsÌcÍ"ÎMÍBÏ Ð�ΠѦΠÒKÓlÎ ËÉѹÎ(Ô�ѹΠËsÎ(Ò[ÓlÕ�ÖL×�ÎRËÈÎ Ø·Ù{Õ9Í ÕNËLÊ�Ú"Ô4Ì Ô"Ê�Û ÕfÖLÜ�ÌRÝÞÙ�Ì"Ø Ó+Ñ�Õ"ÒfËsÐ8Ì Ñ8Ø0Õ�Ö{Ü9ÌMÍ"ÌRËØ�Ï ß�ѹÕ(Ò[Ó8Î Ë• Ï Ò4à4Î"ÑlËsÜ�̺Ò4̤Ò�á à4Î"Û�Í�ÎCËLÊ�Ú"Ô4Ì Ô"Ê�Û ÕfÖL×�ÎRËLÝ�Ù{Ì"ØâØqÕ"Ò�Ï>Ô�Ê Û Õ9Ö{Ü�ÌJÕ(Ê[Ó;Ì"ØqãKÓ�Ï Ù{ÕOÍ�Î~Í(Ï Ð8Î"Ñ�Î"Ò[Ó;ÎRË

Ó8Õ(Ø�Õ(Ò�ä4Ì Ë�Í�Î�Ù[Õ"Ø�Ô4Ì(å• æ(Ì"Ò[Ó�Ñ�Ì"Û Î¤ËsÌ Ú"ѹÎ�Õ¤ËLÊ�ÚRËjÓ�Ï Ó+Ê�Ï Ö�Ü9Ì�Í�Î�Í�Î�Ë�Ù{Î(Ò4Í�Î(Ò[Ó8Î Ë�ÝÈÏ>Ò4ÙfÛ Ê Ï>Ò4Í�Ì7çLè*Î4é�Ì(Ò4ß�Ù4ѦÌfê�ÍBÏ Ò9ß ë0Ì Ê

çLÑ�Õ"Ò4Í Ì"طѹΠÔ"Û ÕfÙLÎ(ØqÎ"Ò[ÓTë*Ì"Êìç{í9î:ïUðñÛ>Ï ò{ΨѹÎ(Ô�Û ÕfÙ[Î"ØqÎ Ò[Ó*ÌKÐmóKï*ô�õ�öP÷:Ë�ë• í9Î"Û ÎfÖ[Ü9Ì�Í�Î�ÍBÊ�Ô�Û>Ï Ù{ÕKÓ;ÕRËLÝ�ÊfËøÕ Ò4Í"ÌcѹÎ�Í(Ê4Ö[ÜfÌ¢Í�ÎcÏ>Ò4Ù[ÎRËjÓ;Ì• õ�Û>Ï Ó�Ï ËLØqÌ�Ì"ÔfÙKÏ Ì Ò4Õ(Û• ù�ã"Ñ;Ï Ì ËcØqúKÓ;Ì9Í�Ì Ë�Í�ÎJÎ�ËsÙ[Õ Û Õ"ØqÎ(Ò[Ó8ÌJÍ Î2Ð+Ï ÓTÒ9ÎRË�Ë¢û;êÈÏ>Ò4Í�Ì�êüË�Ù{Õ(Û Ï>Ò4ßPݵÛ>Ï Ò9ÎfÕ"ѳËøÙ{Õ(Û Ï>Ò4ßPÝ\ËLÏ ß(Ø0Õ

Ó+Ñ;Ê�Ò4Ù[ÕKÓ�Ï Ì(Òfýþìÿ������������� ��������

• �UËsÕ�Õ(Ñ��(Ê"Ï à9ÌRËHÍ Î�Ù9ä4Î�Ù4ò[ÔfÌ"Ï>Ò[Ó\Ô9Õ Ñ¹ÕMËøÕ Û à4Õ(Ñ(Ì�Î�ËsÓ8Õ�Í�Ì�Í�Î�Ù{Õ�Í�Õ¨Ô4Ì(Ô�Ê�Û ÕfÖ[Ü9Ì�ÕfÌÉÐTÏ>Ò4Õ"Û�Í�ÎÙLÕfÍ"Õ�Ù4Ï ÙKÛ ÌMû+Ê"Ø Í Õ9Í�ÌcÒ���ØqΠѦÌ�Í�Î�ß�Î(ѹÕ9Ö[×fÎ Ë�ý• î�ѹÕ9à4Õ�Í�Ì(Ï Ë�Ó�Ï>Ô4Ì�Ë«Í�Î�Õ"Ñ��(Ê�Ï à4Ì ËHÍ�Î�Ù4ä9ÎfÙ9ò[Ô4Ì(Ï ÒKÓPç[å¹Ï>Ò4Í ëYÙ[Ì Ø Ì�Ë�Ï>Ò4ÍBÏ à á Í�Ê4Ì�ËHÎqç4åDÙ4ò[ÔRëSÙ[Ì Ø ÌÎ�ËjÓ;ÕfÍ"ÌRËÈÑ�Î�ËjÓ;Õ"Ò4Ó8Î Ë[å• � Ê�ËLÊ4ã(Ñ8Ï ÌcÔ4Ì�Í�Î�Õ9Í�Ï ÙfÏ Ì(Ò4Õ"Ñ*Ï ÒKÐ�Ì(Ñ8ØqÕ9Ö�×9Î ËHÕ4Ó�ѹÕKàfú�Ë�Í"ÕR˵ÐTÊ�Ò4Ö[×9ÎRËHÍ Î¢Ù{Ì"Ò4Ó+Ñ�Ì"Û ÎMû¦Ð8Ì ÑSÒ4Î�Ù4Ï Í�Õ�ËÒ4Ì�Õ"Ñ��(Ê�Ï à9Ì Í"ÎcØqÌ9Í�Î(Û Ì ý:ÎÉÐ�Õ���Î(Ñ�(Ê4Õ(Û ��Ê4Î"Ñ��� ��Î ËLÔ9ÎfÙKá ÐTÏ Ù[ÌcÔ4Õ Ñ¦Õ�ÌcÔ�Ñ¦Ì Ú�Û Î"ØqÕ�å• �{Î"Ñ;ѹÕ(Ø0Î Ò[Ó;Õ�Ë�Í"ÎcØqÎ9Í(Ï Í�Õ�Í Î¢Ù{Ì"Ò4à4ΠѦß�� Ò9Ù4Ï Õ• ��Î9Í(Ï Í�Õ Ë�Í�΢Í�Î ËsÎ Ø�Ô9Î Ò�ä9Ì���Ì"ÒRðSÛ>Ï>Ò4Î�Î�ÌKЦÐ@ðSÛ>Ï>Ò4ÎcÔ4Î(Ñ£Ð8Ì"Ñ;ØqÕ"Ò4Ù[ÎRÝ"Ù9Ê�Ñ;ѹÎ"Ò4Ó\Ú4Î ËjÓ:ÎcÚfÎ�ËjÓmÎKà4Î(Ñ• ó4Ì�Ë{ËLÊ�Ï9Ê�Ø·ØqÕ Ò�Ê9Õ ÛLÍ Î����¨Ô4ãfßBÏ Ò9ÕRË

• ��������� ����� ��!#"�$&%(')�+*-,��.$0/213�0*54 �0��6.$8797;:0<>=�/�6@?BA�C+CD79E�F8GB6��HI� �+!KJ)L8GNM&%OC���PQPR�����!��S�T�3U(��*WVN�3�Q�XA0*WY3VZ� �[�SC\�+*W� �]�0��U5*(��6��]6��.C��+*W^�!_�3U5*(��PQH`<

• ab�3UB�c4d� eQ��fQg��h6[?NA�C�CD79E�F8GB6��.C��0*B! � U(� � �R��! C��3UZ�T,��T4d� 6��36��]6���PiC�*W��A0*W��!_�P9��!��!X,�� ����UN�.J)L8GjMb%56@?-A0C�Ch��g�hPk�3A0!_���3U(�X�.!��+!�l0*5� �HI�.C���PQPR�����!��.�T��U(��*WVN�3�Q�Pm��!_��4dn��0��UW�]���]')��*B,3�.$.op<d=X6��q1���*B4 ����6h�@��!rUN��4 �P96�� �@?5�36�� 6��S4T�d��A����3A��0!r� 6���360� U(��* <

• E���6�� ��!#L�'s!��P9�Q�t�\V(�t*-!_� �u!��+���\�04Q6���v\��w5Pm� �yx3�3����UW��w 4 �X�[�0!r�X��C�fQg��]z|{}C��0*~���v�� U(�0*��h�3�Q��PkPm�h6��T*W�3UN� �X6�� P@C���P@� U5� v\��P�<

� ���¹ÿp����Jÿ� ��� �k�����k�8� Jÿ � 8� �)� ��� �8� ��.� � �:ÿ��0�b���� �2�� �����Oÿ��8�¢ÿ �(� � �m�2��� �8��� p� u���;�R����>���N�d� �k�Q�W�k� ��>�¡ (¢ � ¢�£�¤d�c¥¦�y¢B�O§8�m ~¤d�j¤T¨��p©�¢B�O (¥ ©��ª£`�m�W�c� �k�`�W�`� �

�d¤T¨k¢B������¥ � �p£>¤d�c¥5��¤ ¨�¢B������¥���¤T¨|�B�c� £�¤T�d¥ �@¤ ¨|�O�B�d� �m�R�����O�d¥B§�����O¢ � �O��¢���§2¥W¨ >��>¤T�ª¨�£��  \���N�d�ª���Q�3�������¥B§���8�  � �O¤T �¥5¢�d�O ��0£��O ��O¥���¥5�d� �Q¤ ¨`�+¨�¥����j�k���c¤T¢ ��d¤d� ¨Q�������� ���|����O¥�Q���Q�N¤d�>�! Q�T¥�£��O #"%$'&)(� *�+m£>�O ����¢B� §)¤ ¨`� ,O�!�`�N¤d���� k�d¥�¨����_£��  ���¨�¤�-8�O¨�� ��.�d¥�-��N§p���c¥ ��>�N��� �+�O���/ �¥B (�#0d�\£>¤T W���¥�-Q�(§p�Q�T¥��� (�� ��c¥B§�>�N���21 �+�O���/ �¥B (�#0d���¡¥5¢B�O¨���¥�-��N§p���c¥3�k ��/ ��c¥W§�>�N���Q� �+�O���/ �¥B (�#0d�3���¤  ���¥�-��N§8�k�d¥��k ��+ k�d¥N§�� )�� � 4��c¤T¨���5R W����¥5�T¤T¨��'&��N�d¥ � �Q¥N W�¡�O¨76Q (�� Q�d¥N§�T ~�8���¦�  9� :(�/�O¨<;��m�d�d�N¨��=0d�=>��8���N�/>D������?@�Q�N�d�d¥N¨Q� ¥A6@ ��/ ��d¥N§����¥N§)���W� �*� "8¥¦§|��� £[�y�� (�� `�c¥N§B��¤����¨��ª¨)C� k¤T¨��N ��0 �¥B�m ~¥5�(¥N¨ �!>¤c� ¨����¥N§)�O¤T¨+� "8¥¦§|��� £[�y�� (�� `�c¥N§B���(¤ ¨��0¤T¨+�k¥W W�(¤T�ª¨����¤T£c£� ~¥N�`� "8¥¦§|��� £[�y�� (�� `�c¥N§B���(¤ ¨��D��¤ £�£�¥N ~¥N¨�O (¥N�[�@��¤ ¨FE(¥B¢�d¤d�ª¨|�j ~¢���¤�d¥5¢���O (¥8.����¥GE(�ª¨��Z£>¨ HQ�/�O [�O£ I�¥N¨7"8¥8:N� ¨��#0d�\£>¤��k¥J �¥B¨�¢��O§)�N G�p£���¨�¢�d¤d�O¨���>���O� 4�¤ ¨76\�B¢���¤ ¨��0¥�-��N§8�k�d¥��N¨���¢5�+�m¥�£ �  KH\�N����¥B¨�����¥¦ �0d�@�+ ¡�+�O�Q¤ ¨`�7�+¥B¨�¥�d¤c¢L ��� �  ~¤����§X �¥B�� (¥ �¡¥B¨+��!>¤d� ¨|�-¨����O��¥¦ ~��>�  W�N�

M�� � �� ����� � � ÿ��ONQP;�2RTSVU ÿXW�YI�8�

Z\[^]`_Aa7[cb^d�[2e�fDgAhig2[^jk[�lnmod+prqos�t`[�lul=fovGfDg`s�[^w`m7xo[�l<]Dm�d+mygJ[^jz]�svGm`_2aD[

�Qjkf���fojz]�v�[ xof�l=f�w�t`[rv�t�sGxo[ m ]Dm�d+h*s�drxomym�]ov�s�gJm7_AaD[ mo]�]������������Gg

���� �������������������� ��� � �!�"�$#%�'&(� �*)*� +,�.-!/.01 ��% �� 2�������3.�����$����4��3"5(0��$ �����) 2���6.�.��0��87(���9�%� ��.2:�;3�� -</�0= �0��$�<��%7(0���>.?@�A��0B7���� %� �����:�����������C0��:���"����D��3(����0��FE(��) 0��9�"�$ ��%�C�� ��%G���3��

� 7��:� 3(�(�*7(��) ���3.��� 3(0%0�7.�����" �0��� ������ &.+,�����3.��0 3(0�� );�* � ����� ����C��%7(0�� �1 &(���"-�/.0 7(�����E ��) 0������ E���);� �0��$��7(��3.�"���

� &(� ���%�C�����.�!����� � ���:� �!�%# �1�:� �C� �"�,� ��& � &�� � ��%2:&�3(-��"���$ "� �<0�3(�:��0�) �'7(����� 2:&�3(-����"� ��.2:�;3�� ��"� 7 ��) 0'& � &���:� 0%��E�� ����3. �0%�13(�.�!�"�,�!� ��� ��� "�%�A����) �����������&(��) �&(���� ����$��0��:�;3.��� "0�� ����������

������������� ���"!��$#�%'&�!)(+*��,���-��.0/1%'#2��#43657�)%981:2���2#�%'#�; �<�=�)!��>#�?�:2��@��0#�%A#-�B��%'�=C��>�=�-##�����D�EF&G!H�".2:�� I,!=�J��%9�=C����)�,#-���"�0�=%K��!</K#�?�:2��D0�08L/M�"��%'�7CN�O��� #P��8�/MQP�)�281E2%K(R/K��.2��S(R*)%A�-��� TU�=�>��C0��%AVW@)� #<�=(X�B(OY�#�%7#-Z9!).2?�:N�-�)[]\^S_a`bMcOd�cOd�e2dfefg7h�i>j2c+kKh�lKmMn�c>iRj0nSo9pqakMjfhLo9hU_9^kKlKgsr�j]pXotn>pulKkLduv�wx lMcRj]mMv�yzf{ hMmRn>p|j x v}w~yz b�j z]{ hMmRnSc>i+j]h�p�jfnSc+�7v�e~hMh z�{ h^S_�r1iOe�k { pXjAd�m�e~pSm>nSc+i>j�hMp|j�nSc��=g�j'efk�d��=c>i+itmOe { j�c k�hMlMmKn�pXotg m+b�cOd�nSc+i>j'��kMoKm1_9^^S_�n�p|o9g�e�p�j'd�m�e�pXmKnScRi+j)�S��c�� jK� ����q=`��<��`����7�7�R����e<hMp|jf��c+oKl�dpSlMk�_�^pXjAd�mSefpSm>nSc+iRj�h�p|jfn�c �svh�j]p�g7h�pXoKr�i>jfg�v�kefi+hMb1e���duc��'j�v��kKlKgsnOc>j�i+ �d�v�w]yd�lMh�j]pSlMkMc�nOotpXg vskg�e��L¡9j�k7v�¢h�o9h�duc+�9jHv��MyhMp|c kMmOd�m>pXc�kL¡Kd�vskh z puo�d|d�v£� ¢hMg�lMmOefm�c+oKk7v�y�� y0wh�c�kK��jfp�ducRo9k�v�y��e�lMm>o z otkKm>pXo�i+�Ld�j]i>j z mOc+otk7vskr�j]mOe<vd z efi>c�k�¡9�M�=c+kM �o9�4vU�]w^S_��so9mOj<m>b�efmMc�nLd z e�i>c kL¡����=c k� Kot�4c>dkMoKm���w��KducO¡�g�ef�MmRpXlKk z e|k� 7d z e]i+j]g�lMi+m�_'^^S_�¤£¥�¦�`�r�j2pXj]gso9��j] 7o9p z o9g7g�jfkMm>j' =o9l�m��9e'd�m>bMj<h�pXo�¡�p�e�g �=c>iRi9��q7`�m+pS§�m�os_9^^S_�p|jAef �m>bMj]gU�K_'^ducO¡�g�ef�MmRpXlKk z v�yd z efi>jfgslMi+mMv�wK� ¨�yz p�o9�= Mc�k�¡���nXe z m>otp�v�yz oKkK�K��ducO¡6g�e�� z o�jfnOn�v�©z oKkK�Mc+k�m>j]pS�1e�i�v�yp�efkM �o9g�d|j]j' =v�y�� ª�¨�¢

• ����� ��������� � ����������� ���������������� ����� � �• ���! �#" � ����� !$� �&% �� % � " ! � %#���&��� � � �#� %('�� �#�)� *�����%&���#�#� �#�,+ �� �-%�.�% �/�#�,�0� + � %&"1��2 %•

��3�.#"1�4�1� ���#5��(��3�.�"/� ! 2 ��.��/�(� ! � � �. �,� � � .#%��1%& � % � *��! 6 � ���&�(5��#�(37.� !$� "•

%�28.�5�%�9 �,! : �*;=<-�>.���� � .��/���2 � � ; �?��@A� % � "4� !8� 'B��� � ��� � ! � 2 � �?C�D1EGF�H �I �� % ! � �#�,��J � ! K.����� !$� "����4.��/�("1%0�*��� �� %�2 *� ��� � % � � ! �1%&��� � �,LM%(��%*N•

%�28.�5�%�9 �,! : �*O=<-�>.���� � .��/���2 � � ; �?��@A� �P � L ��� "1B��� ����� � ! ��2 � � �,% � .� �Q!8� "�� ! � ���� ! ' � % 27�P � .�� !8� � � "1 H �P%���% ���R� !S� "1� � 6 %02 B����T�%VUM%�2S.�5�%�9 ��! : ��WYXPZ[N•

%�28.�5�%�9 �,! : �*\=<-�>.���� � .��/���2 � � ; �?����� �P � L ��� "1B��� ����� � ! ��2 � � �,% � .� �Q��+ � �#�P� �Y� % � ! % � � � "1����� !$� "/� ! �1 � ��� ! ' � % 27�P � .�� !8� � � "�]N•

.���� � .��^��2 � � ;`_ � ��%#��% ����� � ! ��2 � �a!8� "/� ! �1 � !$� "���� 6 %�2 cbdT�W ����� � ! ��2 � � WYXPef%�.#% �1���,�����%#"�% � � � "1� ��� % 6 � : � � �P%(��%&�(� � �Y� � H � �g �� %�2 0� ���*�� �Q����� � ! ��2 � �(h.� �i��j 6 � ! � % �4�1% � L/ � N#kl.��/���2 � � %&m�� � �7 � "4�1%�� �� % 2#.���� �&� "/% �P+ B�� ����� � ! �(� ��P% � .� � .�� � ��: 6 %�2 *�*n�" !S� B��%�� �����7+ B����� ! " � � �P� N• � %(��'�� �a������� ���/ �oJ � !8� B���-'����1% �P� � �•

.��. ��! : � � "1% � % � 5�B��%>.�*. � 2 % �P+ •

.����/ �Y�PH . ��� "`�B. !S��6 ��� �P! �o� .��/���%�� ! 2 ! ��%#� �-���&% .�2 ! �7% �P+ B�� � �.#���1%�����/� � U4T�WpX[Z• � �R� � �,*2S5#���*�����qr� !S� 'sOtT H .(�����W � �&"/% � ��m � ����� !8��! � !$� �P� � "u9`�1�#� � �P" ! �•

.�%��/%V.��^��2 � � % �r �� � �#+ � �PLd% � ���>.���� ��� "/% �,+ V.#�����W � �&� � �P*2S5����G. !$��6 ��� ��! � OvT•

�1% � �� �w� ���#� �x� � � � � "1��%02 �(%�"1n*� ! %>.�% �/%&'�����% �P+ &� � ����� ���� � N• F � .���� ����! �/�� �y!$��! " ! %�2 ! : %�" ! � Ud*.�� ! � %�2 Z=WGUz.�%��1%-%�28.�5#%�9 ��! : �^;{<?%�.�� � % � ZG'�%���% � "/� �� ���� %V.��. � 2 % �P+ ��, � "/� � 5�%&"���� � % � .� �P�,j 6 � ! � �P � � !8� % �P� � � �����P � .�� !8� � � "�� � � 0�* ��! ' � % 2P%>2 �'�<BU|.�0. � 2 %�" ! �&�,! : ��Z[N• } ��~� � '����/�qI� !$� '�Wd"u_�.��>�1��.�2 %#�,� � � � "*��%�.�%�� ! 2 ! "u_BU4�.�� ! � %�2SZ{W]�����qr� !$� '�9��1%��P"/��`WY�

o T�W(�1% : � � ! 285� �)��� � � " ! " � j �/� � � .�% !S� �P � � F��]�A�

o X)W(�1% : � � ! 285� �)��� � � " ! " � j �/� ��� � � ��� � ��%V.��. � 2 % �P+ � ��2 �(� ! � %(�� � ���� % � � ! �/%-%�2 ��%#"/n�� ! % ����! �/�� � ��� � "d�/��% �� ��2 � � L J&� ��2 �(� ! � %(�� � ���?%��,0������P ��� ! " � � �Y� .�%0�1%V�/��.��/�� ���7+ ����Y ��� ����1� 6�! 6 � � � %B.��1n(� !S� %&' ���1% �P+ ]N

o �,�|O�X � �/% : � � ! 2S5# ���,� � � " ! " ��j �1� � � % !S���,!8�&! 2 %��GUd� !S� "/� � � ! %����K�*% ���&!8� '�Z�����P� !$� � ! 6�j � � �)� �02 ��� ! � %(�� � %�2 �(%�"10� ! % � � � "/��� � "4�1��% �� ��2 � � L J� � 2 �#� ! � %#�� � ���&%(�P*�1��B�7 � B� ! " � � �Y� .�%0�1%V���.��1�� ���7+ ����� ��� ����/� 6�! 6 � �� %V.���n#� !$� %&'�����% �P+ ]N

• F ! ' � % E � ��� �P%(" ! �?� ��� � ��� ! "/ � K2 ! 6 �/B�� � �2 �0�(���1'GN��7� � �&! "��& �#�,�#J � ! B� � .��#� ! � ! �,%�����R�&� 2 " ! .�2 ! �,%�����*��� �,! ' � %*N#k�� ! " � � �P�YH � H m�"d�/% ��� �1^� � %#��K.�%���% ��! ' � %�W�"4� ��� �P%�"1���� ! " � � �Y�PH �4� H*��� % � ��A����d�{���p�������S�Y���[���8�����i�(�7���$ p����¡P¢1�d£P¤�¥0¦*�1�$ p�§�z¨u¨ � ���&�d�(%��*m&B� ! " � � �P�Q� m�� ! B��%&'����/% �P+ B�P��4�1� � "1�]N D4�Y� �m H "���� � ��6 % 2 ��/� � ����d© %���% ! ��B����T]N$T �p+ B"d� ��� ��%#�� � .(%��1%�T]N

• � �P%�2 !$� '�9�q !8� ���q �«ª¬��� ���/B���&'�� �/% �P� � � % � "1� � ! ��1� � ��% �� %02Y !8� � ! 6�j � � ���� � � � 0�� ! " � � �Y�)� ��� JB��� %(��>.(%��/%-���("/� � ��!$� %��]&� � �P%�2 % � � � "/B��%>.��. � 2 % �P+ B����M��� � "/�VU­WYX�;

��+ �#� � � T�'�� �/% ��+ B�P��4�1� � "1�&%�.�� � % �YH X)�P��4�1� � "/� � % ! � %&% � "1��� ! �� H �#"/� ��6 %02 ^��aJ � !8� X���Z,N•

�P ��6 9 �P! ' � %(9��P����1� ������� ���/����-��� � 6�! � .�%#��� � � � %#� !8� %��&%���% ! �����% � ��� ! %>.#% �%� ��� ��� %#� � % � ��� ! ��%����&�P ��6 ���/'�� � � ! %^N•

�P ��6 9 � �#% ��� �/� � �/� ��� 2 "1%#�����% � �#� ! ��%������P ��6 ���/'�� � � ! %���� � ��� ! "�% � � % ��� %�2 N

������������ ����� ��������������� �������� ��!��#"$�

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / / * appxxxxx . c - appl i cat i on dependent r out i nes, " f i l l i n t he bl anks" t o * / / * def i ne your pr obl em f or sol ut i on by GALOPPS. Any f unct i ons * / / * not needed may si mpl y be l ef t " as i s. " * / / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / #i ncl ude <mat h. h> #i ncl ude " ext er nal . h" voi d obj f unc( cr i t t er ) / * Appl i cat i on- dependent obj ect i ve f unc t i on. THI S I S THE ONLY ROUTI NE THE * / / * USER ABSOLUTELY MUST FI LL I N TO DEFI NE THE USER' S PROBLEM. OTHERS ARE * / / * OPTI ONAL, DEPENDI NG ON THE NATURE AND COMPLEXI TY OF THE PROBLEM. * / / * Thi s i s wher e you code t he obj ect i ve f unc t i on f or your par t i cul ar pr obl em, * / / * get t i ng t he genot ype f r om cr i t t er - >chr om, and t hen pl aci ng t he * / / * r aw ( unscal ed) f i t ness f or c r i t t er i nt o c r i t t er - >i ni t _f i t ness. * / / * Anot her ac t i on whi ch must be accompl i shed i s t o i ncr ement t he cur r ent * / / * eval uat i on number ( neval ) and r ecor d i t i n c r i t t er - >neval . * / st r uc t i ndi vi dual * cr i t t er ; { neval ++; l ocal _cyc l e_neval ++; c r i t t er - >neval = neval ; / * The LEAST t hat any appl i cat i on can do i s t o r epl ace t he l i ne bel ow * / / * wi t h a val i d s t at ement t hat assi gns a r aw f i t ness t o t he genot ype * / / * ( chr omosome) passed i n ( poi nt ed t o by cr i t t er ) . The const ant bel ow i s * / / * j ust so you can check t hat t hi s " bl ank" t empl at e i ndeed compi l es and * / / * r uns wi t h t he r es t of t he sys t em as you have conf i gur ed i t . * / c r i t t er - >i ni t _f i t ness = 10. ;

Nest e pont o é i nser i da a f unção de f i t ness } voi d app_set _opt i ons( ) / * Thi s r out i ne i s cal l ed once when a new r un or ext ended r un i s st ar t ed. * / / * I t must set a val ue f or al l of i t s gl obal var i abl es, al t hough t hey may * / / * be modi f i ed l at er ( i n ot her app_ f unct i ons) dur i ng t he r un. * / { avg_mut _wi dt h = 3; / * Must set i f usi ng mul t i mut . c . Val ue i s expect ed * / / * number of adj acent f i el ds ( bi t s, i f bi nar y) t o * / / * set r andoml y at once. * / s t ochast i c = 0; / * Must set t o 0 or 1 t o speci f y whet her or not * / / * f i t ness f unc t i on al ways r et ur ns same val ue f or a * / / * gi ven chr om. - - I f al ways same, set st ochast i c = 0 * / / * t o avoi d ext r a eval uat i ons; i f changes wi t h env' t * / / * or r andoml y, set = 1 * / el i t i sm = 1; / * Must set t o 0 or 1 t o det er mi ne whet her or not * / / * best i ndi v . i s al ways pr eser ved i n nex t gener at i on * / / * ( 1 = yes) . * / el i t i sm &= ! st ochas t i c ; / * Not e t hat el i t i sm i s r eset t o 0 aut omat i cal l y * / / * i f user spec i f i es st ochas t i c f l ag = 1, si nce t he * / / * changi ng f i t ness makes i t i mpossi bl e t o i nsur e t hat * / / * what was once bes t i s s t i l l best . * /

user _suppl i ed_i ni t i al i zat i on = 0; / * Make i t TRUE ( 1) i f you wi l l * / / * suppl y code t o i ni t i al i ze t he * / / * i ndi v i dual s i n ol dpop bel ow, i n * / / * r out i ne app_user _i ni t _pop( ) , * / / * i nst ead of usi ng one of t he * / / * " s t andar d" met hods suppl i ed wi t h* / / * GALOPPS. * / cal l _app_user _does_mi gr at i on = 0; / * Fl ag, i f set , al l ows user f ul l * / / * cont r ol of mi gr at i on, f r om * / / * app_user _does_mi gr at i on( ) , bel ow * / usi ng_i nver si on = 0; / * Set f l ag t o 1 ( TRUE) i f wi l l use i nver si on t o * / / * al t er pl acement of f i el ds on chr omosome, wi t h * / / * r emappi ng of f i el ds t o " st andar d" pos i t i ons at * / / * each eval uat i on, bef or e obj ec t i ve f unct i on i s * / / * cal l ed. I t i s set aut omat i cal l y i f pi nver si on>0, * / / * but user may set manual l y her e i f has ever used * / / * i nver s i on, so unmappi ng, t r ansl at i on, et c. , wi l l * / / * cont i nue t o occur , even i f pi nver si on now set * / / * t o 0. * / di f f er ent _r eps = 0 | | us i ng_i nver s i on; / * You set t o 1 ( TRUE) i f wi l l use di f f er ent r eps * / / * i n di f f er ent subpops. I f TRUE, and i f t he * / / * di f f er ence i s NOT ONLY I NVERSI ON, t hen YOU MUST* / / * al so suppl y code t o t r ansf or m ALL of t he * / / * mi gr at i ng i ndi vi dual s, i n app_t r ans f or m_mi gr ant * / / * i n t he skel et on bel ow, and code bel ow i n * / / * app_t r ans f or m_chr om_t o_s t d t o t r ans f or m a * / / * chr omosome i nt o i t s STANDARD r epr esent at i on * / / * ( used i n t he obj ect i ve f unc t i on obj f unc( ) . * / / * Al ways 1 i f i nver si on i s bei ng used. * / i f ( di f f er ent _r eps && ! usi ng_i nver si on) { / * User i s usi ng di f f er ent r epr esent at i ons i n var i ous subpopul at i ons, * / / * so must be suppl y i ng app_t r ans f or m_chr om_t o_st d( ) and * / / * app_t r ans f or m_mi gr ant ( ) . User must al so set t he var i abl es * / / * max_chr omsi ze_among_al l _subpops and max_numf i el ds_among_al l _subpops * / / * i n t he l i nes di r ect l y bel ow, and del et e t he pr i nt and t he cal l t o * / / * ex i t ( ) whi ch ar e i nser t ed as a r emi nder t o t he user . * / f pr i nt f ( st der r , " \ n* * * You have sel ect ed di f f er ent _r eps and ar e not " ) ; f pr i nt f ( st der r , " us i ng i nver s i on, \ nso you MUST spec i f y her e i n app_i ni t " ) ; f pr i nt f ( st der r , " t he max i mum si zes of chr omsi ze and numf i el ds. * * * \ n" ) ; ex i t ( - 9) ; } el se { max_chr oms i ze_among_al l _subpops = - 1; / * set t o i l l egal val ue, as f l ag * / max_numf i el ds_among_al l _subpops = - 1; / * set t o i l l egal val ue, as f l ag * / } } voi d app_set _f i el d_si zes( ) / * Rout i ne cal l ed ONLY I F user i nput s al pha_si ze as < 2, meani ng f i el ds have * / / * di f f er ent l engt hs. I n t hat case, user MUST pr ovi de code her e t o set t he * / / * ar r ay f i el d_s i zes[ i ] , 0<=i <numf i el ds , t o t he number of di f f er ent codes * / / * possi bl e i n t he i t h f i el d ( codes wi l l var y f r om 0 t o f i el d_si zes [ i ] - 1) . * / / * Dat a may be set i n execut abl e s t at ement s, or v i a i ni t i al i zer s. I f t he * / / * pr obl em uses di f f er ent r epr esent at i ons i n di f f er ent subpopul at i ons, and * / / * i f t hat af f ec t s t he f i el d si zes , t hen t hi s code must set t he pr oper si zes * / / * f or each subpopul at i on, us i ng popno t o t el l whi ch subpop i s bei ng * / / * i ni t i al i zed. El sewher e, t he pr ogr am wi l l al so aut omat i cal l y use t he * / / * f i el d_si zes t o set ar r ay f i el d_ends , t o t he f i nal bi t number ( i n * / / * [ 1, l chr om] ) of each f i el d. * / { i nt i ;

/ * f i el d_si zes[ 0] = 24; Repl ace wi t h code t o set t hem t o t he si zes * / / * you ac t ual l y want . * / / * . . . * / / * f i el d_si zes[ 9] = 24; Repl ace wi t h code t o set t hem t o t he si zes * / / * you ac t ual l y want . * /

Al t er ado se f or ut i zado al pha_si ze ! = 2 } voi d app_r ead_pr ob_par ams( ) / * Appl i cat i on dependent dat a i nput , cal l ed ONCE at st ar t of r un ( whet her * / / * st ar t ed f r om i nput par amet er s or EXTENDED f r om r est ar t f i l es) by mai n * / / * pr ogr am BEFORE i t r eads t he " st andar d" f i el ds l i ke numf i el ds, et c. * / / * ( Not e: Onepop may do many RUNS, and t hi s i s cal l ed at st ar t of each) . * / / * Val ues r ead her e ar e usual l y st or ed i n st at i c var i abl es * / / * decl ar ed at t he t op of t he app f i l e, so t hey may be used i n any of t he * / / * user cal l back r out i nes, but do NOT have t o be r ead/ wr i t t en t o t he * / / * checkpoi nt f i l es. Thus , user shoul d r ead t hese val ues ALSO when a r un i s * / / * r est ar t ed f r om saved checkpoi nt f i l es. I f val ues MUST be pr eser ved ACROSS * / / * r uns ( i . e. , saved when checkpoi nt i ng and r er ead when r est ar t i ng) t hen * / / * t hat mus t be done i n app_wr i t e_ckp_hdr ( ) and app_r ead_ckp_hdr ( ) , bel ow, * / / * and t he var i abl es wi l l be saved wi t h EACH subpopul at i on. Not e: val ues * / / * l i ke numf i el ds, al pha_s i ze, et c . , ar e NOT yet known when t hi s i s cal l ed. * / { }

voi d app_dat a( REVI SI NG) BOOL REVI SI NG; / * Appl i cat i on dependent dat a i nput , cal l ed by i ni t dat a( ) and r ev i sedat a( ) , * / / * j ust af t er user answer s ques t i ons about c r ossover r at e, scal i ng, * / / * convi nt er val , et c. Ask i nput quest i ons her e whi ch mi ght be di f f er ent f or * / / * each subpopul at i on, and wr i t e ( and r ead) t he val ues t o t he checkpoi nt * / / * header f i l e by put t i ng code i nt o app_wr i t e_ckp_hdr ( ) and app_r ead_ckp_hdr ( ) * / / * bel ow. Val ues l i ke numf i el ds, al pha_si ze, et c . , ar e al r eady known when * / / * t hi s r out i ne i s cal l ed. * / / * NOTE: app_dat a i s cal l ed whenever t he user i s i ni t i al i z i ng ( f r om user * / / * i nput , f l ag REVI SI NG == FALSE) or r evi s i ng ( f l ag REVI SI NG == TRUE) i nput * / / * dat a ( but onl y once i f f l ag al l _subpops_use_same_par amet er s i s TRUE) . * / / * HOWEVER, I F user i s RESTARTI NG f r om saved checkpoi nt f i l es, and does NOT * / / * ask t o r ev i se any par amet er s , t hi s r out i ng I S NOT CALLED. Ther ef or e, f or * / / * user dat a ( t abl es, et c. ) whi ch you want t o r ead i n on a RESTART, al so, * / / * use app_i ni t t o r ead t hose dat a, as i t i s cal l ed whet her r est ar t i ng or * / / * st ar t i ng f r om t he begi nni ng. ( Put i t i ns i de t he " f i r s t cal l " l ogi c. ) * / { i f ( REVI SI NG) r et ur n; } voi d appl i cat i on( ) / * t hi s r out i ne shoul d cont ai n any appl i cat i on- dependent comput at i ons * / / * t hat shoul d be per f or med bef or e each gener at i on. cal l ed by mai n( ) * / { } voi d app_i ni t ( ) / * Appl i cat i on dependent i ni t i al i zat i on r out i ne cal l ed by i ni t i al i ze( ) f or * / / * EACH subpopul at i on each cycl e, whet her st ar t ed f r om i nput or r es t ar t ed * / / * f r om a r es t ar t f i l e, and whet her al l _subpops_use_same_par amet er s i s TRUE * / / * or FALSE. Cal l ed af t er i ndi vi dual s ar e mal l oc ' d and af t er i ndi v i dual s * / / * ar e r ead f r om . i nd f i l e ( on a r es t ar t ) , but bef or e r andom i ni t i al i zat i on* / / * of al l i ndi vi dual s ( i f i ni t i al st ar t ) or of i ndi v i dual s NOT r ead ( i f * / / * r est ar t i ng) . * / { s t at i c i nt f i r st cal l = 1; / * Any code you want t o add t o app_i ni t goes bel ow. * / i f ( f i r st cal l ) { f i r s t cal l = 0; / * Put her e any code you want t o do j ust once i n a r un, r egar dl ess of * / / * how r un was st ar t ed. * / r et ur n; } / * Put her e any code you want r un f or each subpopul at i on at t he begi nni ng * / / * of i t s execut i on i n each cycl e. * / r et ur n; } voi d app_user _i ni t _pop( st ar t i ng_guy_i ndex) / * I f none of t he st andar d met hods suppl i ed wi t h GALOPPS wi l l wor k f or * / / * i ni t i al i z i ng t he i ndi vi dual s i n ol dpop at st ar t of r un, or f or c r eat i ng * / / * new " r andom" guys when popsi ze i s expanded, or when conver gence t r i gger s* / / * par t i al r e- i ni t i al i zat i on, et c. , t hen you can cr eat e t he i ndi v i dual s * / / * her e, f i l l i ng ol dpop[ st ar t i ng_guy_i ndex ] t hr ough ol dpop[ popsi ze- 1] . * / i nt st ar t i ng_guy_i ndex; {

} voi d app_af t er _r andom_i ni t ( ) / * Appl i cat i on- dependent changes or r edoi ng of i ni t i al i zat i on, cal l ed af t er * / / * t he r andom i ni t i al i zat i on i s per f or med and ( on r est ar t ) i ndi vi dual s have * / / * been r ead i n f r om r es t ar t f i l e. * / { } voi d app_i ni t r epor t ( ) / * Appl i cat i on- dependent i ni t i al r epor t cal l ed once by i ni t i al i ze( ) * / { } voi d app_r epor t ( ) / * Appl i cat i on- dependent r epor t , cal l ed each gener at i on by r epor t ( ) * / { / * Nor mal app- dependent end- of - gener at i on pr i nt i ng done her e. * / } voi d app_deci de_i f _conver ged( f l ag, num_t o_r epl ace_i f _conver ged) / * Thi s r out i ne i s cal l ed at t he end of each gener at i on of each subpopul at i on * / / * t o gi ve t he user t he opt i on of check i ng f or conver gence of t he * / / * subpopul at i on, or ot her condi t i on. When ( i f ) t hat happens, i f user want s * / / * s i mpl y t o r ei ni t i al i ze al l or par t of t he subpopul at i on t o r andom val ues * / / * and keep r unni ng, user can j ust set f l ag t o 1 and set * / / * num_t o_r epl ace_i f _conver ged t o t he desi r ed number t o r ei ni t i al i ze. I f * / / * user want s t o t ake some ot her act i on, shoul d set f l ag = 2 and code t he * / / * desi r ed ac t i ons i n r out i ne app_when_conver ged( ) bel ow. * / i nt * f l ag; i nt * num_t o_r epl ace_i f _conver ged; { } voi d app_when_conver ged( ) / * Thi s r out i ne i s cal l ed i f user ' s r out i ne ( above) app_deci de_i f _conver ged * / / * ever set s i t s f l ag t o 2. The i nt ent i s t hat user can her e st op a r un, or * / / * change any GA par amet er s as des i r ed, f or t he cur r ent subpopul at i on, et c. * / { } voi d app_qui et _r epor t ( ) / * Rout i ne t o be cal l ed when ot her out put i s suppr essed, t o check f or * t r i gger f or speci al user - def i ned out put , or t o pr i nt des i r ed out put even * when r unni ng i n qui et mode. Hel pf ul when doi ng many l ong r uns. * User can do check i ng f or l ast gener at i on of a Manypops r un, f or exampl e, * i n case want t o r eset qui et t o 0 f or a f i nal summar y pr i nt out , et c . * / { / * Bel ow, suppl y any l ogi c and pr i nt i ng t o be used i n qui et mode * oper at i on, when most ot her nor mal out put i s suppr essed. * / / * f or exampl e, pr i nt war ni ng ONE TI ME i f qui et f l ag i s on, so user knows * why doesn' t get any out put . * / i f ( qui et < 3 && popno == 0 && cycl e == 0 && gen == st ar t gen) f pr i nt f ( out f p, " \ n Fl ag qui et > 0, nor mal out put suppr essed. \ n" ) ;

/ * Logi c bel ow st ar t s pr i nt i ng end of next - t o- l ast gener at i on of l ast * cycl e, f or f i nal summar y . ( Wor ks f or GALOPPS/ Onepop ( ncyc l es == 0) * / / * and GALOPPS/ Manypops) * / / * To enabl e t hi s l ogi c, r emove comment del i mi t er s on next l i ne. / * i f ( ( cycl e == ncyc l es - 1 | | ncyc l es == 0) && gen == maxgen - 2) qui et = 0; * / } voi d app_new_gl obal _bes t _r epor t ( ) / * Appl i cat i on- dependent r epor t , cal l ed by gl obal st at s( ) i n st at i st i . c when * / / * GALOPPS/ Manypops i s r un ( not used by GALOPPS/ Onepop r uns) . I t i s cal l ed * / / * af t er t he LAST GENERATI ON of t he cyc l e of EACH subpopul at i on. That means * / / * t hat some t hi ngs MAY have changed ( i nver s i on pat t er n, et c . ) i n some * / / * gener at i ons BETWEEN when t hi s bes t i ndi vi dual was f ound and now, when i t * / / * i s t o be pr i nt ed, so user must be awar e of t hat i n wr i t i ng out put s. Al so * / / * cal l ed i n checkhdr . c t o pr i nt t he same val ues ( l ocal _best f i t . xxx) when * / / * t hat l ocal best t ur ns out al so t o be t he bes t among al l pops, al l * / / * pr ocesses, so i s EQUI VALENT at t hat t i me t o pr i nt i ng al l _pops_best f i t . xxx) * / / * I t shoul d pr i nt out any app- dependent f i el ds user wi l l want t o see. * / / * ( Thi s cal l i s not made at al l f r om Onepop - - s i ngl e- popul at i on r uns) . * / { / * User can pr i nt f r om ut i l i t y f i el ds, cal l out put r out i nes, et c. * / / * t o pr i nt what ever i nf or mat i on i s want ed when a new best i ndi vi dual of * / / * al l popul at i ons on al l pr ocesses ( pr ocessor s) i s f ound. Si nce t he * / / * per f or mance measur es, et c. , have NOT yet been updat ed i n t he . s t t * / / * f i l e, user shoul d now out put l ocal _best f i t . xxxxx , et c . , not yet * / / * al l _pops_best f i t . xxxx, whi ch wi l l be updat ed AFTER t hi s pr i nt i s done. * / / * Use of t hi s cal l back i s OPTI ONAL. * / } voi d app_pr i nt _s t r i ngs( ) / * Appl i cat i on- dependent s t r i ng pr i nt er , cal l ed by r epor t ( ) and i ni t r epor t ( ) * / / * i f f l ag pr i nt st r i ngs == 1, j ust af t er i t has f i ni shed pr i nt i ng t he * / / * chr omosomes i n " st andar d" bi nar y f or mat . ( Usi ng t hi s i s OPTI ONAL. ) * / { } voi d app_conv_r ept ( ) / * Appl i cat i on- dependent r epor t , cal l ed by r ept conv( ) ( i n r epor t . c) * / { } BOOL app_user _does_mi gr at i on( I ndAr r ay, f i l ename, number _t o_mi gr at e, want _best , mi gr at i on_cr owdi ng_amount , Chr omSi ze , mi gr at i on_i ncest _r educt i on, Bes t I nd , mi gr ant _hol der ) / * I n t hi s r out i ne, i f t he user has set t he gl obal var i abl e ( i n app_i ni t ) * / / * cal l _app_user _does_mi gr at i on, and user i s NOT usi ng i nver si on, t hen t he * / / * user HERE i s al l owed t o per f or m mi gr at i on among subpopul at i ons i n any * / / * manner t he user chooses . Chr omSi ze i s t he number of unsi gneds i n t he * / / * chr omosome of t he DONOR popul at i on, and gl obal chr omsi ze i s t he number of * / / * unsi gneds i n t he chr omosome of t he RECEI VI NG popul at i on ( i n I ndAr r ay) . * / / * I ndAr r ay i s t he r ecei vi ng popul at i on ( t he gl obal var i abl e i s ol dpop) , * / / * and t r ansf er occur s at t he s t ar t of a cyc l e) ; t he i ndex of t he best * / / * i ndi v i dual i n ol dpop ( i n i nt er nal f or m, wi t hout one added) i s i n Best I nd. * / / * For gui dance i n per f or mi ng t he r equi r ed oper at i ons, see r out i ne * / / * Get Mi gr ant s( ) i n f i l e checkr d. c , wher e t he sys t em- pr ov i ded mi gr at i on * / / * capabi l i t i es ( mi gr at i on_i ncest _r educ t i on, mi gr at i on cr owdi ng, i nver si on, * / / * et c. , ar e al l done. * / st r uc t i ndi vi dual * I ndAr r ay;

char * f i l ename; i nt number _t o_mi gr at e; BOOL want _best ; i nt mi gr at i on_cr owdi ng_amount , Chr omSi ze, mi gr at i on_i nces t _r educt i on; i nt Best I nd; st r uc t i ndi vi dual * mi gr ant _hol der ; { r et ur n TRUE; } BOOL app_t r ansf or m_chr om_t o_s t d( mapped_saved_chr omosome, chr om_f or _obj f unc) / * I f t he user i s usi ng di f f er ent r epr esent at i ons f or di f f er ent subpops, * / / * but i s NOT us i ng t he syst em- pr ovi ded i nver si on code, her e i s wher e t he * / / * user must suppl y t he code t o t r ansf or m a mi gr ant i ndi v i dual ' s chr omosome * / / * ( i n mapped_saved_chr omosome) f r om i t s " mapped" r epr esent at i on i n t he * / / * subpopul at i on t o t he STANDARD r epr esent at i on, whi ch i s t he one t he user * / / * uses i n def i ni ng t he obj ec t i ve ( or f i t ness) f unct i on, obj f unc. The * / / * " s t andar d r ep" chr omosome must be r et ur ned i n chr om_f or _obj f unc, whi ch i s* / / * a l ocal name f or c r i t t er - >chr om, t he chr omosome passed t o obj f unc( ) . * / / * The user can use any of t he gl obal var i abl es , or l ocal var i abl es def i ned * / / * at t he t op of t hi s f i l e, t o det er mi ne whi ch supopul at i on t hi s i s ( popno) , * / / * and what char ac t er i st i cs THI S r epr esent at i on may have ( l ocal var i abl es , * / / * ut i l i t y f i el ds, et c. ) * / uns i gned * mapped_saved_chr omosome; uns i gned * chr om_f or _obj f unc; { i nt i i ; / * The comment ed- out code bel ow does t he " i dent i t y" t r ansf or mat i on on t he * / / * chr omosome - - i . e. , copi es one t o t he ot her . I f t he user i s doi ng some * / / * t r ansf or mat i on OTHER t han t he syst em- pr ovi ded i nver si on, user * / / * shoul d change t he f i r s t l oop bel ow t o per f or m t he act ual * / / * t r ansf or mat i on pr ocess . Fi nal l y , user must make t he f unct i on r et ur n * / / * TRUE i f successf ul . * / / * NOTE: Next l oop must be modi f i ed i f subpops have di f f er ent chr omosome * / / * r epr esent at i ons - - user must do a t r ansf or mat i on, not a copy . * / / * f or ( i i =0; i i <chr omsi ze; i i ++) { chr om_f or _obj f unc[ i i ] = mapped_saved_chr omosome[ i i ] ; } r et ur n TRUE; * / r et ur n FALSE; } BOOL app_t r ansf or m_mi gr ant ( mi gr ant _hol der , Donor Chr omSi ze, newguy, f i l ename) / * I f t he user i s usi ng di f f er ent r epr esent at i ons f or di f f er ent subpops, * / / * but i s NOT us i ng t he syst em- pr ovi ded i nver si on code, her e i s wher e t he * / / * user must suppl y t he code t o t r ansf or m a mi gr ant i ndi v i dual ( i n a s t r uct * / / * i ndi v i dual poi nt ed t o by mi gr ant _hol der ) f r om i t s donor pop r ep t o i t s * / / * popno ( a gl obal , t he cur r ent " r ecei v i ng" popul at i on) r epr esent at i on, * / / * r et ur ni ng t he t r ansf or med guy i n newguy, whi ch has a chr omosome l engt h of * / / * Reci pi ent Chr omSi ze unsi gneds . I f user i s usi ng i nver si on, not user ' s * / / * " own" t r ansf or mat i on, t hen t hi s r out i ne i s not cal l ed, so may be l ef t i n * / / * i t s " comment ed out " f or m, whi ch i s t he t he I DENTI TY t r ans f or mat i on ( i . e. , * / / * copy t he i ndi vi dual unchanged f r om mi gr ant _hol der t o newguy. * / / * A poi nt er t o t he i ndi vi dual t o mi gr at e, as r ead f r om donor pop, and i t s * / / * Donor Chr omSi ze, ar e pr ovi ded, as i s t he f i l ename of t he r ec i pi ent pop. * / / * Af t er t r ansf or mi ng t he i ndi v i dual , t he user shoul d pl ace i t i nt o new_guy * / / * and r et ur n TRUE i f success f ul . * / st r uc t i ndi vi dual * mi gr ant _hol der , * newguy; i nt Donor Chr omSi ze; char * f i l ename; { i nt i i ; / * The comment ed- out code bel ow does t he " i dent i t y" t r ans f or mat i on. I f user * /

/ * i s doi ng some t r ansf or mat i on OTHER t han t he syst em- pr ovi ded i nver si on, user * / / * shoul d change t he f i r st l oop bel ow t o per f or m t he ac t ual t r ans f or mat i on * / / * pr ocess. Fi nal l y, make t he f unct i on r et ur n TRUE i f success f ul . * / / * NOTE: l i mi t chr omsi ze i n next l oop bel ow must be r evi sed i f subpops have * / / * di f f er ent chr omosome si zes . . . user must do a t r ansf or mat i on, not a copy. * / / * f or ( i i =0; i i <chr omsi ze; i i ++) { newguy- >chr om[ i i ] = mi gr ant _hol der - >chr om[ i i ] ; } newguy- >par ent [ 0] = mi gr ant _hol der - >par ent [ 0] ; newguy- >par ent [ 1] = mi gr ant _hol der - >par ent [ 1] ; newguy- >xsi t e[ 0] = mi gr ant _hol der - >xsi t e[ 0] ; newguy- >xsi t e[ 1] = mi gr ant _hol der - >xsi t e[ 1] ; newguy- >f i t ness = mi gr ant _hol der - >f i t ness; newguy- >i ni t _f i t ness = mi gr ant _hol der - >i ni t _f i t ness ; newguy- >neval = mi gr ant _hol der - >neval ; sys_ut i l _copy_ut i l i t y( newguy- >ut i l i t y, mi gr ant _hol der - >ut i l i t y) ; r et ur n TRUE; * / r et ur n FALSE; } voi d app_gener at e( ) / * Oppor t uni t y t o do any desi r ed ( appl i cat i on- dependent ) oper at i ons at t he * / / * end of each gener at i on of each subpopul at i on. * / { } voi d app_s t at s( pop) / * Appl i cat i on- dependent s t at i s t i cs cal cul at i ons cal l ed by s t at i s t i cs( ) at * / / * t he end of each gener at i on. * / st r uc t i ndi vi dual * pop; { / * See appr oyr d. c f or an exampl e. * / } voi d app_bef or e_i nver si on( ) / * Al l ow user t o per f or m any desi r ed appl i cat i on- speci f i c ac t i ons bef or e * / / * cal l i ng t he i nver s i on r out i ne. Onl y cal l ed when an i nver si on WI LL be * / / * per f or med on t he cur r ent subpopul at i on at t he cur r ent gener at i on. * / { } BOOL app_wr i t e_ckp_hdr ( f p) FI LE * f p; / * Appl i cat i on- dependent cal l back r out i ne user may use f or wr i t i ng * / / * any needed app- speci f i c var i abl es i nt o a checkpoi nt f i l e. * / { / * See appr oyr d. c f or an exampl e. * / r et ur n TRUE; } BOOL app_r ead_ckp_hdr ( f p) FI LE * f p; / * Appl i cat i on- dependent cal l back r out i ne user may use f or r eadi ng back * / / * f r om t he checkpoi nt header f i l e any f i el ds added t o t he checkpoi nt * / / * header by t he user . * /

{ / * See appr oyr d. c f or an exampl e. * / r et ur n TRUE; } i nt Get Ut i l i t ySi ze( ) / * Appl i cat i on- dependent cal l back r out i ne user must use t o t el l pr ogr am * / / * t he s i ze of t he ut i l i t y f i el d t o mal l oc f or each chr omosome. Used * / / * t o comput e t he amount of space needed per i ndi vi dual i n t he checkpoi nt * / / * f i l es . * / { / * See appr oyr d. c f or an exampl e. * / r et ur n 0; } i nt Get MaxUt i l i t ySi ze( ) / * User must her e r et ur n 0 ( ut i l i t y f i el ds not used) or Get Ut i l i t ySi ze * / / * ( i f di f f er ent _r eps ar e NOT used) , or t he si ze ( by t es) of t he LARGEST * / / * ut i l i t y f i el d used by ANY subpopul at i on, i f di f f er ent _r eps i nc l udes use * / / * of ut i l i t y f i el ds of di f f er ent si zes . * / { i nt nbyt es; nby t es = Get Ut i l i t ySi ze( ) ; i f ( nbyt es) { i f ( di f f er ent _r eps) / * Her e, r et ur n si ze of l ar ges t ut i l i t y f i el d used by any r ep. * / / * nbyt es = xxxxxx ; * / r et ur n nby t es; el se r et ur n nby t es; / * same as Get Ut i l i t ySi ze i f ! di f f er ent _r eps * / } r et ur n nbyt es; }

����������� ����������������������������! #"$�&%('�)(*,+.-0/1�2�43(/657%8'$%� 9/1:7/8�&/(�� 9+;57/8�<:7"�57'=/8>(?@"$AB%8�$CDFE1GHDFIJE7KMLON D DFE1GHDFIJLPK(NQD DFE1GHDFIMR�S#NQD T;T9UVD$W�X8TPNQDTZY;[GHU\S�W]SPN^D _8G�X7GFL9W]S9G`NQD abGFabcMLed1NQD L�W$X1K8cfabNQDL9G$g1cML�ShN^D U\SZWiSeYU!S�Y�NQD jMS9Y[;Y.S@d(N^D j1UVG$L;k,YlX,NmDn</8:7"$o9p]qsr(t#ulv;ulwHx8y2z�{<|~}�z��������6����z��6�����]��������|�z�{<������z6���6���;|���q$�B�1v;�8p<�7�� xMv@�8�7�7pV�O��$�8�7 Q¡ ���8�£¢H Q¡ ���8�(¤7 ^¡ ���8�(¥8�8�, m¡�$�8�8¦#§`¨8¦9©( Q¡ ���8�7ª`«e§8¬( Q¡ ���8�(¥M«e­!�7 Q¡�$�8�1©1®F¯b§8°e Q¡ ���8�f±J±M±8±M±0 Q¡ ���8�7©V²4³!¢H Q¡�´h®]«9¡` mµ�$�8�1©1°¶³�¦��,  ¡ ´�§f·¸­V®$·��1¦9§8¥1¹;®F¯��=º`³�®H°.«9§��1®`¹l�s¯b§(©8°³�°@¡F�H»F¼H§6©(®s�F�8�8±M±J±8±M±7 ^¡�½1§�©1°l¦P®i«e¾M¦P°§

¿M�H¹§M�1�1­]À( m¤MÁ@Â�§M¦�Ã8µP |�pVÄH�MvÅ0qFÆPp4qÇ���È�ÊÉ�Ë����6�Ì��|Ì�8|s��|Í���6�Î�¦P­4®H¹Ï®H¡i«# m¡ ­O¦P­4®$¹;®H¡i«# m¡ ¦h½8Ã1­4¹;®$¡]«P Q¡­V·1­]®$¹;®=¡i«P Q¡ «Z­]®$¹@®$¡i«# Q¡

|�pVÄH�MvÅ0qFÆPp4qÇ���Ð�6{&|~��z��6���Ì��|Ñ������Ò~z��Ó|Ç}�Ë��Î�§f½1®��f«±,  ¡Ô´;³9§M¦0½7§M½1Õ��1®$¦�¯�·M«Z�i«e°;§M½��8¦#§M¥0¹Ï®$¯�­Vµ«�Â�§M�8«±, m¡Ö´;³9§M¦7½0§M½1Õe�1®$¦�¯�·M«��]«9°@§M½��8¦#§M¥7¹®$¯�­Vµ·(½1°³Ï±0 Q¡ ´�³�§8¦7½1§8½1Õ;�7®F¦9¯�·M«��]«9°§8½��8¦9§f¥1¹@®F¯b­Vµ·7§M¥M±,  ¡ ´e³Z§f¦7�1®�¦h¯�·M«��]«9°@§M½��8¦#§M¥1¹;®F¯b­Vµ§�±0 Q¡ ´;³9§M¦,�1®F¦9¯�·M«��]«9°§8½��8¦P§M¥1¹@®F¯b­Vµ¡F±7 Q¡ ´;³9§M¦×�1®�¦h¯�·M«��]«9°§8½��8¦#§M¥1¹;®F¯b­Vµ�(¯�±0 Q¡ ´�³�§8¦7�1®F¦9¯�·M«Z�i«e°;§M½��8¦#§M¥1¹;®�¯�­Vµ

|�pVÄH�MvÅ0qFÆPp4qÇ���Ð�6{&|~��z��6���Ì��|Ø�Ø��Ë~z6�������¥7°.«Z¯�·M«Z�i«# m¡�´;³9§M¦0½7§M½1Õ��1®F¦9¯�·M«Z�i«e°;§M½��8¦#§M¥1¹;®�¯�­Vµ¯�·7¹.«9°l¯�·8«h ^¡�´�³�§8¦7½1§M½7Õ;�0®F¦9¯�·M«��]«9°§M½��1¦9§f¥1¹@®F¯b­!µ­]¡F¦9�F¯�¥1¹;®H Q¡�´�³�§8¦7�1®$¦�¯�·M«��]«9°;§M½6�8¦P§M¥0¹®Ù¯b­Oµ­VÂ��F�,  ¡ ´�³�§M¦,�1®F¦9¯�·M«��]«9°;§M½6�8¦P§M¥1¹@®F¯b­Vµ

|�pVÄH�MvÅ0qFÆPp4qÇ���Ð�6{&|~��z��6���Ì��|Ø�O}���|~���M�6�Î�°Ï½MÚ0®F¦#¡$¹�` Q¡°Ï½MÚ0®F¦#¡$°¦P Q¡

�1q���t9u;�0���,q��7�8�(r0vx(Û=Ü8��ÝP�8ysp]u�Þ�ßv¶q`p��¯��H°l½7§M½1®M  ¡­!«@�$¦;«�·8�, m¡

���àÄ`�8�á��r7v�tPuÆ9�7�(�1r(v@x8ÛHâ8q$p$�¯��H°l½(¯���½M¨7  ¡°Ï½1°l«9­!·8¥1�7 Q¡¯��H­\«e®F¦!  ¡

ã�äæåèçêéÞëOìÎí îÞåðïòñ1ìôóBëOåôçÈõ�í

����������� ������������������ ������������������ �"! �#��� $��%��� &����'! �(�)���*&���� +��'! �,���-�������%�.������� �����#�/� 0�! $��/� 12,��$����3�#���4�����5�/� 0�! $��6�7� �'����0�+��8$��-������&/�����)���9��:�;!<��������1�1=1��>�)���,�4�*?/@��*� �*A�����#��;!<��������BC����$����D! ��E'�#�FA���G.���H@����I��@ ���,�F�"J���@ �#�'! 0 �K�K$����5������(!<�D! ��E'�#�K�F�����L@��, �NM��'!<�4��B�����! ����O���,��� ����O$��P��@ �.�Q�I�� �I�.��R����8&����/��$�����1

SUT8VW���XF&�������� �"! �I@����FA�Y��Z�[! ��F$��N&����D����A����\��� Y��.�D! �Q���]?^@��F�����_�����������`@��)�8�4Y�?�@�!<�����J��'�D@��#�����^1a ��.���-��Y ?�@�!;� �*� ��$��bAD@Z���"! ��� ���U����+bc�dfe ���g���P�����h�#���)�Z����Bh! �.���*+�Bicj$�! ������/�k�.���������8��^�mlD���'��� $��8$��nS,dIe��/�����������W$^! �C1��*�)Y�?�@�!L���F+F�Q�/����Go$��P������$�@ G,!L��$���! ��D!<�����4$Z�R&Z���D��� A����p��� Y��5�D! �����q��'!;���sr�� ��! ���Zra�8�'!L���srt�Q@ ���r19uC��$��F�v������$^@����I�.�����������9$��&����'��� A����\��� Y��#�D! �,���]+K���(�4��G.�Z� � $��K���Z�F���������(! �/�4�������N��@��_$�����M/�Q! ���C1�w^�F$����F!L��&��N����$���x������$/@��, �y+z$����,����� e�� $�� ���Z���{��������N����� $��������|�{�{$��Z� M��Q! ���{+}���~0���G,! ��$������F��� �����Z�)�������^1

�m�L!<��e��b$���������$�@ ����� ��0��nc>e��������P�������*������$�@�G�!;�)S,d�d�&����'��� A����p�'!;� �*� ��! �����*�e��/�����P�������>������$�@�G,!<��S5dZdv&����'����A����p�'!;� �b��@��Q�k1��Z� $��s&��/�D����A��v�'!L���>� ��! ���s����@����:Sd*��+��������! �,�6�7$��*������ ��:����$��Z� M��! ���/Bi����?^@��Z������?�@��n�j&����'��� A��b�D!L�����Q@ ��*����@����>�"d>��+��������! �,�6�"1 �-$��/��M��Q! ���R���Z���N���� ����! $���$��I��Y�J�!<�)�N$��bS,� d�d�dI��+��O������! �����1���,�����'�D!<��@�! �, �s���s�L@������8A'!L���Z��$��8�Z�F�������#�v���^�W&����(�g��A��8�'!;���I� �Z! ���F+I�^�N�K�I���^�^&����'����A���D!<�����Q@��9�����m��B�� d�1o�{$������������Z�)��������$��-0 �Z��$Z���j����� ���� �D��� �����s$��:A��/�(����� !;����� ����������G.���N$��s��� �#�/��0����U����$��s��������$�@ �������/�.�Q� 0�����$��s&����(�g��A������'!L���n�Q@��9��Bi���^��+������������F������$����g���`�.���)�������I�������8��d�dN&����D��� A����]�D!<���v� �Z! ���8���/�W�#���)�Z����1

V^���QX:$���0��:���#���Z���/� ����Z�)?�@ �Z��+:�%��� �����:$���������$^@�� ���)��!;�s��$���?^@�� $��%��������4��J�!L�F! G�Z���v�L@��"���8���������,$��N���N�������#�C1

�����'�a�Q�<�W�.�k�� '¡.¢Q£;¤¥�k�.���'¦.§� D�¥�Q�.¨ number of r uns = 1 qui et = 1 ckpt f r eq = 10 checkpt f i l epr ef i x = r es t ar t f i l epr ef i x = per mpr obl em = n al pha_si ze = 1 numf i el ds = 2 maxgen = 300 popsi ze = 50 pr i nt st r i ngs = y pcr oss = 0. 75 pmut at i on = . 1 pi nver si on = 0. aut ocont r ol _sel ect i on = n bet a = scal i ng_wi ndow = - 1 si gma_t r unc = 0. scal emul t = 1. 3

cr owdi ng_f act or = 0 conv_si gma_coef f = . 5 convi nt er val = 5 r andomseed = . 5

Função Obj et i vo

Voi d obj f unc( cr i t t er ) st r uct i ndi v i dual * cr i t t er ; { i nt Gene[ 2] , L, S; f l oat Fi t , Pen; neval ++; l ocal _cycl e_neval ++; cr i t t er - >neval = neval ; cr i t t er - >i ni t _f i t ness = 0; chr omt oi nt ar r ay( Gene, cr i t t er - >chr om) ; L=Gene[ 0] ; S=Gene[ 1] ; Fi t = ( 5* L+4. 5* S) / 7375; / * Espaço di sponi vel e Capaci dade de pr oducao * / Penal i dade = ( f l oat ) maxx( 0, 10* L+20* S- 15000) / 8000 + ( f l oat ) maxx( 0, 0. 06* L+0. 05* S- 60) / 25. 5; cr i t t er - >i ni t _f i t ness = Fi t - Penal i dade/ 2; }

Tamanho dos campos

voi d app_set _f i el d_si zes( ) { i nt i ; f i el d_si zes[ 0] = 800; f i el d_si zes[ 1] = 750; } �RE��H����0�! ��I$��8�,����&��I�������'��X��\�,�/�N�������D!L�)�������6�\$^! ��������!;����B^�,�����'�������I�D�����#��!;����B��,� $��@��_�9���_���`����&^@�!<�������]���� ����! $���$����h0��^�;@��4+��D�'! �,���]�F$��I�����#�kq

���������� ��������� �� ��������� ������������������� ������! "���#

����"�$� ������% ��!�&���'$ ��(� ��)�*�,+�#

- � ��� ������.��� - # /10 2�3�0�0�4���� ��5�! �6�7# /12 3�8�0�09 �5�������� �:� 9 # 3 ;+�0�0

2,�����I�.�Z�a����� �D! $��v�v� ?�@�!;�<�L���[! ���Z��0�<���BC�8$^! �.�D�'!L��@�! � �v$��8�,����&��s�����`��^�N�������D!L�)�������6�$��n�"0�! �*$���0 �b�.�Z�a��?^@�!<�;!<������$��*�����K����F�������'!;���/�����/��$Z�s�����^�4������!<���s?^@��s�*� ���#�b$�������&��:�Q�/� ���9��$��-���y�9��$��-��^�K�������'!L�)������� �.�Ql[�������/���/����! �^�����W�:�Q@ ���,����� ��! $���$��-$�������.�C1 QJ�!;�������x�:�����&����P� �5�������z���N���������$����j���%����M�J�!L�)�-0�<��6B\���6�5�D��� $����j�������Z� ��� ����#� &^@�!;��1��Z� $��{��Z��&�� ���Z� � �����{� 0��^�;@Z�)�������� �,�����D� �#�'! �� �}$�Y>=}���F�������#� ?�@���D����� �,��������� @�� �<@����������Q�����"� AD! �Q�k1)?]@ ��� ?/@��Z�b���������^���9���$����#�����-�Q����&����:����$��Z� �.���� ���! �����\���/���N�'�������Q���^������1

���Z��&�� 2"���#���'���/��� V����<@�����t�����.���/��� �

@ �����������.�������Z� ��$���

�HS S� �6��d �kSd�^� S,� c�� d ����d��� ��� �"��d ��� d��� S,� �� �d ���Z�

���/�Ql����D! 0��s+�$�� �����'�N!;� ���H�s?�@��������s$��v���$����Q����&���� �iSBk�^� BH����BW�Z���U$��"0����5���k� �,��! ���� �#�-A����4� �Q�/! ����F�-����)�-$�! �#�'�D!L��@Z!;�o���'���p�9�Z��&���'���K���m� ����&��-$��6�P��^�N�������D!L�)�������6�P$���4��$��:?�@��-���<@�� ���:�����������#�Ql[���)�"J�!L�F! G��$��:�-��!L��$��:�#�lD�m�����Q���/! ��� $��-�:�����.�D�'! � �-$�����g���������"! �����/�;! $�� $��N$����]��^�N�������D!L�)�������6��1� ���.�,@��F! $��N?^@��Wq•

�Z� $�� �9�Z��&�� ����$�� �#��� $�! 0�! $�! $�� ��� ?^@���������� ���Z������� �DA'���������6�����oS��&��A��/���� ����.�.YZ�[! �C1

• �Z� $��x�����&�� � ��$��x�.����$/! 0�! $�! $��z��� $���! � ��@ �4��! � ����K� �����'!L�)�Z������� �.�{A��/���� ����.�.YZ�[! �C1

• ?]@���!;��?�@��Z�^�9�Z�g&Z���\����$Z�F�.���^�,�/� ���� $����]����?�@���! �.?�@����W����N�������'!;������������1

voi d obj f unc( cr i t t er ) st r uct i ndi v i dual * cr i t t er ; { i nt Gene[ 12] ; f l oat Fi t , Pen; f l oat C1D, C1C, C1T, C2D, C2C, C2T, C3D, C3C, C3T, C4D, C4C, C4T; f l oat Vol ume_D, Vol ume_C, Vol ume_T, Peso_C1, Peso_C2, Peso_C3, Peso_C4, Peso_D, Peso_C, Peso_T, Per c_D, Per c_C, Per c_T, Lucr o; f l oat p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16; neval ++; l ocal _cyc l e_neval ++; cr i t t er - >neval = neval ; cr i t t er - >i ni t _f i t ness = 0; chr omt oi nt ar r ay( Gene, cr i t t er - >chr om) ; C1D=Gene[ 0] * 0. 001; / * Conver t e par a um val or com pr eci sao 0. 001 * / C1C=Gene[ 1] * 0. 001; C1T=Gene[ 2] * 0. 001; C2D=Gene[ 3] * 0. 001; C2C=Gene[ 4] * 0. 001; C2T=Gene[ 5] * 0. 001; C3D=Gene[ 6] * 0. 001; C3C=Gene[ 7] * 0. 001; C3T=Gene[ 8] * 0. 001; C4D=Gene[ 9] * 0. 001; C4C=Gene[ 10] * 0. 001; C4T=Gene[ 11] * 0. 001;

Vol ume_D = C1D* 480 + C2D* 650 + C3D* 580 + C4D* 390; Vol ume_C = C1C* 480 + C2C* 650 + C3C* 580 + C4C* 390; Vol ume_T = C1T* 480 + C2T* 650 + C3T* 580 + C4T* 390; Peso_C1 = C1D + C1C + C1T; Peso_C2 = C2D + C2C + C2T; Peso_C3 = C3D + C3C + C3T; Peso_C4 = C4D + C4C + C4T; Peso_D = C1D + C2D + C3D + C4D; Peso_C = C1C + C2C + C3C + C4C; Peso_T = C1T + C2T + C3T + C4T; Lucr o =310* ( C1D+C1C+C1T) + 380* ( C2D+C2C+C2T) + 350* ( C3D+C3C+C3T) + 285* ( C4D+C4C+C4T) ; Per c_D = Peso_D/ 10; Per c_C = Peso_C/ 16; Per c_T = Peso_T/ 8; Fi t = ( 310 * ( C1D+C1C+C1T) + 380 * ( C2D+C2C+C2T) + 350 * ( C3D+C3C+C3T) + 285 * ( C4D+C4C+C4T) ) / 45050; / * Capaci dade de Peso * / p1= ( f l oat ) maxx( 0, ( Peso_D- 10) ) / 30; p2= ( f l oat ) maxx( 0, ( Peso_C- 16) ) / 48; p3= ( f l oat ) maxx( 0, ( Peso_T- 8) ) / 24; / * Car ga a ser t r anspor t ada * / p4= ( f l oat ) maxx( 0, ( Peso_C1- 18) ) / 16; p5= ( f l oat ) maxx( 0, ( Peso_C2- 15) ) / 19; p6= ( f l oat ) maxx( 0, ( Peso_C3- 23) ) / 11; p7= ( f l oat ) maxx( 0, ( Peso_C4- 12) ) / 22; / * Capaci dade de Vol ume * / p8= ( f l oat ) maxx( 0, ( Vol ume_D- 6800) ) / 14200; p9= ( f l oat ) maxx( 0, ( Vol ume_C- 8700) ) / 24900; p10= ( f l oat ) maxx( 0, ( Vol ume_T- 5300) ) / 11500; / * Car gas Pr opor ci onai s * / p11= ( f l oat ) f abs( Per c_D- Per c_C) ; p12= ( f l oat ) f abs( Per c_T- Per c_C) ; p13= ( f l oat ) f abs( Per c_D- Per c_T) ; p14= ( f l oat ) maxx( 0, p11- ( 1- gen/ maxgen) ) ; p15= ( f l oat ) maxx( 0, p12- ( 1- gen/ maxgen) ) ; p16= ( f l oat ) maxx( 0, p13- ( 1- gen/ maxgen) ) ; i f ( p11>1) p14=1; i f ( p12>1) p15=1; i f ( p13>1) p16=1; Pen = p1+p2+p3+p4+p5+p6+p7+p8+p9+p10+p14+p15+p16;

cr i t t er - >i ni t _f i t ness = Fi t - 0. 3 * Pen; } voi d app_set _f i el d_si zes( ) { i nt i ; f i el d_si zes[ 0] = 10001; f i el d_si zes[ 1] = 16001; f i el d_si zes[ 2] = 8001; f i el d_si zes[ 3] = 10001; f i el d_si zes[ 4] = 16001; f i el d_si zes[ 5] = 8001; f i el d_si zes[ 6] = 10001; f i el d_si zes[ 7] = 16001; f i el d_si zes[ 8] = 8001; f i el d_si zes[ 9] = 10001; f i el d_si zes[ 10] =16001; f i el d_si zes[ 11] = 8001; } Di r et or i o: / publ i c/ sof t / l i nux/ Gal l ops Copi ar uma past a model o ex: wor k Edi t ar o Makef i l e ( cami nhos) Make Onepop Se f or necessar i o r eal i zar mudanças de oper ador es de sel eçao e cr uzament o em Makef i l e Onepop –i appxxxxx. i n