Tech ventures and roadmapping - Simulation model
Model was written in NetLogo 6.1.1
•
Viewed 58 times
•
Downloaded 3 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
globals [ Periodo Tempo_medio_decorrido_para_preenchimento_dos_Roadmaps Quantidade_media_de_empresas_colaboradoras_em_cada_Roadmap Valor_medio_Roadmap Valor_total_Roadmaps Contador ; Auxiliar Contador2 ; Auxiliar Auxiliar ; Auxiliar Who_maior ; Auxiliar Auxiliar2 ; Auxiliar Auxiliar3 ; Auxiliar Auxiliar4 ; Auxiliar Auxiliar5 ; Auxiliar Auxiliar6 ; Auxiliar Auxiliar7 ; Auxiliar Auxiliar8 ; Auxiliar Auxiliar9 Number_of_Partners_aux Aux-tec-A ; Auxiliar Aux-tec-B ; Auxiliar Aux-tec-C ; Auxiliar Aux-tec-D ; Auxiliar Aux-tec-E ; Auxiliar Aux-periodo ; Auxiliar Aux_Valor_Inic_Paga_Tec_A ; Deste auxiliar para baixo é para auxiliar nos valores pagos e recebidos pelas Iniciadoras Aux_Valor_Inic_Paga_Tec_B Aux_Valor_Inic_Paga_Tec_C Aux_Valor_Inic_Paga_Tec_D Aux_Valor_Inic_Paga_Tec_E Aux_Valor_Inic_Paga_Tec_A_Inden Aux_Valor_Inic_Paga_Tec_B_Inden Aux_Valor_Inic_Paga_Tec_C_Inden Aux_Valor_Inic_Paga_Tec_D_Inden Aux_Valor_Inic_Paga_Tec_E_Inden Aux_Valor_Inic_Recebe_Tec_A_Inden Aux_Valor_Inic_Recebe_Tec_B_Inden Aux_Valor_Inic_Recebe_Tec_C_Inden Aux_Valor_Inic_Recebe_Tec_D_Inden Aux_Valor_Inic_Recebe_Tec_E_Inden Aux_Transfer_Tec_A Aux_Transfer_Tec_B Aux_Transfer_Tec_C Aux_Transfer_Tec_D Aux_Transfer_Tec_E Aux_Colab_Recebe_Tec Aux_Colab_Recebe_Inden Aux_Colab_Paga_Inden Aux_Transfer_Tec Qtde_Colaboradoras ; Daqui para baixo são os indicadores gerais Qtde_Iniciadoras Qtde_Roadmaps Qtde_Roadmaps_Abertos Qtde_Roadmaps_Interromp_Fase_0 Qtde_Roadmaps_Interromp_Fase_1 Qtde_Roadmaps_Interromp_Fase_2 Qtde_Roadmaps_Interromp_Fase_3 Qtde_Roadmaps_Interromp_Fase_4 Qtde_Roadmaps_Finalizados Propr_intelec_trocada Pago_por_prop_intelec Colab_pagam_inde Inic_pagam_inde x y Platform_environment Prob_Phase_4_to_Finalized_Mean Platform_influence ] breed [iniciadoras iniciadora] breed [colaboradoras colaboradora] breed [Roadmaps Roadmap] iniciadoras-own [ Entrada_no_modelo Saida_do_modelo Disposicao_compartilhar Information_reliability_aux Autonomy_-Less_intermediaries-_aux Traceability_aux IP_security_aux Accuracy_and_precision_aux Speed_of_processes_and_operations_aux Boas_experiencias_com_a_plataforma_aux Valor_pago_propr_intelec Propriedade_intelectual_recebida Valor_recebido_indenizacao Valor_pago_indenizacao ] colaboradoras-own [ Entrada_no_modelo Saida_do_modelo Disposicao_compartilhar Information_reliability_aux Autonomy_-Less_intermediaries-_aux Traceability_aux IP_security_aux Accuracy_and_precision_aux Speed_of_processes_and_operations_aux Boas_experiencias_com_a_plataforma_aux Tipo_colaboracao Valor_recebido_propr_intelec Propriedade_intelectual_enviada Valor_recebido_indenizacao Valor_pago_indenizacao ] Roadmaps-own [ Roadmap_type Iniciado_por Iniciado_em Tempo_maximo_aberto Valor_colaboracao_A Valor_colaboracao_B Valor_colaboracao_C Valor_colaboracao_D Valor_colaboracao_E Fase Periodos_na_Fase Encerramento Finalizado Valor_Colab_Recebe_Tec_A Valor_Colab_Recebe_Tec_B Valor_Colab_Recebe_Tec_C Valor_Colab_Recebe_Tec_D Valor_Colab_Recebe_Tec_E Valor_Colab_Recebe_Tec_A_Inden Valor_Colab_Recebe_Tec_B_Inden Valor_Colab_Recebe_Tec_C_Inden Valor_Colab_Recebe_Tec_D_Inden Valor_Colab_Recebe_Tec_E_Inden Valor_Colab_Paga_Tec_A_Inden Valor_Colab_Paga_Tec_B_Inden Valor_Colab_Paga_Tec_C_Inden Valor_Colab_Paga_Tec_D_Inden Valor_Colab_Paga_Tec_E_Inden Valor_Inic_Paga_Tec_A Valor_Inic_Paga_Tec_B Valor_Inic_Paga_Tec_C Valor_Inic_Paga_Tec_D Valor_Inic_Paga_Tec_E Valor_Inic_Paga_Tec_A_Inden Valor_Inic_Paga_Tec_B_Inden Valor_Inic_Paga_Tec_C_Inden Valor_Inic_Paga_Tec_D_Inden Valor_Inic_Paga_Tec_E_Inden Valor_Inic_Recebe_Tec_A_Inden Valor_Inic_Recebe_Tec_B_Inden Valor_Inic_Recebe_Tec_C_Inden Valor_Inic_Recebe_Tec_D_Inden Valor_Inic_Recebe_Tec_E_Inden Transfer_Tec_A Transfer_Tec_B Transfer_Tec_C Transfer_Tec_D Transfer_Tec_E End_Phase4-Probability Phase3_to_Phase4-Probability Phase2_to_Phase3-Probability Phase1_to_Phase2-Probability ] links-own [ colaboracao Valor Kind Situacao ] to setup ca set periodo 0 set contador 0 while [contador < Number_of_creators] [ create-iniciadoras 1 [ if who > who_maior [set who_maior who] set Entrada_no_modelo periodo set Saida_do_modelo "N/A" set Information_reliability_aux Information_reliability set Autonomy_-Less_intermediaries-_aux Autonomy_-Less_intermediaries- set Traceability_aux Traceability set IP_security_aux IP_security set Accuracy_and_precision_aux Accuracy_and_precision set Speed_of_processes_and_operations_aux Speed_of_processes_and_operations set Boas_experiencias_com_a_plataforma_aux 4 ; Recebe essa valor por ser uma média, pois começam sem experiências set Disposicao_compartilhar ((Information_reliability_aux + Autonomy_-Less_intermediaries-_aux + Traceability_aux + IP_security_aux + ; Puldei de linha apenas para deixar alinhado Accuracy_and_precision_aux + Speed_of_processes_and_operations_aux + Boas_experiencias_com_a_plataforma_aux) / 0.49) ; 0.49 é usado para trazer para base de 100 set shape "computer" set size 3.5 set color 5 set label who setxy (-15 + 3.3 * contador) 18 ] set contador contador + 1 ] set contador 0 while [contador < Number_of_partners] [ create-colaboradoras 1 [ if who > who_maior [set who_maior who] set Entrada_no_modelo periodo set Saida_do_modelo "N/A" set Tipo_colaboracao (random 5) + 1 if Tipo_colaboracao = 1 [set Tipo_colaboracao "A"] if Tipo_colaboracao = 2 [set Tipo_colaboracao "B"] if Tipo_colaboracao = 3 [set Tipo_colaboracao "C"] if Tipo_colaboracao = 4 [set Tipo_colaboracao "D"] if Tipo_colaboracao = 5 [set Tipo_colaboracao "E"] set Information_reliability_aux Information_reliability set Autonomy_-Less_intermediaries-_aux Autonomy_-Less_intermediaries- set Traceability_aux Traceability set IP_security_aux IP_security set Accuracy_and_precision_aux Accuracy_and_precision set Speed_of_processes_and_operations_aux Speed_of_processes_and_operations set Boas_experiencias_com_a_plataforma_aux 4 ; Recebe essa valor por ser uma média, pois começam sem experiências set Disposicao_compartilhar ((Information_reliability_aux + Autonomy_-Less_intermediaries-_aux + Traceability_aux + IP_security_aux + ; Puldei de linha apenas para deixar alinhado Accuracy_and_precision_aux + Speed_of_processes_and_operations_aux + Boas_experiencias_com_a_plataforma_aux) / 0.49) ; 0.49 é usado para trazer para base de 100 set shape "house" set size 2 set color 5 set label who if Number_of_partners <= 10 [set Number_of_Partners_aux -22.5] if Number_of_partners >= 11 [set Number_of_Partners_aux -20] if Number_of_partners >= 21 [set Number_of_Partners_aux -17.5] if Number_of_partners >= 31 [set Number_of_Partners_aux -15] if Number_of_partners >= 41 [set Number_of_Partners_aux -12.5] if Number_of_partners >= 51 [set Number_of_Partners_aux -10] if Number_of_partners >= 61 [set Number_of_Partners_aux -7.5] if Number_of_partners >= 71 [set Number_of_Partners_aux -5] if Number_of_partners >= 81 [set Number_of_Partners_aux -2.5] if Number_of_partners >= 91 [set Number_of_Partners_aux 0] if contador >= 0 and contador <= 9 [ setxy (-15 + 3.3 * contador) (5 + Number_of_Partners_aux) ] if contador >= 10 and contador <= 19 [ setxy (-15 + 3.3 * (contador - 10)) (2.5 + Number_of_Partners_aux) ] if contador >= 20 and contador <= 29 [ setxy (-15 + 3.3 * (contador - 20)) (0 + Number_of_Partners_aux) ] if contador >= 30 and contador <= 39 [ setxy (-15 + 3.3 * (contador - 30)) (-2.5 + Number_of_Partners_aux) ] if contador >= 40 and contador <= 49 [ setxy (-15 + 3.3 * (contador - 40)) (-5 + Number_of_Partners_aux) ] if contador >= 50 and contador <= 59 [ setxy (-15 + 3.3 * (contador - 50)) (-7.5 + Number_of_Partners_aux) ] if contador >= 60 and contador <= 69 [ setxy (-15 + 3.3 * (contador - 60)) (-10 + Number_of_Partners_aux) ] if contador >= 70 and contador <= 79 [ setxy (-15 + 3.3 * (contador - 70)) (-12.5 + Number_of_Partners_aux) ] if contador >= 80 and contador <= 89 [ setxy (-15 + 3.3 * (contador - 80)) (-15 + Number_of_Partners_aux) ] if contador >= 90 and contador <= 99 [ setxy (-15 + 3.3 * (contador - 90)) (-17.5 + Number_of_Partners_aux) ] ] set contador contador + 1 ] ;;;; Já no Setup é necessário fazer o cálculo dos indicadores e atualizar os gráficos Atualizar_empresas Calculo_indicadores update-plots if export = true [ ; exporta o mundo netlogo e os textos export-interface (word "Interface Period " periodo ".png") export-output (word "Output Period " periodo ".csv") ] end to Iniciar_um_Roadmap_colaborativo set contador 0 while [contador <= who_maior] [ ask turtle contador [ set auxiliar2 0 if breed = iniciadoras [ set auxiliar2 1 set auxiliar disposicao_compartilhar ] ] set contador2 0 ; Zera o contador, o auxiliar que ajuda a selecionar o Roadmap da vez set auxiliar8 1 ; Um pouco mais pra frente é guardado no auxiliar8 se o link existente com outros Roadmaps ainda está na situação de "Proposta". Agora é guardado o 1 no auxiliar8, pois existe a possibilidade de a iniciadora não ter nenhum link. while [contador2 <= who_maior] [ ; Este while tem objetivo de verificar se a iniciadora da vez tem algum link que ainda está na situação de "Proposta". Caso tenha, essa iniciadora não poderá criar outro link de proposta para outro Roadmap if link contador contador2 != nobody [ ; If para verificar se o link contador contador2 existe. Caso chame um lilnk inexistente é retornado um erro ask link contador contador2 [ ; Chama o link contador contador2 if (situacao = "Proposta" or situacao = "Maturação") [set auxiliar8 0] ; Se a iniciadora tiver link de "Proposta" para outro Roadmap, então auxiliar8 recebe valor 0. Caso não tenha nenhum, então continua com valor 1 recebido antes de entra no if ] ; Fecha o ask link ] ; Fecha o if set contador2 contador2 + 1 ; Soma 1 no contador para voltar ao while ] ; Fecha o while de verificação de se a iniciadora da vez tem link na situaçã de "Porposta" if (auxiliar >= (random 100) + 1) and (auxiliar2 = 1) and (auxiliar8 = 1)[ create-Roadmaps 1 [ if who > who_maior [set who_maior who] if Roadmaps_Type = "Random" [set Roadmap_Type one-of ["Shaper" "Adapter" "Integrator" "Explorer"]] if Roadmaps_Type != "Random" [set Roadmap_Type Roadmaps_Type] set shape "book" set size 2 set color 5 set ycor (random (8 - Number_of_Partners_aux) + 7.5 + Number_of_Partners_aux) set xcor ((random 30) - 15) set Iniciado_por contador set Iniciado_em periodo set Tempo_maximo_aberto "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Valor_colaboracao_A "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Valor_colaboracao_B "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Valor_colaboracao_C "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Valor_colaboracao_D "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Valor_colaboracao_E "N/A" ; Pensar nisso ainda, deixei como N/A, mas quando crescer a complexidade do modelo, isso deve ser considerado set Encerramento "Open" set Finalizado "Open" set label who ; Este bloco abaixo guarda as probabilidade de passagem de fases do Roadmap, que é calculado com base em uma probabilidade mínima, que é fornecida pelo usuário e mais um valor que depende do tipo de Roadmap. if Roadmap_Type = "Shaper" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 37.5 set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 12.5 ] if Roadmap_Type = "Adapter" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 37.5 set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 12.5 ] if Roadmap_Type = "Integrator" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 ] if Roadmap_Type = "Explorer" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 0 set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 0 ] create-link-from turtle contador [ set colaboracao "N/A" set valor "N/A" set kind "Iniciadora" set situacao "Proposta" ] ] ] set contador contador + 1 ] end to Iniciar_Colaboracao_no_Roadmap if any? Roadmaps with [iniciado_em = periodo] [ ; Só entra neste subcomando se existir pelo menos um Roadmap criado neste mesmo período set contador2 0 ; Zera o contador2, o auxiliar que ajuda a selecionar a colaboradora da vez while [contador2 <= who_maior] [ ; Chama todos os agentes em busca de agentes colaboradoras dispostas a compartilhar set auxiliar2 0 ; Zera o auxiliar2, que guarda a informação se a colaboradora da vez é uma colaboradora ou não set auxiliar3 0 ; Zera o auxiliar3, que guarda a informação do "Disposicao_compartilhar" da colaboradora da vez. Se o agente da vez não for uma colaboradora, então assume valor 0 ask turtle contador2 [ ; Chama o agente da vez if breed = colaboradoras [ ; Se o agente for uma colaboradora... set auxiliar2 1 ; ...então é dado o valor 1 para o auxiliar 2 set auxiliar3 disposicao_compartilhar ; Guarda o valor de Disposição em compartilhar no auxiliar3 ] ; Fecha o if breed = colaboradora set contador 0 ; Zera o contador, o auxiliar que ajuda a selecionar o Roadmap da vez set auxiliar8 1 ; Um pouco mais pra frente é guardado no auxiliar8 se o link existente com outros Roadmaps ainda está na situação de "Proposta". Agora é guardado o 1 no auxiliar8, pois existe a possibilidade de a colaboradora não ter nenhum link. while [contador <= who_maior] [ ; Este while tem objetivo de verificar se a colaboradora da vez tem algum link que ainda está na situação de "Proposta". Caso tenha, essa colaboradora não poderá criar outro link de proposta para outro Roadmap if link contador2 contador != nobody [ ; If para verificar se o link contador2 contador existe. Caso chame um link inexistente é retornado um erro ask link contador2 contador [ ; Chama o link contador2 contador if (situacao = "Proposta" or situacao = "Maturação") [set auxiliar8 0] ; Se a colaboradora tiver link de "Proposta" ou "Maturação" para outro Roadmap, então auxiliar8 recebe valor 0. Caso não tenha nenhum, então continua com valor 1 recebido antes de entra no if ] ; Fecha o ask link ] ; Fecha o if set contador contador + 1 ; Soma 1 no contador para voltar ao while ] ; Fecha o while de verificação de se a colaboradora da vez tem link na situaçã de "Porposta" ] ; Fecha o ask que chama a colaboradora da vez if (auxiliar3 >= (random 100) + 1) and (auxiliar2 = 1) and (auxiliar8 = 1) [ ; Entra no if se a Dsiposição em compartilhar for maior que o número sorteado, se for uma colaboradora, e se não existirem links com a situação igual a "Proposta" ou "Maturação". ask turtle contador2 [ ; Chama a colaboradora da vez set auxiliar4 tipo_colaboracao ; Guarda o tipo de colaboracao no auxiliar4 ] ; Fecha o ask colaboradora da vez ask one-of Roadmaps with [iniciado_em = periodo] [ set auxiliar7 who create-link-from turtle contador2 [ set colaboracao auxiliar4 set valor (random-normal 100 10) set kind "Colaboradora" set situacao "Proposta" ] ] ] set contador2 contador2 + 1 ] ] end to Definir_Roadmap_Fase_1 set contador 0 ; Zera o auxiliar que define o agente da posição de Roadmap set contador2 0 ; Zera o auxiliar que define o agente da posição de colaboradora while [contador <= who_maior] [ ; Inicia o primeiro while para fazer a varredura nos Roadmaps set Aux-tec-A 10000 ; Define o auxiliar Aux-tec-A com um valor bem alto, pois a ideia é selecionar pelo menor valor set Aux-tec-B 10000 ; Define o auxiliar Aux-tec-B com um valor bem alto, pois a ideia é selecionar pelo menor valor set Aux-tec-C 10000 ; Define o auxiliar Aux-tec-C com um valor bem alto, pois a ideia é selecionar pelo menor valor set Aux-tec-D 10000 ; Define o auxiliar Aux-tec-D com um valor bem alto, pois a ideia é selecionar pelo menor valor set Aux-tec-E 10000 ; Define o auxiliar Aux-tec-E com um valor bem alto, pois a ideia é selecionar pelo menor valor set auxiliar 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador é um Roadmap ou não if turtle contador != nobody [ ; Pergunta se a turtle da vez existe ou não. Caso não exista, pula o if, pois se chamar um agente que não existe é retornado um erro ask turtle contador [ifelse (breed = Roadmaps) [set auxiliar 1] [set auxiliar 0]] ; Entrou no if. Aí chama a turtle da vez. Se for um Roadmap, então auxiliar guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 ] ; Fecha o if set contador2 0 ; Zera o auxiliar que define o agente da posição de colaboradora. Esse comando é importante aqui, pois ele deve ser sempre zerado antes de entrar no while while [contador2 <= who_maior] [ ; Inicia o segundo while para fazer a varredura das colaboradoras set auxiliar2 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador2 é um colaborador ou não if link contador2 contador != nobody [ ; Pergunta se o link de contador2 para contador existe ou não. Caso não exista, pula o if, pois se chamar um link que não existe é retornado um erro ask turtle contador2 [ifelse (breed = colaboradoras) [set auxiliar2 1] [set auxiliar2 0]] ; Entrou no if. Aí chama a turtle da vez. Se for uma colaboradora, então auxiliar2 guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 ] ; Fecha o if if (auxiliar = 1) and (auxiliar2 = 1) [ ; Se a turtle contador fou um Roadmap (auxiliar = 1) e se o link de turtle contador2 para turtle contador existir (auxiliar2 = 1) então entra no if ask link contador2 contador [ ; Chama o link de contador2 para contador. Ou seja, da colaboradora da vez para o Roadmap da vez if colaboracao = "A" [ ; Se o link for de colaboracao A (isso foi definido na criação do link com base na colaboracao da colaboradora da qual sai o link), então entra no if if Aux-tec-A > valor [set Aux-tec-A valor] ; Se o valor do link for menor do que o Aux-tec-A (um auxiliar), então o Aux-tec-A assume o valor desse link. Na primeira vez que isso ocorre para cada Roadmap o Aux-tec-A deve ter o valor de 10000 ] ; Fecha o if if colaboracao = "B" [ ; Se o link for de colaboracao B (isso foi definido na criação do link com base na colaboracao da colaboradora da qual sai o link), então entra no if if Aux-tec-B > valor [set Aux-tec-B valor] ; Se o valor do link for menor do que o Aux-tec-B (um auxiliar), então o Aux-tec-B assume o valor desse link. Na primeira vez que isso ocorre para cada Roadmap o Aux-tec-B deve ter o valor de 10000 ] ; Fecha o if if colaboracao = "C" [ ; Se o link for de colaboracao C (isso foi definido na criação do link com base na colaboracao da colaboradora da qual sai o link), então entra no if if Aux-tec-C > valor [set Aux-tec-C valor] ; Se o valor do link for menor do que o Aux-tec-C (um auxiliar), então o Aux-tec-C assume o valor desse link. Na primeira vez que isso ocorre para cada Roadmap o Aux-tec-C deve ter o valor de 10000 ] ; Fecha o if if colaboracao = "D" [ ; Se o link for de colaboracao D (isso foi definido na criação do link com base na colaboracao da colaboradora da qual sai o link), então entra no if if Aux-tec-D > valor [set Aux-tec-D valor] ; Se o valor do link for menor do que o Aux-tec-D (um auxiliar), então o Aux-tec-D assume o valor desse link. Na primeira vez que isso ocorre para cada Roadmap o Aux-tec-D deve ter o valor de 10000 ] ; Fecha o if if colaboracao = "E" [ ; Se o link for de colaboracao E (isso foi definido na criação do link com base na colaboracao da colaboradora da qual sai o link), então entra no if if Aux-tec-E > valor [set Aux-tec-E valor] ; Se o valor do link for menor do que o Aux-tec-E (um auxiliar), então o Aux-tec-E assume o valor desse link. Na primeira vez que isso ocorre para cada Roadmap o Aux-tec-E deve ter o valor de 10000 ] ; Fecha o if ] ; Fecha o ask link contador2 contador ask turtle contador [ ; Chama o Roadmap da vez set Valor_colaboracao_A Aux-tec-A ; O valor da colaboracao A será o Aux-tec-A, que é o menor valor dentre os liks com colaboracao formados. Ou caso nenhum link com colaboracao A tenha sido formado, então deve receber o valor de 10000 (uma valor muito alto) set Valor_colaboracao_B Aux-tec-B ; O valor da colaboracao A será o Aux-tec-B, que é o menor valor dentre os liks com colaboracao formados. Ou caso nenhum link com colaboracao A tenha sido formado, então deve receber o valor de 10000 (uma valor muito alto) set Valor_colaboracao_C Aux-tec-C ; O valor da colaboracao A será o Aux-tec-C, que é o menor valor dentre os liks com colaboracao formados. Ou caso nenhum link com colaboracao A tenha sido formado, então deve receber o valor de 10000 (uma valor muito alto) set Valor_colaboracao_D Aux-tec-D ; O valor da colaboracao A será o Aux-tec-D, que é o menor valor dentre os liks com colaboracao formados. Ou caso nenhum link com colaboracao A tenha sido formado, então deve receber o valor de 10000 (uma valor muito alto) set Valor_colaboracao_E Aux-tec-E ; O valor da colaboracao A será o Aux-tec-E, que é o menor valor dentre os liks com colaboracao formados. Ou caso nenhum link com colaboracao A tenha sido formado, então deve receber o valor de 10000 (uma valor muito alto) ] ; Fecha o chamado do Roadmap da vez ] ; Fecha o if que entra apenas se a turtle contador for um Roadmap e se existir um link da colaboradora para o Roadmap set contador2 contador2 + 1 ; Contador2 é usado no while que seleciona a colaboradora da vez ] ; Fecha o while que seleciona a colaboradora da vez set contador contador + 1 ; Contador é usado no while que seleciona o Roadmap da vez ] ; Fecha o whiole que seleciona o Roadmap da vez ;;;;;; A partir daqui, é feita uma varredura para matar os links com valores maiores set contador 0 set contador2 0 while [contador <= who_maior] [ set auxiliar 0 if turtle contador != nobody [ ask turtle contador [ifelse (breed = Roadmaps) [set auxiliar 1] [set auxiliar 0]] ] if (auxiliar = 1) [ ask turtle contador [ set Aux-tec-A Valor_colaboracao_A set Aux-tec-B Valor_colaboracao_B set Aux-tec-C Valor_colaboracao_C set Aux-tec-D Valor_colaboracao_D set Aux-tec-E Valor_colaboracao_E ] ] set contador2 0 while [contador2 <= who_maior] [ set auxiliar2 0 if link contador2 contador != nobody [ ask turtle contador2 [ifelse (breed = colaboradoras) [set auxiliar2 1] [set auxiliar2 0]] ] if (auxiliar = 1) and (auxiliar2 = 1) [ ask link contador2 contador [ if (colaboracao = "A" and Valor > Aux-tec-A) [die] ; O aprnedizado deve ser influenciado aqui. Nesse caso o aprendizado é negativo para a colaboradora. Ainda não codei isso! if (colaboracao = "B" and Valor > Aux-tec-B) [die] if (colaboracao = "C" and Valor > Aux-tec-C) [die] if (colaboracao = "D" and Valor > Aux-tec-D) [die] if (colaboracao = "E" and Valor > Aux-tec-E) [die] ] ] set contador2 contador2 + 1 ] set contador contador + 1 ] set contador 0 while [contador <= who_maior] [ set auxiliar 0 set auxiliar2 0 if turtle contador != nobody [ ask turtle contador [ifelse (breed = Roadmaps and encerramento = "Open") [set auxiliar 1] [set auxiliar 0]] ] if (auxiliar = 1) [ ask turtle contador [ if (Valor_colaboracao_A = 10000 or Valor_colaboracao_A = "N/A") [set auxiliar2 1] if (Valor_colaboracao_B = 10000 or Valor_colaboracao_B = "N/A") [set auxiliar2 1] if (Valor_colaboracao_C = 10000 or Valor_colaboracao_C = "N/A") [set auxiliar2 1] if (Valor_colaboracao_D = 10000 or Valor_colaboracao_D = "N/A") [set auxiliar2 1] if (Valor_colaboracao_E = 10000 or Valor_colaboracao_E = "N/A") [set auxiliar2 1] ] if auxiliar2 = 1 [ ask turtle contador [ set finalizado "Interrupted in Phase 0" set Encerramento periodo set color 115 ask my-links [die] ; O aprendizado deve ser influenciado aqui. Nesse caso o aprendizado é negativo para a colaboradora e também para iniciadora. Ainda não codei isso! ] ] if auxiliar2 = 0 [ ask turtle contador [ if iniciado_em = periodo [ ; Esse IF é importante pois ele só define esses valores para os Roadmap que foram criados no período atual. Se não estivesse aqui, ele iria retornar todos os Roadmaps para a Fse 1 periodo 1 set finalizado "Open" ; O aprendizado deve ser influenciado aqui. Nesse caso o aprendizado é positivo para a colaboradora e também para iniciadora. Ainda não codei isso! set Fase 1 set Periodos_na_Fase 1 ] ] ] ] set contador contador + 1 ] end to Passar_fase ;;;;; Antes de tudo, devem ser definidos os valores das probabilidades de passar de cada fase ; set Platform_environment (Information_reliability + Autonomy_-Less_intermediaries- + Traceability + IP_security + Accuracy_and_precision + Speed_of_processes_and_operations) / 6 ; Cálculo da variável que guarda as informações do ambiente da plataforma, que também influencia na passagem de cada fase e finalização ; set End_Phase4-Probability (Technology_development + Product_embodiment + Product_development + Product_commercialization + Technology_transfer + Platform_environment) / 0.42 ; A probabilidade de finalizar é com base em critérios gerais das empresas. O 0.42 é para trazer para base de 100 ; set Phase3_to_Phase4-Probability (Technology_development + Product_embodiment + Product_development + Product_commercialization + Technology_transfer + Platform_environment) / 0.42 ; A probabilidade de passar da fase 3 para a 4 é com base em critérios gerais das empresas. O 0.42 é para trazer para base de 100 ; set Phase2_to_Phase3-Probability (Technology_development + Product_embodiment + Product_development + Product_commercialization + Technology_transfer + Platform_environment) / 0.42 ; A probabilidade de passar da fase 2 para a 3 é com base em critérios gerais das empresas. O 0.42 é para trazer para base de 100 ; set Phase1_to_Phase2-Probability (Technology_development + Product_embodiment + Product_development + Product_commercialization + Technology_transfer + Platform_environment) / 0.42 ; A probabilidade de passar da fase 1 para a 2 é com base em critérios gerais das empresas. O 0.42 é para trazer para base de 100 ;;; Nas quatro linhas acima, coloquei alguns pesos aleatórios, mas que podem ser mudadados a qulquer momento. Fiz isso para as probabilidades não ficarem iguais de fase para fase. ;;;;; Primeiro tem que andar ou finalizar os sa fase 3 ;;;;; Depois tem que andar os da fase 2 ou passá-los para a fase 3 ;;;;; Só depois tem que andar os da fase 1 ou passá-los para a fase 2 ;;;;; Importante lembrar que esse comando (Passar_fase) deve ser colocado no início do comando GO, pois caso contrário, um Roadmap seria criado e passado de fase já no primeiro período. ;;;;; Essa parte é para finalizar Roadmap depois de 1 período na fase 4 (Fechamento) ou para interromper set contador 0 ; Zera o auxiliar que define o agente da posição de Roadmap set auxiliar 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador é um Roadmap ou não while [contador <= who_maior] [ ; Inicia o while para fazer a varredura nos Roadmaps if turtle contador != nobody [ ; Pergunta se a turtle da vez existe ou não. Caso não exista, pula o if, pois se chamar um agente que não existe é retornado um erro ask turtle contador [ ifelse (breed = Roadmaps and finalizado = "Open") [set auxiliar 1] [set auxiliar 0] ] ; Entrou no if. Aí chama a turtle da vez. Se for um Roadmap e estiver aberto, então auxiliar guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 if auxiliar = 1 [ ; Só entra no IF se a turtle for um Roadmap e estiver aberto ask turtle contador [ ; Chama o Roadmap da vez if (fase = 4) [ ; Se o Roadmap estiver na Fase 4, então entra no IF, pois é candidato ser finalizado ifelse (End_Phase4-Probability >= (random 100 + 1)) [ ; Se for verdadeiro, então é finalizado com sucesso, caso contrário então o Roadmap é interrompido set finalizado "Yes" ; Finalizado com sucesso set encerramento periodo ; Guarda o período na variável encerramento do Roadmap set color 65 ask my-links [ set situacao "Finalizado" ; Muda a situação de todos os links para esse Roadmap set color 65 ; Todos os links ficam verdes ] ; Fecha ask my-links duas linhas acima ask link-neighbors with [Boas_experiencias_com_a_plataforma_Aux < 7] [ ; Se a variável "Boas_experiencias_com_a_plataforma_Aux" for menor que 7, pois é o valor máximo, então... set Boas_experiencias_com_a_plataforma_Aux (Boas_experiencias_com_a_plataforma_Aux + 1) ; ... A variável é aumentada em 1 ] ; Fecha o ask duas linhas acima ] ; Fecha a primeira pare do IFELSE [ ; Abre a segunda parte do IFELSE ask turtle contador [ ; Chama o Roadmap da vez set finalizado "Interrupted in Phase 4" ; O Roadmap é interrompido set Encerramento periodo ; O periodo de encerramento é guardado set color 95 ; O Roadmap é pintado da cor azul ask my-links [ ; Chama todos os links do Roadmap da vez set color 95 ; Todos os seus links ficam azuis set situacao "Quebrado em Fechamento por outra colaboradora" ; ; Muda a variável situação do link, avisando que eles foi "Quebrado em Fechamento por outra colaboradora" ] ; Fecha o ask my-links ask my-links with [kind = "Iniciadora"] [ ; Chama por todos os links que tem o Tipo "Iniciadora", que é apenas o link da iniciadora para o Roadmap da vez set situacao "Quebrado em Fechamento por uma colaboradora" ; Muda a situação do link para "Quebrado em Fechamento por uma colaboradora" ] ; Fecha o ask de duas linhas acima ask one-of my-links with [kind = "Colaboradora"] [ ; Chama por um (aleatoriamente) link que tem o Tipo "Colaboradora" como Roadmap da vez set situacao "Quebrado em Fechamento por esta colaboradora" ; Muda a situação do link para "Quebrado em Fechamento por esta colaboradora" set auxiliar9 end1 ; Guarda no auxiliar9 qual é a colaboradora responsável por quebrar o Roadmap, que vai ter o "Boas_experiências" diminuído por 1 ] ; Fecha o ask de duas linhas acima ask auxiliar9 [ ; Chama a colaboradora que é responsável por quebrar o Roadmap if (Boas_experiencias_com_a_plataforma_Aux > 0) [ ; Se a variável "Boas_experiencias_com_a_plataforma_Aux" for maior que zero, pois não pode ficar negativa, então... set Boas_experiencias_com_a_plataforma_Aux (Boas_experiencias_com_a_plataforma_Aux - 1) ; ... A variável é diminuída em 1 ] ] ] ; Fecha o ask do Roadmap da vez ] ; Fecha a segunda parte do IFELSE ] ; Fecha o IF que pergunta se está na Fase 1 periodo 3 ] ; Fecha o ask que chama o Roadmap da vez ] ; Fecha o IF que pergunta se o agente da vez é um Roadmap e se está aberto ] ; Fecha o IF que pergunta se o agente da vez existe set contador contador + 1 ; Acrescenta 1 no contador para ir para o próximo agente ou para sair do while ] ; Fecha o while ;;;;; Essa parte é para andar o Roadmap pela fase 3 ou para passá-lo para a fase 4 set contador 0 ; Zera o auxiliar que define o agente da posição de Roadmap set auxiliar 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador é um Roadmap ou não while [contador <= who_maior] [ ; Inicia o while para fazer a varredura nos Roadmaps if turtle contador != nobody [ ; Pergunta se a turtle da vez existe ou não. Caso não exista, pula o if, pois se chamar um agente que não existe é retornado um erro ask turtle contador [ ifelse (breed = Roadmaps and finalizado = "Open") [set auxiliar 1] [set auxiliar 0] ] ; Entrou no if. Aí chama a turtle da vez. Se for um Roadmap e estiver aberto, então auxiliar guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 if auxiliar = 1 [ ; Só entra no IF se a turtle for um Roadmap ask turtle contador [ ; Chama o Roadmap da vez if (fase = 3) and (periodos_na_fase = 6) [ ; Se o Roadmap estiver na Fase 3 e estiver no período 6 dessa fase, então entra no IF, pois é candidato a passar de fase ifelse (Phase3_to_Phase4-Probability >= (random 100 + 1)) [ ; Se for verdadeiro, então passa para a Fase3, caso contrário então o Roadmap é interrompido set fase 4 ; Passa para a Fase 4 set periodos_na_fase 1 ; Primeiro período na fase 4 ask my-links [set situacao "Fechamento"] ; Muda a situação de todos os links para esse Roadmap ] ; Fecha a primeira pare do IFELSE [ ; Abre a segunda parte do IFELSE ask turtle contador [ ; Chama o Roadmap da vez set finalizado "Interrupted in Phase 3" ; O Roadmap é interrompido set Encerramento periodo ; O periodo de encerramento é guardado set color 25 ; O Roadmap é pintado da cor laranja ask my-links [ ; Chama todos os links do Roadmap da vez set color 25 ; Todos os seus links ficam laranjas set situacao "Quebrado em Desenvolvimento por outra colaboradora" ; Muda a variável situação do link, avisando que eles foi "Quebrado em Desenvolvimento por outra colaboradora" ] ; Fecha o ask my-links ask my-links with [kind = "Iniciadora"] [ ; Chama por todos os links que tem o Tipo "Iniciadora", que é apenas o link da iniciadora para o Roadmap da vez set situacao "Quebrado em Desenvolvimento por uma colaboradora" ; Muda a situação do link para "Quebrado em Desenvolvimento por uma colaboradora" ] ; Fecha o ask de duas linhas acima ask one-of my-links with [kind = "Colaboradora"] [ ; Chama por um (aleatoriamente) link que tem o Tipo "Colaboradora" como Roadmap da vez set situacao "Quebrado em Desenvolvimento por esta colaboradora" ; Muda a situação do link para "Quebrado em Desenvolvimento por esta colaboradora" set auxiliar9 end1 ; Guarda no auxiliar9 qual é a colaboradora responsável por quebrar o Roadmap, que vai ter o "Boas_experiências" diminuído por 1 ] ; Fecha o ask de duas linhas acima ask auxiliar9 [ ; Chama a colaboradora que é responsável por quebrar o Roadmap if (Boas_experiencias_com_a_plataforma_Aux > 0) [ ; Se a variável "Boas_experiencias_com_a_plataforma_Aux" for maior que zero, pois não pode ficar negativa, então... set Boas_experiencias_com_a_plataforma_Aux (Boas_experiencias_com_a_plataforma_Aux - 1) ; ... A variável é diminuída em 1 ] ] ask one-of my-links with [kind = "Iniciadora"] [ ; Chama a Iniciadora como Roadmap da vez set auxiliar9 end1 ; Guarda no auxiliar9 a inciadora, que deverá pagar indenização para outras 4 colaboradoras ] ; Fecha o ask de duas linhas acima ask auxiliar9 [ ; Chama a iniciadora, que deve pagar indenização para 4 colaboradoras if (Boas_experiencias_com_a_plataforma_Aux > 0) [ ; Se a variável "Boas_experiencias_com_a_plataforma_Aux" for maior que zero, pois não pode ficar negativa, então... set Boas_experiencias_com_a_plataforma_Aux (Boas_experiencias_com_a_plataforma_Aux - 1) ; ... A variável é diminuída em 1 ] ] ] ; Fecha o ask do Roadmap da vez ] ; Fecha a segunda parte do IFELSE ] ; Fecha o IF que pergunta se está na Fase 3 periodo 6 if (fase = 3) and (periodos_na_fase <= 5) [ ; Se o Roadmap estiver na Fase 3 e estiver no periodo 1 a 5 nessa fase... set periodos_na_fase periodos_na_fase + 1 ; ...então um período é adicionado ] ; Fecha o IF ] ; Fecha o ask que chama o Roadmap da vez ] ; Fecha o IF que pergunta se o agente da vez é um Roadmap e se está aberto ] ; Fecha o IF que pergunta se o agente da vez existe set contador contador + 1 ; Acrescenta 1 no contador para ir para o próximo agente ou para sair do while ] ; Fecha o while ;;;;; Essa parte é para andar o Roadmap pela fase 2 ou para passá-lo para a fase 3 set contador 0 ; Zera o auxiliar que define o agente da posição de Roadmap set auxiliar 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador é um Roadmap ou não while [contador <= who_maior] [ ; Inicia o while para fazer a varredura nos Roadmaps if turtle contador != nobody [ ; Pergunta se a turtle da vez existe ou não. Caso não exista, pula o if, pois se chamar um agente que não existe é retornado um erro ask turtle contador [ ifelse (breed = Roadmaps and finalizado = "Open") [set auxiliar 1] [set auxiliar 0] ] ; Entrou no if. Aí chama a turtle da vez. Se for um Roadmap e estiver aberto, então auxiliar guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 if auxiliar = 1 [ ; Só entra no IF se a turtle for um Roadmap ask turtle contador [ ; Chama o Roadmap da vez if (fase = 2) and (periodos_na_fase = 3) [ ; Se o Roadmap estiver na Fase 2 e estiver no período 3 dessa fase, então entra no IF, pois é candidato a passar de fase ifelse (Phase2_to_Phase3-Probability >= (random 100 + 1)) [ ; Se for verdadeiro, então passa para a Fase 3, caso contrário então o Roadmap é interrompido set fase 3 ; Passa para a Fase 3 set periodos_na_fase 1 ; Primeiro período na fase 3 ask my-links [set situacao "Desenvolvimento"] ; Muda a situação de todos os links para esse Roadmap ] ; Fecha a primeira pare do IFELSE [ ; Abre a segunda parte do IFELSE ask turtle contador [ ; Chama o Roadmap da vez set finalizado "Interrupted in Phase 2" ; O Roadmap é interrompido set Encerramento periodo ; O periodo de encerramento é guardado set color 45 ; O Roadmap é pintado da cor amarela ask my-links [ ; Chama todos os links do Roadmap da vez set color 45 ; Todos os seus links ficam amarelos set situacao "Quebrado em Maturação" ; Muda a variável situação do link, avisando que eles foi quebrado no período de maturação ] ; Fecha o ask my-links ask my-links with [kind = "Iniciadora"] [ set auxiliar9 end1 ; Guarda no auxiliar9 qual é a colaboradora responsável por quebrar o Roadmap, que vai ter o "Boas_experiências" diminuído por 1 ] ask auxiliar9 [ ; Chama a Iniciadora, que é responsável por quebrar o Roadmap if (Boas_experiencias_com_a_plataforma_Aux > 0) [ ; Se a variável "Boas_experiencias_com_a_plataforma_Aux" for maior que zero, pois não pode ficar negativa, então... set Boas_experiencias_com_a_plataforma_Aux (Boas_experiencias_com_a_plataforma_Aux - 1) ; ... A variável é diminuída em 1 ] ] ] ; Fecha o ask do Roadmap da vez ] ; Fecha a segunda parte do IFELSE ] ; Fecha o IF que pergunta se está na Fase 1 periodo 3 if (fase = 2) and (periodos_na_fase <= 2) [ ; Se o Roadmap estiver na Fase 2 e estiver no periodo 1 ou 2 nessa fase... set periodos_na_fase periodos_na_fase + 1 ; ...então um período é adicionado ] ; Fecha o IF ] ; Fecha o ask que chama o Roadmap da vez ] ; Fecha o IF que pergunta se o agente da vez é um Roadmap e se está aberto ] ; Fecha o IF que pergunta se o agente da vez existe set contador contador + 1 ; Acrescenta 1 no contador para ir para o próximo agente ou para sair do while ] ; Fecha o while ;;;;; Essa parte é para passar o Roadmap depois de 1 período na fase 1 (Proposta) ou para interromper set contador 0 ; Zera o auxiliar que define o agente da posição de Roadmap set auxiliar 0 ; Zera o auxiliar que ajuda a guardar a informação se a Turtle contador é um Roadmap ou não while [contador <= who_maior] [ ; Inicia o while para fazer a varredura nos Roadmaps if turtle contador != nobody [ ; Pergunta se a turtle da vez existe ou não. Caso não exista, pula o if, pois se chamar um agente que não existe é retornado um erro ask turtle contador [ ifelse (breed = Roadmaps and finalizado = "Open") [set auxiliar 1] [set auxiliar 0] ] ; Entrou no if. Aí chama a turtle da vez. Se for um Roadmap e estiver aberto, então auxiliar guarda valor 1, se não for, guarda o valor 0. Aqui vai nos interessar o valor 1 if auxiliar = 1 [ ; Só entra no IF se a turtle for um Roadmap ask turtle contador [ ; Chama o Roadmap da vez if (fase = 1) [ ; Se o Roadmap estiver na Fase 1, então entra no IF, pois é candidato ser finalizado ifelse (Phase1_to_Phase2-Probability >= (random 100 + 1)) [ ; Se for verdadeiro, então passa para fase 2, caso contrário então o Roadmap é interrompido set fase 2 ; Passa para fase 2 set periodos_na_fase 1 ; Primeiro período na fase 2 ask my-links [set situacao "Maturação"] ; Muda a situação de todos os links para esse Roadmap ] ; Fecha a primeira pare do IFELSE [ ; Abre a segunda parte do IFELSE ask turtle contador [ ; Chama o Roadmap da vez set finalizado "Interrupted in Phase 1" ; O Roadmap é interrompido set Encerramento periodo ; O periodo de encerramento é guardado set color 15 ; O Roadmap é pintado da cor vermelha ask my-links [ set color 15 ; Todos os seus links ficam vermelhos set situacao "Quebrado em proposta"] ; Muda a situação de todos os links para esse Roadmap ] ; Fecha o ask do Roadmap da vez ] ; Fecha a segunda parte do IFELSE ] ; Fecha o IF que pergunta se está na Fase 1 ] ; Fecha o ask que chama o Roadmap da vez ] ; Fecha o IF que pergunta se o agente da vez é um Roadmap e se está aberto ] ; Fecha o IF que pergunta se o agente da vez existe set contador contador + 1 ; Acrescenta 1 no contador para ir para o próximo agente ou para sair do while ] ; Fecha o while end to Calculo_indicadores ;;;;; Primeiro são enviadas todas as informações para os Roadmaps set contador 0 ; Zera o contador, responsável pelo primeiro while, que é o que deixa na posição de início do link while [contador <= who_maior] [ ; Inicia o primeiro while, que procura pelo agente iniciador do link set auxiliar 0 ; Zera o auxiliar, que irá guardar o valor dos links set contador2 0 ; Zera o contador2, responsável pelo segundo while, que é o que deixa na posição de final do link while [contador2 <= who_maior] [ ; Inicia o segundo while, que procura pelo agente recebedor do link, ou seja, o Roadmap if link contador contador2 != nobody [ ; Este if pergunta se o link contador contador2 existe. Isso é necessário pois se um link inexistente for chamado é retornado um erro ask link contador contador2 [ ; Chama o link contador contador2 ;;;;; Se for "Quebrado em Maturação", então cada colaboradora recebe 10% do valor. Tudo isso é pago pela iniciadora. Nada de propriedade intelectual é passado de colaboradoras para iniciadora if situacao = "Quebrado em Maturação" [ ; Se a situação do link for "Quebrado em Maturação", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Recebe_Tec_A_Inden (auxiliar * 0.1) ; Coloca o 10% do valor na variável Valor_Colab_Recebe_Tec_A set Valor_Inic_Paga_Tec_A_Inden (auxiliar * 0.1) ; Coloca o 10% do valor na variável Valor_Inic_Paga_Tec_A ] ; Fecha o ask três linhas acima ] ; Fecha o if de cinco linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Recebe_Tec_B_Inden (auxiliar * 0.1) set Valor_Inic_Paga_Tec_B_Inden (auxiliar * 0.1) ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Recebe_Tec_C_Inden (auxiliar * 0.1) set Valor_Inic_Paga_Tec_C_Inden (auxiliar * 0.1) ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Recebe_Tec_D_Inden (auxiliar * 0.1) set Valor_Inic_Paga_Tec_D_Inden (auxiliar * 0.1) ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Recebe_Tec_E_Inden (auxiliar * 0.1) set Valor_Inic_Paga_Tec_E_Inden (auxiliar * 0.1) ] ] ] ; Fecha o if se é "Quebrado em Maturação" ;;;;; Se for "Quebrado em Desenvolvimanto por esta colaboradora", então esta colaboradora paga 50% do valor para a Iniciadora. Propriedade intelectual não é repassada if situacao = "Quebrado em Desenvolvimento por esta colaboradora" [ ; Se a situação do link for "Quebrado em Desenvolvimento por esta colaboradora", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Paga_Tec_A_Inden (auxiliar * 0.5) ; Coloca 50% do valor na variável Valor_Colab_Paga_Tec_A set Valor_Inic_Recebe_Tec_A_Inden (auxiliar * 0.5) ; Coloca 50% do valor na variável Valor_Inic_Recebe_Tec_A ] ; Fecha o ask de três linha acima ] ; Fecha o if de cinco linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Paga_Tec_B_Inden (auxiliar * 0.5) set Valor_Inic_Recebe_Tec_B_Inden (auxiliar * 0.5) ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Paga_Tec_C_Inden (auxiliar * 0.5) set Valor_Inic_Recebe_Tec_C_Inden (auxiliar * 0.5) ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Paga_Tec_D_Inden (auxiliar * 0.5) set Valor_Inic_Recebe_Tec_D_Inden (auxiliar * 0.5) ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Paga_Tec_E_Inden (auxiliar * 0.5) set Valor_Inic_Recebe_Tec_E_Inden (auxiliar * 0.5) ] ] ] ; Fecha o if se é "Quebrado em Desenvolvimento por esta colaboradora" ;;;;; Se for "Quebrado em Desenvolvimento por outra colaboradora", então esta colaboradora recebe 50% do valor da Iniciadora. Propriedade intelectual não é repassada if situacao = "Quebrado em Desenvolvimento por outra colaboradora" [ ; Se a situação do link for "Quebrado em Desenvolvimento por outra colaboradora", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Recebe_Tec_A_Inden (auxiliar * 0.5) ; Coloca 50% do valor na variável Valor_Colab_Recebe_Tec_A set Valor_Inic_Paga_Tec_A_Inden (auxiliar * 0.5) ; Coloca 50% do valor na variável Valor_Inic_Paga_Tec_A ] ; Fecha o ask de três linha acima ] ; Fecha o if de cinco linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Recebe_Tec_B_Inden (auxiliar * 0.5) set Valor_Inic_Paga_Tec_B_Inden (auxiliar * 0.5) ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Recebe_Tec_C_Inden (auxiliar * 0.5) set Valor_Inic_Paga_Tec_C_Inden (auxiliar * 0.5) ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Recebe_Tec_D_Inden (auxiliar * 0.5) set Valor_Inic_Paga_Tec_D_Inden (auxiliar * 0.5) ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Recebe_Tec_E_Inden (auxiliar * 0.5) set Valor_Inic_Paga_Tec_E_Inden (auxiliar * 0.5) ] ] ] ; Fecha o if se é "Quebrado em Desenvolvimento por outra colaboradora" ;;;;; Se for "Quebrado em Fechamento por esta colaboradora", então esta colaboradora paga 100% do valor para a Iniciadora. Propriedade intelectual não é repassada if situacao = "Quebrado em Fechamento por esta colaboradora" [ ; Se a situação do link for "Quebrado em Fechamento por esta colaboradora", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Paga_Tec_A_Inden (auxiliar) ; Coloca 100% do valor na variável Valor_Colab_Paga_Tec_A set Valor_Inic_Recebe_Tec_A_Inden (auxiliar) ; Coloca 100% do valor na variável Valor_Inic_Recebe_Tec_A ] ; Fecha o ask de três linha acima ] ; Fecha o if de cinco linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Paga_Tec_B_Inden (auxiliar) set Valor_Inic_Recebe_Tec_B_Inden (auxiliar) ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Paga_Tec_C_Inden (auxiliar) set Valor_Inic_Recebe_Tec_C_Inden (auxiliar) ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Paga_Tec_D_Inden (auxiliar) set Valor_Inic_Recebe_Tec_D_Inden (auxiliar) ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Paga_Tec_E_Inden (auxiliar) set Valor_Inic_Recebe_Tec_E_Inden (auxiliar) ] ] ] ; Fecha o if se é "Quebrado em Fechamento por esta colaboradora" ;;;;; Se for "Quebrado em Fechamento por outra colaboradora", então esta colaboradora recebe 100% do valor da Iniciadora. Propriedade intelectual é repassada desta colaboradora para a iniciadora if situacao = "Quebrado em Fechamento por outra colaboradora" [ ; Se a situação do link for "Quebrado em Fechamento por outra colaboradora", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Recebe_Tec_A (auxiliar) ; Coloca 100% do valor na variável Valor_Colab_Recebe_Tec_A set Valor_Inic_Paga_Tec_A (auxiliar) ; Coloca 100% do valor na variável Valor_Inic_Paga_Tec_A set Transfer_Tec_A 1 ; Coloca valor 1 em Transfer_Tec_A, significando que existe transferência de colaboracao da colaboradora para a iniciadora ] ; Fecha o ask de quatro linha acima ] ; Fecha o if de seis linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Recebe_Tec_B (auxiliar) set Valor_Inic_Paga_Tec_B (auxiliar) set Transfer_Tec_B 1 ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Recebe_Tec_C (auxiliar) set Valor_Inic_Paga_Tec_C (auxiliar) set Transfer_Tec_C 1 ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Recebe_Tec_D (auxiliar) set Valor_Inic_Paga_Tec_D (auxiliar) set Transfer_Tec_D 1 ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Recebe_Tec_E (auxiliar) set Valor_Inic_Paga_Tec_E (auxiliar) set Transfer_Tec_E 1 ] ] ] ; Fecha o if se é "Quebrado em Fechamento por outra colaboradora" ;;;;; Se for "Finalizado", então esta colaboradora recebe 100% do valor da Iniciadora. Propriedade intelectual é repassada desta colaboradora para a iniciadora if situacao = "Finalizado" [ ; Se a situação do link for "Finalizado", então... set auxiliar valor ; Guarda o vakor do link no auxiliar if colaboracao = "A" [ ; Se o link for a colaboracao A, então... ask turtle contador2 [ ; Chama o Roadmap da vez set Valor_Colab_Recebe_Tec_A (auxiliar) ; Coloca 100% do valor na variável Valor_Colab_Recebe_Tec_A set Valor_Inic_Paga_Tec_A (auxiliar) ; Coloca 100% do valor na variável Valor_Inic_Paga_Tec_A set Transfer_Tec_A 1 ; Coloca valor 1 em Transfer_Tec_A, significando que existe transferência de colaboracao da colaboradora para a iniciadora ] ; Fecha o ask de quatro linha acima ] ; Fecha o if de seis linhas acima if colaboracao = "B" [ ; Faz a mesma coisa para a colaboracao B ask turtle contador2 [ set Valor_Colab_Recebe_Tec_B (auxiliar) set Valor_Inic_Paga_Tec_B (auxiliar) set Transfer_Tec_B 1 ] ] if colaboracao = "C" [ ; Faz a mesma coisa para a colaboracao C ask turtle contador2 [ set Valor_Colab_Recebe_Tec_C (auxiliar) set Valor_Inic_Paga_Tec_C (auxiliar) set Transfer_Tec_C 1 ] ] if colaboracao = "D" [ ; Faz a mesma coisa para a colaboracao D ask turtle contador2 [ set Valor_Colab_Recebe_Tec_D (auxiliar) set Valor_Inic_Paga_Tec_D (auxiliar) set Transfer_Tec_D 1 ] ] if colaboracao = "E" [ ; Faz a mesma coisa para a colaboracao E ask turtle contador2 [ set Valor_Colab_Recebe_Tec_E (auxiliar) set Valor_Inic_Paga_Tec_E (auxiliar) set Transfer_Tec_E 1 ] ] ] ; Fecha o if se é "Finalizado" ] ] set contador2 contador2 + 1 ] set contador contador + 1 ] ;;;;;;;;;;;;; Aqui é terminado de passar as informações para os Roadmaps. Agora, daqui para baixo é passado para as iniciadoras e colaboradoras a soma de todos os Roadmaps ask colaboradoras [ ; Zera as variáveis das colaboradoras set Valor_recebido_propr_intelec 0 set Propriedade_intelectual_enviada 0 set Valor_recebido_indenizacao 0 set Valor_pago_indenizacao 0 ] ask iniciadoras [ ; Zera as variáveis das iniciadoras set Valor_pago_propr_intelec 0 set Propriedade_intelectual_recebida 0 set Valor_recebido_indenizacao 0 set Valor_pago_indenizacao 0 ] set contador 0 while [contador <= who_maior] [ set contador2 0 while [contador2 <= who_maior] [ if link contador contador2 != nobody [ ask link contador contador2 [ if kind = "Iniciadora" [ ; Abre para a Iniciadora do Roadmap, para transferir para auxiliares os valores que pagam ou recebem de indenização, ou por tranferência de colaboracao, e também as quantidades de colaboracaos transferidas ask turtle contador2 [ set Aux_Valor_Inic_Paga_Tec_A Valor_Inic_Paga_Tec_A set Aux_Valor_Inic_Paga_Tec_B Valor_Inic_Paga_Tec_B set Aux_Valor_Inic_Paga_Tec_C Valor_Inic_Paga_Tec_C set Aux_Valor_Inic_Paga_Tec_D Valor_Inic_Paga_Tec_D set Aux_Valor_Inic_Paga_Tec_E Valor_Inic_Paga_Tec_E set Aux_Valor_Inic_Paga_Tec_A_Inden Valor_Inic_Paga_Tec_A_Inden set Aux_Valor_Inic_Paga_Tec_B_Inden Valor_Inic_Paga_Tec_B_Inden set Aux_Valor_Inic_Paga_Tec_C_Inden Valor_Inic_Paga_Tec_C_Inden set Aux_Valor_Inic_Paga_Tec_D_Inden Valor_Inic_Paga_Tec_D_Inden set Aux_Valor_Inic_Paga_Tec_E_Inden Valor_Inic_Paga_Tec_E_Inden set Aux_Valor_Inic_Recebe_Tec_A_Inden Valor_Inic_Recebe_Tec_A_Inden set Aux_Valor_Inic_Recebe_Tec_B_Inden Valor_Inic_Recebe_Tec_B_Inden set Aux_Valor_Inic_Recebe_Tec_C_Inden Valor_Inic_Recebe_Tec_C_Inden set Aux_Valor_Inic_Recebe_Tec_D_Inden Valor_Inic_Recebe_Tec_D_Inden set Aux_Valor_Inic_Recebe_Tec_E_Inden Valor_Inic_Recebe_Tec_E_Inden set Aux_Transfer_Tec_A Transfer_Tec_A set Aux_Transfer_Tec_B Transfer_Tec_B set Aux_Transfer_Tec_C Transfer_Tec_C set Aux_Transfer_Tec_D Transfer_Tec_D set Aux_Transfer_Tec_E Transfer_Tec_E ] ask turtle contador [ set Valor_pago_propr_intelec (Valor_pago_propr_intelec + Aux_Valor_Inic_Paga_Tec_A + Aux_Valor_Inic_Paga_Tec_B + Aux_Valor_Inic_Paga_Tec_C + Aux_Valor_Inic_Paga_Tec_D + Aux_Valor_Inic_Paga_Tec_E) set Propriedade_intelectual_recebida (Propriedade_intelectual_recebida + Aux_Transfer_Tec_A + Aux_Transfer_Tec_B + Aux_Transfer_Tec_C + Aux_Transfer_Tec_D + Aux_Transfer_Tec_E) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Valor_Inic_Recebe_Tec_A_Inden + Aux_Valor_Inic_Recebe_Tec_B_Inden + Aux_Valor_Inic_Recebe_Tec_C_Inden + Aux_Valor_Inic_Recebe_Tec_D_Inden + Aux_Valor_Inic_Recebe_Tec_E_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Valor_Inic_Paga_Tec_A_Inden + Aux_Valor_Inic_Paga_Tec_B_Inden + Aux_Valor_Inic_Paga_Tec_C_Inden + Aux_Valor_Inic_Paga_Tec_D_Inden + Aux_Valor_Inic_Paga_Tec_E_Inden) ] ] if colaboracao = "A" [ ; Abre para a Colaboradora do Roadmap que tem a colaboracao do tipo "A" ask turtle contador2 [ set Aux_Colab_Recebe_Tec Valor_Colab_Recebe_Tec_A set Aux_Colab_Recebe_Inden Valor_Colab_Recebe_Tec_A_Inden set Aux_Colab_Paga_Inden Valor_Colab_Paga_Tec_A_Inden set Aux_Transfer_Tec Transfer_Tec_A ] ask turtle contador [ set Valor_recebido_propr_intelec (Valor_recebido_propr_intelec + Aux_Colab_Recebe_Tec) set Propriedade_intelectual_enviada (Propriedade_intelectual_enviada + Aux_Transfer_Tec) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Colab_Recebe_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Colab_Paga_Inden) ] ] if colaboracao = "B" [ ; Abre para a Colaboradora do Roadmap que tem a colaboracao do tipo "B" ask turtle contador2 [ set Aux_Colab_Recebe_Tec Valor_Colab_Recebe_Tec_B set Aux_Colab_Recebe_Inden Valor_Colab_Recebe_Tec_B_Inden set Aux_Colab_Paga_Inden Valor_Colab_Paga_Tec_B_Inden set Aux_Transfer_Tec Transfer_Tec_B ] ask turtle contador [ set Valor_recebido_propr_intelec (Valor_recebido_propr_intelec + Aux_Colab_Recebe_Tec) set Propriedade_intelectual_enviada (Propriedade_intelectual_enviada + Aux_Transfer_Tec) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Colab_Recebe_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Colab_Paga_Inden) ] ] if colaboracao = "C" [ ; Abre para a Colaboradora do Roadmap que tem a colaboracao do tipo "C" ask turtle contador2 [ set Aux_Colab_Recebe_Tec Valor_Colab_Recebe_Tec_C set Aux_Colab_Recebe_Inden Valor_Colab_Recebe_Tec_C_Inden set Aux_Colab_Paga_Inden Valor_Colab_Paga_Tec_C_Inden set Aux_Transfer_Tec Transfer_Tec_C ] ask turtle contador [ set Valor_recebido_propr_intelec (Valor_recebido_propr_intelec + Aux_Colab_Recebe_Tec) set Propriedade_intelectual_enviada (Propriedade_intelectual_enviada + Aux_Transfer_Tec) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Colab_Recebe_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Colab_Paga_Inden) ] ] if colaboracao = "D" [ ; Abre para a Colaboradora do Roadmap que tem a colaboracao do tipo "D" ask turtle contador2 [ set Aux_Colab_Recebe_Tec Valor_Colab_Recebe_Tec_D set Aux_Colab_Recebe_Inden Valor_Colab_Recebe_Tec_D_Inden set Aux_Colab_Paga_Inden Valor_Colab_Paga_Tec_D_Inden set Aux_Transfer_Tec Transfer_Tec_D ] ask turtle contador [ set Valor_recebido_propr_intelec (Valor_recebido_propr_intelec + Aux_Colab_Recebe_Tec) set Propriedade_intelectual_enviada (Propriedade_intelectual_enviada + Aux_Transfer_Tec) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Colab_Recebe_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Colab_Paga_Inden) ] ] if colaboracao = "E" [ ; Abre para a Colaboradora do Roadmap que tem a colaboracao do tipo "E" ask turtle contador2 [ set Aux_Colab_Recebe_Tec Valor_Colab_Recebe_Tec_E set Aux_Colab_Recebe_Inden Valor_Colab_Recebe_Tec_E_Inden set Aux_Colab_Paga_Inden Valor_Colab_Paga_Tec_E_Inden set Aux_Transfer_Tec Transfer_Tec_E ] ask turtle contador [ set Valor_recebido_propr_intelec (Valor_recebido_propr_intelec + Aux_Colab_Recebe_Tec) set Propriedade_intelectual_enviada (Propriedade_intelectual_enviada + Aux_Transfer_Tec) set Valor_recebido_indenizacao (Valor_recebido_indenizacao + Aux_Colab_Recebe_Inden) set Valor_pago_indenizacao (Valor_pago_indenizacao + Aux_Colab_Paga_Inden) ] ] ] ] set contador2 contador2 + 1 ] set contador contador + 1 ] ;;;;; Agora são calculados os indicadores gerais set Qtde_Colaboradoras (count colaboradoras) set Qtde_Iniciadoras (count iniciadoras) set Qtde_Roadmaps (count Roadmaps) set Qtde_Roadmaps_Abertos (count Roadmaps with [Finalizado = "Open"]) set Qtde_Roadmaps_Interromp_Fase_0 (count Roadmaps with [Finalizado = "Interrupted in Phase 0"]) set Qtde_Roadmaps_Interromp_Fase_1 (count Roadmaps with [Finalizado = "Interrupted in Phase 1"]) set Qtde_Roadmaps_Interromp_Fase_2 (count Roadmaps with [Finalizado = "Interrupted in Phase 2"]) set Qtde_Roadmaps_Interromp_Fase_3 (count Roadmaps with [Finalizado = "Interrupted in Phase 3"]) set Qtde_Roadmaps_Interromp_Fase_4 (count Roadmaps with [Finalizado = "Interrupted in Phase 4"]) set Qtde_Roadmaps_Finalizados (count Roadmaps with [Finalizado = "Yes"]) set auxiliar (count Roadmaps with [finalizado = "Yes"]) ; Faz o cálculo do valor médio dos Roadmaps finalizados com sucesso set contador 0 set Valor_total_Roadmaps 0 while [contador <= who_maior] [ ask turtle contador [ if (breed = Roadmaps) and (Finalizado = "Yes") [ set Valor_total_Roadmaps Valor_total_Roadmaps + Valor_colaboracao_A set Valor_total_Roadmaps Valor_total_Roadmaps + Valor_colaboracao_B set Valor_total_Roadmaps Valor_total_Roadmaps + Valor_colaboracao_C set Valor_total_Roadmaps Valor_total_Roadmaps + Valor_colaboracao_D set Valor_total_Roadmaps Valor_total_Roadmaps + Valor_colaboracao_E ] ] set contador contador + 1 ] ifelse auxiliar = 0 [set Valor_medio_Roadmap 0] [set Valor_medio_Roadmap Valor_Total_Roadmaps / auxiliar] set contador 0 ; Faz o cálculo da quantidade de propriedade intelectual trocada e o valor e também o cálcuo do boas experiências com a plataforma para as iniciadoras set auxiliar 0 set auxiliar2 0 set auxiliar3 0 set auxiliar4 0 while [contador <= who_maior] [ if turtle contador != nobody [ ask turtle contador [ if breed = Iniciadoras [ set auxiliar (auxiliar + Propriedade_intelectual_recebida) set auxiliar2 (auxiliar2 + Valor_pago_propr_intelec) set auxiliar3 (auxiliar3 + Valor_recebido_indenizacao) set auxiliar4 (auxiliar4 + Valor_pago_indenizacao) ] ] ] set contador contador + 1 ] set Propr_intelec_trocada auxiliar set Pago_por_prop_intelec auxiliar2 set Colab_pagam_inde auxiliar3 set Inic_pagam_inde auxiliar4 end to Show_outputs clear-output set contador 0 while [contador <= who_maior] [ if turtle contador != nobody [ ask turtle contador [ if (breed = Iniciadoras) [ output-type "Creator " output-type contador output-type " " output-show " " output-type "Entry: Period " output-type Entrada_no_modelo output-type " " output-show " " output-type "Willingness to share = " output-type Disposicao_compartilhar output-type "% " output-show " " ; output-type "Paid for Collaboration = " ; output-type Valor_pago_propr_intelec ; output-type " " ; output-show " " output-type "Collaboration Received = " output-type Propriedade_intelectual_recebida output-type " " output-show " " ; output-type "Received as indemnity = " ; output-type Valor_recebido_indenizacao ; output-type " " ; output-show " " ; output-type "Paid as indemnity = " ; output-type Valor_pago_indenizacao ; output-type " " ; output-show " " ] if breed = Colaboradoras [ output-type "Partner " output-type contador output-type " " output-show " " output-type "Entry: Period " output-type Entrada_no_modelo output-type " " output-show " " output-type "Willingness to share = " output-type Disposicao_compartilhar output-type "% " output-show " " output-type "Collaboration Type = " output-type Tipo_colaboracao output-type " " output-show " " ; output-type "Received for Collaboration = " ; output-type Valor_recebido_propr_intelec ; output-type " " ; output-show " " output-type "Collaboration Shared = " output-type Propriedade_intelectual_enviada output-type " " output-show " " ; output-type "Received as indemnity = " ; output-type Valor_recebido_indenizacao ; output-type " " ; output-show " " ; output-type "Paid as indemnity = " ; output-type Valor_pago_indenizacao ; output-type " " ; output-show " " ] if breed = Roadmaps [ output-type "Roadmap " output-type contador output-type " " output-show " " output-type "Type: " output-type Roadmap_Type output-type " " output-show " " output-type "Started by: Creator " output-type Iniciado_por output-type " " output-show " " output-type "Started in: Period " output-type Iniciado_em output-type " " output-show " " output-type "Finished? " output-type Finalizado output-type " " output-show " " ; if finalizado = "Yes" [ ; output-type " - PAID FOR Collaboration:" ; output-type " " ; output-show " " ; output-type " + Value of Collaboration A = " ; output-type Valor_colaboracao_A ; output-type " " ; output-show " " ; output-type " + Value of Collaboration B = " ; output-type Valor_colaboracao_B ; output-type " " ; output-show " " ; output-type " + Value of Collaboration C = " ; output-type Valor_colaboracao_C ; output-type " " ; output-show " " ; output-type " + Value of Collaboration D = " ; output-type Valor_colaboracao_D ; output-type " " ; output-show " " ; output-type " + Value of Collaboration E = " ; output-type Valor_colaboracao_E ; output-type " " ; output-show " " ; output-type " + Total value = " ; output-type (Valor_colaboracao_A + Valor_colaboracao_B + Valor_colaboracao_C + Valor_colaboracao_D + Valor_colaboracao_E) ; output-type " " ; output-show " " ; ] ; if finalizado = "Interrupted in Phase 2" [ ; output-type " - Creator PAYS AS INDEMNITY:" ; output-type " " ; output-show " " ; output-type " + Value of Collaboration A = " ; output-type Valor_Inic_Paga_Tec_A_Inden ; output-type " " ; output-show " " ; output-type " + Value of Collaboration B = " ; output-type Valor_Inic_Paga_Tec_B_Inden ; output-type " " ; output-show " " ; output-type " + Value of Collaboration C = " ; output-type Valor_Inic_Paga_Tec_C_Inden ; output-type " " ; output-show " " ; output-type " + Value of Collaboration D = " ; output-type Valor_Inic_Paga_Tec_D_Inden ; output-type " " ; output-show " " ; output-type " + Value of Collaboration E = " ; output-type Valor_Inic_Paga_Tec_E_Inden ; output-type " " ; output-show " " ; output-type " + Total value = " ; output-type (Valor_Inic_Paga_Tec_A_Inden + Valor_Inic_Paga_Tec_B_Inden + Valor_Inic_Paga_Tec_C_Inden + Valor_Inic_Paga_Tec_D_Inden + Valor_Inic_Paga_Tec_E_Inden) ; output-type " " ; output-show " " ; ] ; if finalizado = "Interrupted in Phase 3" [ ; set auxiliar 0 ; set auxiliar2 0 ; set auxiliar3 0 ; set auxiliar4 0 ; set auxiliar5 0 ; output-type " - Creator PAYS AS INDEMNITY:" ; output-type " " ; output-show " " ; if Valor_Inic_Paga_Tec_A_Inden != 0 [ ; set auxiliar Valor_Inic_Paga_Tec_A_Inden ; output-type " + Value of Collaboration A = " ; output-type Valor_Inic_Paga_Tec_A_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_B_Inden != 0 [ ; set auxiliar2 Valor_Inic_Paga_Tec_B_Inden ; output-type " + Value of Collaboration B = " ; output-type Valor_Inic_Paga_Tec_B_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_C_Inden != 0 [ ; set auxiliar3 Valor_Inic_Paga_Tec_C_Inden ; output-type " + Value of Collaboration C = " ; output-type Valor_Inic_Paga_Tec_C_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_D_Inden != 0 [ ; set auxiliar4 Valor_Inic_Paga_Tec_D_Inden ; output-type " + Value of Collaboration D = " ; output-type Valor_Inic_Paga_Tec_D_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_E_Inden != 0 [ ; set auxiliar5 Valor_Inic_Paga_Tec_E_Inden ; output-type " + Value of Collaboration E = " ; output-type Valor_Inic_Paga_Tec_E_Inden ; output-type " " ; output-show " " ; ] ; output-type " + Total value = " ; output-type (auxiliar + auxiliar2 + auxiliar3 + auxiliar4 + auxiliar5) ; output-type " " ; output-show " " ; set auxiliar 0 ; set auxiliar2 0 ; set auxiliar3 0 ; set auxiliar4 0 ; set auxiliar5 0 ; output-type " - Partner PAYS AS INDEMNITY:" ; output-type " " ; output-show " " ; if Valor_Colab_Paga_Tec_A_Inden != 0 [ ; set auxiliar Valor_Colab_Paga_Tec_A_Inden ; output-type " + Value of Collaboration A = " ; output-type Valor_Colab_Paga_Tec_A_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_B_Inden != 0 [ ; set auxiliar2 Valor_Colab_Paga_Tec_B_Inden ; output-type " + Value of Collaboration B = " ; output-type Valor_Colab_Paga_Tec_B_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_C_Inden != 0 [ ; set auxiliar3 Valor_Colab_Paga_Tec_C_Inden ; output-type " + Value of Collaboration C = " ; output-type Valor_Colab_Paga_Tec_C_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_D_Inden != 0 [ ; set auxiliar4 Valor_Colab_Paga_Tec_D_Inden ; output-type " + Value of Collaboration D = " ; output-type Valor_Colab_Paga_Tec_D_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_E_Inden != 0 [ ; set auxiliar5 Valor_Colab_Paga_Tec_E_Inden ; output-type " + Value of Collaboration E = " ; output-type Valor_Colab_Paga_Tec_E_Inden ; output-type " " ; output-show " " ; ] ; output-type " + Total value = " ; output-type (auxiliar + auxiliar2 + auxiliar3 + auxiliar4 + auxiliar5) ; output-type " " ; output-show " " ; ] ; if finalizado = "Interrupted in Phase 4" [ ; set auxiliar 0 ; set auxiliar2 0 ; set auxiliar3 0 ; set auxiliar4 0 ; set auxiliar5 0 ; output-type " - PAID FOR Collaboration:" ; output-type " " ; output-show " " ; if Valor_Inic_Paga_Tec_A != 0 [ ; set auxiliar Valor_Inic_Paga_Tec_A ; output-type " + Value of Collaboration A = " ; output-type Valor_Inic_Paga_Tec_A ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_B != 0 [ ; set auxiliar2 Valor_Inic_Paga_Tec_B ; output-type " + Value of Collaboration B = " ; output-type Valor_Inic_Paga_Tec_B ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_C != 0 [ ; set auxiliar3 Valor_Inic_Paga_Tec_C ; output-type " + Value of Collaboration C = " ; output-type Valor_Inic_Paga_Tec_C ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_D != 0 [ ; set auxiliar4 Valor_Inic_Paga_Tec_D ; output-type " + Value of Collaboration D = " ; output-type Valor_Inic_Paga_Tec_D ; output-type " " ; output-show " " ; ] ; if Valor_Inic_Paga_Tec_E != 0 [ ; set auxiliar5 Valor_Inic_Paga_Tec_E ; output-type " + Value of Collaboration E = " ; output-type Valor_Inic_Paga_Tec_E ; output-type " " ; output-show " " ; ] ; output-type " + Total value = " ; output-type (auxiliar + auxiliar2 + auxiliar3 + auxiliar4 + auxiliar5) ; output-type " " ; output-show " " ; set auxiliar 0 ; set auxiliar2 0 ; set auxiliar3 0 ; set auxiliar4 0 ; set auxiliar5 0 ; output-type " - Partner PAYS AS INDEMNITY:" ; output-type " " ; output-show " " ; if Valor_Colab_Paga_Tec_A_Inden != 0 [ ; set auxiliar Valor_Colab_Paga_Tec_A_Inden ; output-type " + Value of Collaboration A = " ; output-type Valor_Colab_Paga_Tec_A_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_B_Inden != 0 [ ; set auxiliar2 Valor_Colab_Paga_Tec_B_Inden ; output-type " + Value of Collaboration B = " ; output-type Valor_Colab_Paga_Tec_B_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_C_Inden != 0 [ ; set auxiliar3 Valor_Colab_Paga_Tec_C_Inden ; output-type " + Value of Collaboration C = " ; output-type Valor_Colab_Paga_Tec_C_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_D_Inden != 0 [ ; set auxiliar4 Valor_Colab_Paga_Tec_D_Inden ; output-type " + Value of Collaboration D = " ; output-type Valor_Colab_Paga_Tec_D_Inden ; output-type " " ; output-show " " ; ] ; if Valor_Colab_Paga_Tec_E_Inden != 0 [ ; set auxiliar5 Valor_Colab_Paga_Tec_E_Inden ; output-type " + Value of Collaboration E = " ; output-type Valor_Colab_Paga_Tec_E_Inden ; output-type " " ; output-show " " ; ] ; output-type " + Total value = " ; output-type (auxiliar + auxiliar2 + auxiliar3 + auxiliar4 + auxiliar5) ; output-type " " ; output-show " " ; ] ] output-type "-------------------------------------------------------------------------------------------" output-show " " output-type "-------------------------------------------------------------------------------------------" output-show " " ] ] set contador contador + 1 ] update-plots ; Atualiza os gráficos if export = true [ ; exporta o mundo netlogo e os textos export-interface (word "Interface Period " periodo ".png") export-output (word "Output Period " periodo ".csv") ] end to Atualizar_empresas ; Atualiza também os Roadmaps, que podem sofrer alteração das probabilidades de passagem de fase, já que esses valores dependem de um dado de entrada ask Colaboradoras [ set Information_reliability_aux Information_reliability set Autonomy_-Less_intermediaries-_aux Autonomy_-Less_intermediaries- set Traceability_aux Traceability set IP_security_aux IP_security set Accuracy_and_precision_aux Accuracy_and_precision set Speed_of_processes_and_operations_aux Speed_of_processes_and_operations set Disposicao_compartilhar ((Information_reliability_aux + Autonomy_-Less_intermediaries-_aux + Traceability_aux + IP_security_aux + ; Puldei de linha apenas para deixar alinhado Accuracy_and_precision_aux + Speed_of_processes_and_operations_aux + Boas_experiencias_com_a_plataforma_aux) / 0.49) ; 0.49 é usado para trazer para base de 100 ] ask Iniciadoras [ set Information_reliability_aux Information_reliability set Autonomy_-Less_intermediaries-_aux Autonomy_-Less_intermediaries- set Traceability_aux Traceability set IP_security_aux IP_security set Accuracy_and_precision_aux Accuracy_and_precision set Speed_of_processes_and_operations_aux Speed_of_processes_and_operations set Disposicao_compartilhar ((Information_reliability_aux + Autonomy_-Less_intermediaries-_aux + Traceability_aux + IP_security_aux + ; Puldei de linha apenas para deixar alinhado Accuracy_and_precision_aux + Speed_of_processes_and_operations_aux + Boas_experiencias_com_a_plataforma_aux) / 0.49) ; 0.49 é usado para trazer para base de 100 ] ; Este bloco é para calcular o quanto que a plataforma influencia em porcentagem para a passagem de fase set Auxiliar mean [Boas_experiencias_com_a_plataforma_aux] of Turtles with [breed != Roadmaps] if Roadmap_formation_influence_in_phase_transition? = "Yes (Up to 15%)" [set Platform_influence (Information_reliability + Autonomy_-Less_intermediaries- + Traceability + IP_security + Accuracy_and_precision + Speed_of_processes_and_operations + Auxiliar) * 0.15 / 0.49] if Roadmap_formation_influence_in_phase_transition? = "No (0%)" [set Platform_influence 0] ; Este bloco calcula os valores de passagem de fase de cada Tipo de Roadmap individualmente ask Roadmaps [ if Roadmap_Type = "Shaper" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 if End_Phase4-Probability > 100 [set End_Phase4-Probability 100] set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 if Phase3_to_Phase4-Probability > 100 [set Phase3_to_Phase4-Probability 100] set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 37.5 if Phase2_to_Phase3-Probability > 100 [set Phase2_to_Phase3-Probability 100] set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 12.5 if Phase1_to_Phase2-Probability > 100 [set Phase1_to_Phase2-Probability 100] ] if Roadmap_Type = "Adapter" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 if End_Phase4-Probability > 100 [set End_Phase4-Probability 100] set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 if Phase3_to_Phase4-Probability > 100 [set Phase3_to_Phase4-Probability 100] set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 37.5 if Phase2_to_Phase3-Probability > 100 [set Phase2_to_Phase3-Probability 100] set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 12.5 if Phase1_to_Phase2-Probability > 100 [set Phase1_to_Phase2-Probability 100] ] if Roadmap_Type = "Integrator" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 if End_Phase4-Probability > 100 [set End_Phase4-Probability 100] set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 75 if Phase3_to_Phase4-Probability > 100 [set Phase3_to_Phase4-Probability 100] set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 50 if Phase2_to_Phase3-Probability > 100 [set Phase2_to_Phase3-Probability 100] set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 if Phase1_to_Phase2-Probability > 100 [set Phase1_to_Phase2-Probability 100] ] if Roadmap_Type = "Explorer" [ set End_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 if End_Phase4-Probability > 100 [set End_Phase4-Probability 100] set Phase3_to_Phase4-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 25 if Phase3_to_Phase4-Probability > 100 [set Phase3_to_Phase4-Probability 100] set Phase2_to_Phase3-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 0 if Phase2_to_Phase3-Probability > 100 [set Phase2_to_Phase3-Probability 100] set Phase1_to_Phase2-Probability Threshold_Probability_-Phase_transition- + Platform_influence + 0 if Phase1_to_Phase2-Probability > 100 [set Phase1_to_Phase2-Probability 100] ] ] end to go set periodo periodo + 1 Atualizar_empresas ; Tem no começo pois os dados de entrada podem ser mudados, então o modelo deve verificar isso. Passar_fase Iniciar_um_Roadmap_colaborativo Iniciar_Colaboracao_no_Roadmap Definir_Roadmap_Fase_1 Calculo_indicadores Atualizar_empresas ; Tem no final pois as empresas podem ter mudado a variável de Boa Experiências com a plataforma" neste período, então o modelo deve verificar isso Show_outputs end
There is only one version of this model, created over 1 year ago by Gabriel Couto Mantese.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Tech ventures and roadmapping - Simulation model.png | preview | Preview | over 1 year ago, by Gabriel Couto Mantese | Download |
This model does not have any ancestors.
This model does not have any descendants.