EIPSymb
Model was written in NetLogo 5.1.0
•
Viewed 414 times
•
Downloaded 48 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
globals [contador-empresas auxiliar auxiliar2 auxiliar3 auxiliar4 auxiliar5 auxiliar6 auxiliar7 auxiliar8 auxiliar9 auxiliar10 auxiliar11 auxiliar12 auxiliar13 auxiliar14 auxiliar15 quantidade-empresas quantidade-conexoes conexoes-possiveis periodo numerador denominador isi isi' contador-link aux-link aux-link2 aux-link3 aux-link4 aux-link5 aux-link6 aux-link7 aux-link8 aux-link9 aux-link10 aux-link11 aux-link12 eco-connectance grau-reciclagem aux-grau-reciclagem residuos-trocados residuos-descartados Potencial-hazard-of-by-product-A Potencial-hazard-of-by-product-B Potencial-hazard-of-by-product-C Potencial-hazard-of-by-product-D Potencial-hazard-of-by-product-E Potencial-hazard-of-by-product-A' Potencial-hazard-of-by-product-B' Potencial-hazard-of-by-product-C' Potencial-hazard-of-by-product-D' Potencial-hazard-of-by-product-E' symbiotic-utilization symbiotic-utilization' conexoes-produto industrial-symbiosis-index link-density eco-efficiency auxiliar-co2 auxiliar-energia Potencial-hazard-of-co2 %reused-waste denominador2 resource-productivity-substance resource-productivity-energy ecc vmfs ldfs tfi ecfi environmental-impact embodied-carbonA embodied-carbonB embodied-carbonC embodied-carbonD embodied-carbonE co2-price valor-energia valor-material-virgem valor-produto valor-residuo energia-tep] links-own [intensidade tempo-existencia tipo-residuo] turtles-own [tempo-no-parque tipo-produto tipo-residuo-gerado residuo-gerado capacidade-absorcao-residuo residuo-absorvido tipo-produto-insumo tipo-material-virgem produto-produzido produto-insumo material-virgem co2 energia produto-insumo-interno produto-insumo-externo produto-enviado custo receita lucro recebido-venda-residuo economizado-compra-residuo produzido-com-residuo produzido-sem-residuo tipo-residuo-usado1 tipo-residuo-usado2 tipo-residuo-usado3 tipo-residuo-usado4 tipo-residuo-usado5 residuo-absorvidoA residuo-absorvidoB residuo-absorvidoC residuo-absorvidoD residuo-absorvidoE] ;;;;;;;;;;; ;;;Setup;;; ;;;;;;;;;;; to setup ca ask patches with [pxcor <= 11] [set pcolor 92] ask patches with [pxcor > 11] [set pcolor 35] create-turtles 1 [set shape "garbage can" set size 5 set color 5 setxy 14 0 set label "LANDFILL "] create-turtles 1 [set shape "factory" set size 5 set color 5 setxy 14 -12 set label "OTHER EIP "] ;ask turtle 1 [die] valores-monetarios export-interface (word "Period " periodo ".jpg") ; This function saves a print screen of the interface export-output (word "Period " periodo ".txt") ; This function saves a text document of the values of each company and of each link end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Definição dos valores monetários;;; COLOQUEI DENTRO DE SETUP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to valores-monetarios set valor-energia 0.05 ; kWh set valor-material-virgem 200 ; Alumina set valor-produto 2000 ; Prebake anode and aluminum set valor-residuo 1300 ; Aluminum scrap set energia-tep 0.000086 ; Não é financeiro, mas serve para transformar a unidade de energia em tonelada equivalente de petróleo set embodied-carbonA (8 * 1000) ; o 1000 é pra transformar em kg set embodied-carbonB (3 * 1000) ; o 1000 é pra transformar em kg set embodied-carbonC (1 * 1000) ; o 1000 é pra transformar em kg set embodied-carbonD (1 * 1000) ; o 1000 é pra transformar em kg set embodied-carbonE (2 * 1000) ; o 1000 é pra transformar em kg set co2-price 5 ; valor do co2 price é 5 dolares por kg end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo das quantidades;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-quantidades set residuos-descartados 0 set residuos-trocados 0 set aux-link 0 set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if link auxiliar 0 != nobody [ ask link auxiliar 0 [set aux-link intensidade] set residuos-descartados residuos-descartados + aux-link ] set auxiliar auxiliar + 1 ] set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ set auxiliar2 auxiliar + 1 while [auxiliar2 <= contador-empresas + 1] [ if link auxiliar auxiliar2 != nobody [ ask link auxiliar auxiliar2 [if color = green [ ask link auxiliar auxiliar2 [set aux-link intensidade] set residuos-trocados residuos-trocados + aux-link ] ] ] if link auxiliar2 auxiliar != nobody [ ask link auxiliar2 auxiliar [if color = green [ ask link auxiliar2 auxiliar [set aux-link intensidade] set residuos-trocados residuos-trocados + aux-link ] ] ] set auxiliar2 auxiliar2 + 1 ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Auxiliar para Limitar a Absorção de Resíduos;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to auxiliar-absorcao-residuos set auxiliar6 2 while [auxiliar6 <= contador-empresas + 1] [ if turtle auxiliar6 != nobody[ ask turtle auxiliar6 [set residuo-absorvido 0] ] set auxiliar6 auxiliar6 + 1 ] set auxiliar6 2 while [auxiliar6 <= contador-empresas + 1] [ set auxiliar7 2 while [auxiliar7 <= contador-empresas + 1] [ if (turtle auxiliar6 != nobody) and (turtle auxiliar7 != nobody) and (turtle auxiliar6 != turtle auxiliar7) and (link auxiliar7 auxiliar6 != nobody) [ ask link auxiliar7 auxiliar6 [set aux-link9 intensidade] ask turtle auxiliar6 [set residuo-absorvido residuo-absorvido + aux-link9] ] set auxiliar7 auxiliar7 + 1 ] set auxiliar6 auxiliar6 + 1 ] calculo-producao-com-residuo-e-sem-residuo ; A partir daqui calcula a quantidade absorvida de cada tipo de resíduo que a empresa pode usar set auxiliar6 2 while [auxiliar6 <= contador-empresas + 1] [ if turtle auxiliar6 != nobody [ ask turtle auxiliar6 [set residuo-absorvidoA 0 set residuo-absorvidoB 0 set residuo-absorvidoC 0 set residuo-absorvidoD 0 set residuo-absorvidoE 0] ] set auxiliar6 auxiliar6 + 1 ] set auxiliar6 2 while [auxiliar6 <= contador-empresas + 1] [ set auxiliar7 2 set aux-link11 0 set aux-link12 0 while [auxiliar7 <= contador-empresas + 1] [ if (turtle auxiliar6 != nobody) and (turtle auxiliar7 != nobody) and (turtle auxiliar6 != turtle auxiliar7) and (link auxiliar7 auxiliar6 != nobody) [ ask link auxiliar7 auxiliar6 [set aux-link11 tipo-residuo set aux-link12 intensidade] if aux-link11 = "A" [ ask turtle auxiliar6 [set residuo-absorvidoA residuo-absorvidoA + aux-link12]] if aux-link11 = "B" [ ask turtle auxiliar6 [set residuo-absorvidoB residuo-absorvidoB + aux-link12]] if aux-link11 = "C" [ ask turtle auxiliar6 [set residuo-absorvidoC residuo-absorvidoC + aux-link12]] if aux-link11 = "D" [ ask turtle auxiliar6 [set residuo-absorvidoD residuo-absorvidoD + aux-link12]] if aux-link11 = "E" [ ask turtle auxiliar6 [set residuo-absorvidoE residuo-absorvidoE + aux-link12]] ] set auxiliar7 auxiliar7 + 1 ] set auxiliar6 auxiliar6 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Entrada de Nova Empresa;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to entrada-de-nova-empresa if probability-of-entry-of-a-new-company - 1 >= random 100 [ create-turtles 1 [ set shape "factory" set size 2 setxy random-xcor random-ycor if xcor > 10 [set xcor xcor - 7] if ycor > 10 [set ycor ycor - 1] if xcor < -10 [set xcor xcor + 1] if ycor < -10 [set ycor ycor + 1] set tipo-produto (random 5) + 1 if tipo-produto = 1 [set color 15 set tipo-residuo-gerado "A" set tipo-residuo-usado1 "B" set tipo-residuo-usado2 0 set tipo-residuo-usado3 0 set tipo-residuo-usado4 0 set tipo-residuo-usado5 0 set tipo-produto-insumo 4 set tipo-material-virgem "I"] if tipo-produto = 2 [set color 25 set tipo-residuo-gerado "B" set tipo-residuo-usado1 "C" set tipo-residuo-usado2 "A" set tipo-residuo-usado3 "E" set tipo-residuo-usado4 0 set tipo-residuo-usado5 0 set tipo-produto-insumo 5 set tipo-material-virgem "II"] if tipo-produto = 3 [set color 35 set tipo-residuo-gerado "C" set tipo-residuo-usado1 "D" set tipo-residuo-usado2 "A" set tipo-residuo-usado3 0 set tipo-residuo-usado4 0 set tipo-residuo-usado5 0 set tipo-produto-insumo 1 set tipo-material-virgem "III"] if tipo-produto = 4 [set color 45 set tipo-residuo-gerado "D" set tipo-residuo-usado1 "E" set tipo-residuo-usado2 "A" set tipo-residuo-usado3 0 set tipo-residuo-usado4 0 set tipo-residuo-usado5 0 set tipo-produto-insumo 2 set tipo-material-virgem "IV"] if tipo-produto = 5 [set color 55 set tipo-residuo-gerado "E" set tipo-residuo-usado1 "A" set tipo-residuo-usado2 0 set tipo-residuo-usado3 0 set tipo-residuo-usado4 0 set tipo-residuo-usado5 0 set tipo-produto-insumo 3 set tipo-material-virgem "V"] set tempo-no-parque 0 set produto-produzido 300 ; Produção padrão para entrada no parque if tipo-produto = 1 [set capacidade-absorcao-residuo (produto-produzido * 1.2)] if tipo-produto = 2 [set capacidade-absorcao-residuo (produto-produzido * 1.3)] if tipo-produto = 3 [set capacidade-absorcao-residuo (produto-produzido * 1.2)] if tipo-produto = 4 [set capacidade-absorcao-residuo (produto-produzido * 1.5)] if tipo-produto = 5 [set capacidade-absorcao-residuo (produto-produzido * 1.4)] create-link-to turtle 0 [set color red set intensidade 30] ; O VALOR AQUI É 30 PORQUE É DEPENDENTE DO PRODUTO-PRODUZIDO. A CONTA É (PRODUTO-PRODUZIDO * 0.1) ] set contador-empresas contador-empresas + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;; ;;;Saída de Empresas;;; ;;;;;;;;;;;;;;;;;;;;;;; to saida-de-empresas set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if probability-of-exit-of-a-company - 1 >= random 100 and turtle auxiliar != nobody[ ask turtle auxiliar [if tempo-no-parque > 0[ set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ if (turtle auxiliar2 != nobody) and (turtle auxiliar != turtle auxiliar2) and (link auxiliar2 auxiliar != nobody)[ ask link auxiliar2 auxiliar [set aux-link intensidade] ifelse link auxiliar2 0 != nobody [ask link auxiliar2 0 [set intensidade intensidade + aux-link]] [ask turtle auxiliar2 [create-link-to turtle 0 [set intensidade aux-link set color red]]] ] set auxiliar2 auxiliar2 + 1 ] ask turtle auxiliar [die] ] ] ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;; ;;;Novas Conexões;;; ;;;;;;;;;;;;;;;;;;;; to criar-conexao ask links [set tempo-existencia tempo-existencia + 1] set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 2 while [auxiliar3 <= contador-empresas + 1] [ if (turtle auxiliar2 != nobody) and (turtle auxiliar3 != nobody) and (turtle auxiliar2 != turtle auxiliar3) and (link auxiliar2 auxiliar3 = nobody) and (link auxiliar2 0 != nobody) and (probability-of-creating-connection - 1 >= random 100) [ ask turtle auxiliar2 [set auxiliar10 tipo-residuo-gerado] ask turtle auxiliar3 [set auxiliar11 tipo-residuo-usado1] ask turtle auxiliar3 [set auxiliar12 tipo-residuo-usado2] ask turtle auxiliar3 [set auxiliar13 tipo-residuo-usado3] ask turtle auxiliar3 [set auxiliar14 tipo-residuo-usado4] ask turtle auxiliar3 [set auxiliar15 tipo-residuo-usado5] if (auxiliar10 = auxiliar11 or auxiliar10 = auxiliar12 or auxiliar10 = auxiliar13 or auxiliar10 = auxiliar14 or auxiliar10 = auxiliar15 ) [ ask link auxiliar2 0 [ ifelse intensidade >= 1 [ ask turtle auxiliar3 [ifelse capacidade-absorcao-residuo - residuo-absorvido >= 1 [ ask link auxiliar2 0 [set intensidade intensidade - 1] ask turtle auxiliar2 [create-link-to turtle auxiliar3] ask turtle auxiliar2 [set auxiliar10 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [set tipo-residuo auxiliar10 set color green set intensidade 1 set tempo-existencia 1]] [ ask turtle auxiliar3 [set aux-link capacidade-absorcao-residuo - residuo-absorvido] ask link auxiliar2 0 [set intensidade intensidade - aux-link] ask turtle auxiliar2 [create-link-to turtle auxiliar3] ask turtle auxiliar2 [set auxiliar10 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [set tipo-residuo auxiliar10 set color green set intensidade aux-link set tempo-existencia 1] ] ] ] [ ask link auxiliar2 0 [set aux-link6 intensidade] ask turtle auxiliar3 [ifelse capacidade-absorcao-residuo - residuo-absorvido >= aux-link6 [ ask turtle auxiliar2 [create-link-to turtle auxiliar3] ask turtle auxiliar2 [set auxiliar10 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [set tipo-residuo auxiliar10 set color green set intensidade aux-link6 set tempo-existencia 1] ask link auxiliar2 0 [die] ] [ ask turtle auxiliar3 [set aux-link capacidade-absorcao-residuo - residuo-absorvido] ask turtle auxiliar2 [create-link-to turtle auxiliar3] ask turtle auxiliar2 [set auxiliar10 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [set tipo-residuo auxiliar10 set color green set intensidade aux-link set tempo-existencia 1] ask link auxiliar2 0 [set intensidade intensidade - aux-link] ] ] ] ] ] ] auxiliar-absorcao-residuos ; Atualiza o residuo-absorvido das empresas set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Intensidade da Conexão Aumentada;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to intensidade-conexao-aumentada set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 2 while [auxiliar3 <= contador-empresas + 1] [ set aux-link 0 set auxiliar4 0 while [auxiliar4 <= contador-empresas + 1] [ if (auxiliar2 != auxiliar4) and (link auxiliar2 auxiliar4 != nobody) [ ask link auxiliar2 auxiliar4 [set aux-link aux-link + intensidade] ] set auxiliar4 auxiliar4 + 1 ] if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask turtle auxiliar3 [set aux-link10 capacidade-absorcao-residuo - residuo-absorvido] ; Calcula e transfere para aux-link10 a quantidade de resíduos que a turtle auxiliar3 pode receber a mais ask link auxiliar2 auxiliar3 [if tempo-existencia > 1 [ if (probability-of-increasing-connection-intensity - 1 >= random 100)[ if link auxiliar2 0 != nobody [ ask turtle auxiliar2 [set aux-link2 residuo-gerado] ifelse link auxiliar2 0 != nobody [ask link auxiliar2 0 [set aux-link3 intensidade]] [set aux-link3 0] ask link auxiliar2 auxiliar3 [ ifelse (intensidade * intensity-variation-step - intensidade <= aux-link3) [ ask link auxiliar2 auxiliar3 [ifelse aux-link10 >= intensidade * intensity-variation-step - intensidade [ ask link auxiliar2 auxiliar3 [set aux-link4 intensidade * intensity-variation-step - intensidade] ask link auxiliar2 auxiliar3 [set intensidade intensidade * intensity-variation-step] ask link auxiliar2 0 [set intensidade intensidade - aux-link4] ask link auxiliar2 0 [if intensidade <= 0 [ask link auxiliar2 0 [die]]] ] [ ask link auxiliar2 auxiliar3 [set intensidade intensidade + aux-link10] ask link auxiliar2 0 [set intensidade intensidade - aux-link10] ask link auxiliar2 0 [if intensidade <= 0 [ask link auxiliar2 0 [die]]] ] ] ] [if link auxiliar2 0 != nobody [ ask link auxiliar2 auxiliar3 [ifelse aux-link10 >= aux-link3 [ ask link auxiliar2 auxiliar3 [set intensidade intensidade + aux-link3] ask link auxiliar2 0 [die] ] [ ask link auxiliar2 auxiliar3 [set intensidade intensidade + aux-link10] ask link auxiliar2 0 [set intensidade intensidade - aux-link10] ] ] ] ] ] ] ] ] ] ] auxiliar-absorcao-residuos ; Atualiza o residuo-absorvido das empresas set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Intensidade da Conexão Diminuida;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to intensidade-conexao-diminuida set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 2 while [auxiliar3 <= contador-empresas + 1] [ set aux-link 0 set auxiliar4 0 while [auxiliar4 <= contador-empresas + 1] [ if (auxiliar2 != auxiliar4) and (link auxiliar2 auxiliar4 != nobody) [ ask link auxiliar2 auxiliar4 [set aux-link aux-link + intensidade] ] set auxiliar4 auxiliar4 + 1 ] if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask turtle auxiliar3 [set aux-link10 capacidade-absorcao-residuo - residuo-absorvido] ; Calcula e transfere para aux-link10 a quantidade de resíduos que a turtle auxiliar3 pode receber a mais ask link auxiliar2 auxiliar3 [if tempo-existencia > 1 [ if (probability-of-decreasing-connection-intensity - 1 >= random 100)[ ask link auxiliar2 auxiliar3 [set aux-link8 intensidade] ask link auxiliar2 auxiliar3 [set aux-link5 (intensidade - (intensidade / intensity-variation-step))] ask link auxiliar2 auxiliar3 [set intensidade (intensidade / intensity-variation-step)] ask link auxiliar2 auxiliar3 [if intensidade < 1 [set aux-link5 aux-link8]] ifelse link auxiliar2 0 != nobody [ ask link auxiliar2 0 [set intensidade intensidade + aux-link5]] [ask turtle auxiliar2 [create-link-to turtle 0 [set intensidade aux-link5 set color red]]] ask link auxiliar2 auxiliar3 [if intensidade < 1 [die]] ] ] ] ] auxiliar-absorcao-residuos ; Atualiza o residuo-absorvido das empresas set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Contagem das Conexões;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; to contar-conexoes set quantidade-conexoes (count links with [color = green] - contador-link) set conexoes-possiveis ((quantidade-empresas * (quantidade-empresas - 1)) / 2) set conexoes-produto (count links with [color = blue]) end ;;;;;;;;;;;;;;;;;;;; ;;;Calcular o ISI;;; ;;;;;;;;;;;;;;;;;;;; to calcular-isi set auxiliar2 0 set numerador 0 set denominador 0 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask turtle auxiliar2 [set auxiliar11 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [ if color = green [ if tipo-residuo = "A" [set numerador numerador + ((0.25 * Legislation-Waste-A) + (0.25 * Class-Waste-A) + (0.25 * Use-Waste-A) + (0.25 * Problems/risks-Waste-A)) * intensidade] if tipo-residuo = "B" [set numerador numerador + ((0.25 * Legislation-Waste-B) + (0.25 * Class-Waste-B) + (0.25 * Use-Waste-B) + (0.25 * Problems/risks-Waste-B)) * intensidade] if tipo-residuo = "C" [set numerador numerador + ((0.25 * Legislation-Waste-C) + (0.25 * Class-Waste-C) + (0.25 * Use-Waste-C) + (0.25 * Problems/risks-Waste-C)) * intensidade] if tipo-residuo = "D" [set numerador numerador + ((0.25 * Legislation-Waste-D) + (0.25 * Class-Waste-D) + (0.25 * Use-Waste-D) + (0.25 * Problems/risks-Waste-D)) * intensidade] if tipo-residuo = "E" [set numerador numerador + ((0.25 * Legislation-Waste-E) + (0.25 * Class-Waste-E) + (0.25 * Use-Waste-E) + (0.25 * Problems/risks-Waste-E)) * intensidade] ] if color = red[ if auxiliar11 = "A" [set denominador denominador + ((0.25 * Legislation-Waste-A) + (0.25 * Class-Waste-A) + (0.25 * 5) + (0.25 * Problems/risks-Waste-A)) * intensidade] if auxiliar11 = "B" [set denominador denominador + ((0.25 * Legislation-Waste-B) + (0.25 * Class-Waste-B) + (0.25 * 5) + (0.25 * Problems/risks-Waste-B)) * intensidade] if auxiliar11 = "C" [set denominador denominador + ((0.25 * Legislation-Waste-C) + (0.25 * Class-Waste-C) + (0.25 * 5) + (0.25 * Problems/risks-Waste-C)) * intensidade] if auxiliar11 = "D" [set denominador denominador + ((0.25 * Legislation-Waste-D) + (0.25 * Class-Waste-D) + (0.25 * 5) + (0.25 * Problems/risks-Waste-D)) * intensidade] if auxiliar11 = "E" [set denominador denominador + ((0.25 * Legislation-Waste-E) + (0.25 * Class-Waste-E) + (0.25 * 5) + (0.25 * Problems/risks-Waste-E)) * intensidade] ] ] ] set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] ;set denominador denominador + (auxiliar-co2 * 1 * 1 * 5 * 1) ; Essa parte considera o CO2 que está sendo emitido na atmosfera. Os números 1, 1, 5 e 1 correspondem ; respectivamente à classificação dos critérios Legislação; Classe; Destinação; Problemas/Riscos. Caso eu ; considere que o CO2 não deve ser inserido no cálculo do ISI, apenas deve excluir essa linha, ou apenas ; inserir o símbbolo ponto e vírgula (;) para desconsiderar a linha. set isi ( numerador / (denominador + 1)) ;;;; A partir daqui ele calcula o ISI de novo, para verificar diferentes valores das avaliações dos critérios set auxiliar2 0 set numerador 0 set denominador 0 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask turtle auxiliar2 [set auxiliar11 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [ if color = green [ if tipo-residuo = "A" [set numerador numerador + ((0.25 * Legislation-Waste-A') + (0.25 * Class-Waste-A') + (0.25 * Use-Waste-A') + (0.25 * Problems/risks-Waste-A')) * intensidade] if tipo-residuo = "B" [set numerador numerador + ((0.25 * Legislation-Waste-B') + (0.25 * Class-Waste-B') + (0.25 * Use-Waste-B') + (0.25 * Problems/risks-Waste-B')) * intensidade] if tipo-residuo = "C" [set numerador numerador + ((0.25 * Legislation-Waste-C') + (0.25 * Class-Waste-C') + (0.25 * Use-Waste-C') + (0.25 * Problems/risks-Waste-C')) * intensidade] if tipo-residuo = "D" [set numerador numerador + ((0.25 * Legislation-Waste-D') + (0.25 * Class-Waste-D') + (0.25 * Use-Waste-D') + (0.25 * Problems/risks-Waste-D')) * intensidade] if tipo-residuo = "E" [set numerador numerador + ((0.25 * Legislation-Waste-E') + (0.25 * Class-Waste-E') + (0.25 * Use-Waste-E') + (0.25 * Problems/risks-Waste-E')) * intensidade] ] if color = red[ if auxiliar11 = "A" [set denominador denominador + ((0.25 * Legislation-Waste-A') + (0.25 * Class-Waste-A') + (0.25 * 5) + (0.25 * Problems/risks-Waste-A')) * intensidade] if auxiliar11 = "B" [set denominador denominador + ((0.25 * Legislation-Waste-B') + (0.25 * Class-Waste-B') + (0.25 * 5) + (0.25 * Problems/risks-Waste-B')) * intensidade] if auxiliar11 = "C" [set denominador denominador + ((0.25 * Legislation-Waste-C') + (0.25 * Class-Waste-C') + (0.25 * 5) + (0.25 * Problems/risks-Waste-C')) * intensidade] if auxiliar11 = "D" [set denominador denominador + ((0.25 * Legislation-Waste-D') + (0.25 * Class-Waste-D') + (0.25 * 5) + (0.25 * Problems/risks-Waste-D')) * intensidade] if auxiliar11 = "E" [set denominador denominador + ((0.25 * Legislation-Waste-E') + (0.25 * Class-Waste-E') + (0.25 * 5) + (0.25 * Problems/risks-Waste-E')) * intensidade] ] ] ] set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] set isi' ( numerador / (denominador + 1)) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálcular Symbiotic Utilization;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calcular-symbiotic-utilization set Potencial-hazard-of-by-product-A Legislation-Waste-A * Class-Waste-A * Problems/risks-Waste-A set Potencial-hazard-of-by-product-B Legislation-Waste-B * Class-Waste-B * Problems/risks-Waste-B set Potencial-hazard-of-by-product-C Legislation-Waste-C * Class-Waste-C * Problems/risks-Waste-C set Potencial-hazard-of-by-product-D Legislation-Waste-D * Class-Waste-D * Problems/risks-Waste-D set Potencial-hazard-of-by-product-E Legislation-Waste-E * Class-Waste-E * Problems/risks-Waste-E set Potencial-hazard-of-by-product-A' Legislation-Waste-A' * Class-Waste-A' * Problems/risks-Waste-A' set Potencial-hazard-of-by-product-B' Legislation-Waste-B' * Class-Waste-B' * Problems/risks-Waste-B' set Potencial-hazard-of-by-product-C' Legislation-Waste-C' * Class-Waste-C' * Problems/risks-Waste-C' set Potencial-hazard-of-by-product-D' Legislation-Waste-D' * Class-Waste-D' * Problems/risks-Waste-D' set Potencial-hazard-of-by-product-E' Legislation-Waste-E' * Class-Waste-E' * Problems/risks-Waste-E' set auxiliar2 0 set symbiotic-utilization 0 set symbiotic-utilization' 0 while [auxiliar2 <= contador-empresas + 1] [ set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask turtle auxiliar2 [set auxiliar11 tipo-residuo-gerado] ask link auxiliar2 auxiliar3 [ if color = green [ if tipo-residuo = "A" [set symbiotic-utilization symbiotic-utilization + Potencial-hazard-of-by-product-A * intensidade] if tipo-residuo = "B" [set symbiotic-utilization symbiotic-utilization + Potencial-hazard-of-by-product-B * intensidade] if tipo-residuo = "C" [set symbiotic-utilization symbiotic-utilization + Potencial-hazard-of-by-product-C * intensidade] if tipo-residuo = "D" [set symbiotic-utilization symbiotic-utilization + Potencial-hazard-of-by-product-D * intensidade] if tipo-residuo = "E" [set symbiotic-utilization symbiotic-utilization + Potencial-hazard-of-by-product-E * intensidade] if tipo-residuo = "A" [set symbiotic-utilization' symbiotic-utilization' + Potencial-hazard-of-by-product-A' * intensidade] if tipo-residuo = "B" [set symbiotic-utilization' symbiotic-utilization' + Potencial-hazard-of-by-product-B' * intensidade] if tipo-residuo = "C" [set symbiotic-utilization' symbiotic-utilization' + Potencial-hazard-of-by-product-C' * intensidade] if tipo-residuo = "D" [set symbiotic-utilization' symbiotic-utilization' + Potencial-hazard-of-by-product-D' * intensidade] if tipo-residuo = "E" [set symbiotic-utilization' symbiotic-utilization' + Potencial-hazard-of-by-product-E' * intensidade] ] ] ] set auxiliar3 auxiliar3 + 1 ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Incremento da Produção;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; to incremento set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ if (probability-of-increasing-production - 1 >= random 100)[ if turtle auxiliar2 != nobody [ ask turtle auxiliar2 [set aux-link2 residuo-gerado] ; Guarda no aux-link2 a quantidade de residuo gerada antes do incremento ask turtle auxiliar2 [set produto-produzido produto-produzido * increment-production] ; MUDEI AQUI PARA O INCREMENTO SER EM FUNÇÃO DO PRODUTO-PRODUZIDO ask turtle auxiliar2 [if tipo-produto = 1 [set capacidade-absorcao-residuo (produto-produzido * 1.2)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 2 [set capacidade-absorcao-residuo (produto-produzido * 1.3)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 3 [set capacidade-absorcao-residuo (produto-produzido * 1.2)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 4 [set capacidade-absorcao-residuo (produto-produzido * 1.5)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 5 [set capacidade-absorcao-residuo (produto-produzido * 1.4)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo ask turtle auxiliar2 [set aux-link3 residuo-gerado] ; Guarda no aux-link3 a quantidade de residuo gerada depois do incremento set aux-link7 (aux-link3 - aux-link2) ; Guarda no aux-link7 a diferença ante e depois do incremento ifelse link auxiliar2 0 != nobody [ ask link auxiliar2 0 [set intensidade intensidade + aux-link7] ] [ ask turtle auxiliar2 [create-link-to turtle 0 [set color red set intensidade aux-link7]] ] ] ] auxiliar-absorcao-residuos set auxiliar2 auxiliar2 + 1 ] set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ if (probability-of-decreasing-production - 1 >= random 100) [ if turtle auxiliar2 != nobody [ ask turtle auxiliar2 [set aux-link2 residuo-gerado] ; Guarda no aux-link2 a quantidade de residuo gerada antes de diminuir a produção ask turtle auxiliar2 [set produto-produzido produto-produzido / increment-production] ; MUDEI AQUI PARA O INCREMENTO SER EM FUNÇÃO DO PRODUTO-PRODUZIDO ask turtle auxiliar2 [if tipo-produto = 1 [set capacidade-absorcao-residuo (produto-produzido / 1.2)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 2 [set capacidade-absorcao-residuo (produto-produzido / 1.3)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 3 [set capacidade-absorcao-residuo (produto-produzido / 1.2)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 4 [set capacidade-absorcao-residuo (produto-produzido / 1.5)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO ask turtle auxiliar2 [if tipo-produto = 5 [set capacidade-absorcao-residuo (produto-produzido / 1.4)]] ; ADICIONEI ESSA LINHA PARA CALCULAR A CAPACIDADE-ABSROCAO-RESIDUO auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo ask turtle auxiliar2 [set aux-link3 residuo-gerado] ; Guarda no aux-link3 a quantidade de residuo gerada depois de dimnuir a produção set aux-link7 (aux-link2 - aux-link3) ; Guarda no aux-link7 a diferença ante e depois de diminuir a produção ifelse link auxiliar2 0 != nobody [ ask link auxiliar2 0 [ifelse intensidade >= aux-link7 [ ask link auxiliar2 0 [set intensidade intensidade - aux-link7] set aux-link7 0 auxiliar-absorcao-residuos set auxiliar4 contador-empresas + 1 ask turtle auxiliar2 [set aux-link8 residuo-absorvido - capacidade-absorcao-residuo] while [auxiliar4 >= 2 and aux-link8 > 0] [ if (auxiliar2 != auxiliar4) and (link auxiliar4 auxiliar2 != nobody) [ ask link auxiliar4 auxiliar2 [ifelse intensidade >= aux-link8 [ ask link auxiliar4 auxiliar2 [set intensidade intensidade - aux-link8] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link8]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link8 set color red]]] set aux-link8 0 ask link auxiliar4 auxiliar2 [if intensidade = 0 [die]]] [ ask link auxiliar4 auxiliar2 [set aux-link9 intensidade] ask link auxiliar4 auxiliar2 [set aux-link8 aux-link8 - intensidade] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link9]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link9 set color red]]] ask link auxiliar4 auxiliar2 [die] ] ] ] auxiliar-absorcao-residuos set auxiliar4 auxiliar4 - 1 ] ask link auxiliar2 0 [if intensidade = 0 [die]]] [ask link auxiliar2 0 [set aux-link7 aux-link7 - intensidade] set auxiliar3 contador-empresas + 1 while [auxiliar3 >= 2 and aux-link7 > 0] [ if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask link auxiliar2 auxiliar3 [ifelse intensidade >= aux-link7 [ ask link auxiliar2 auxiliar3 [set intensidade intensidade - aux-link7] set aux-link7 0 ask link auxiliar2 auxiliar3 [if intensidade = 0 [die]]] [ask link auxiliar2 auxiliar3 [set aux-link7 aux-link7 - intensidade] ask link auxiliar2 auxiliar3 [die] ] ] ] auxiliar-absorcao-residuos set auxiliar3 auxiliar3 - 1 ] set auxiliar4 contador-empresas + 1 ask turtle auxiliar2 [set aux-link8 residuo-absorvido - capacidade-absorcao-residuo] while [auxiliar4 >= 2 and aux-link8 > 0] [ if (auxiliar2 != auxiliar4) and (link auxiliar4 auxiliar2 != nobody) [ ask link auxiliar4 auxiliar2 [ifelse intensidade >= aux-link8 [ ask link auxiliar4 auxiliar2 [set intensidade intensidade - aux-link8] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link8]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link8 set color red]]] set aux-link8 0 ask link auxiliar4 auxiliar2 [if intensidade = 0 [die]]] [ ask link auxiliar4 auxiliar2 [set aux-link9 intensidade] ask link auxiliar4 auxiliar2 [set aux-link8 aux-link8 - intensidade] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link9]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link9 set color red]]] ask link auxiliar4 auxiliar2 [die] ] ] ] auxiliar-absorcao-residuos set auxiliar4 auxiliar4 - 1 ] ask link auxiliar2 0 [die] ] ] ] [set auxiliar3 contador-empresas + 1 while [auxiliar3 >= 2 and aux-link7 > 0] [ if (auxiliar2 != auxiliar3) and (link auxiliar2 auxiliar3 != nobody) [ ask link auxiliar2 auxiliar3 [ifelse intensidade >= aux-link7 [ ask link auxiliar2 auxiliar3 [set intensidade intensidade - aux-link7] set aux-link7 0 ask link auxiliar2 auxiliar3 [if intensidade = 0 [die]]] [ask link auxiliar2 auxiliar3 [set aux-link7 aux-link7 - intensidade] ask link auxiliar2 auxiliar3 [die] ] ] ] auxiliar-absorcao-residuos set auxiliar3 auxiliar3 - 1 ] set auxiliar4 contador-empresas + 1 ask turtle auxiliar2 [set aux-link8 residuo-absorvido - capacidade-absorcao-residuo] while [auxiliar4 >= 2 and aux-link8 > 0] [ if (auxiliar2 != auxiliar4) and (link auxiliar4 auxiliar2 != nobody) [ ask link auxiliar4 auxiliar2 [ifelse intensidade >= aux-link8 [ ask link auxiliar4 auxiliar2 [set intensidade intensidade - aux-link8] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link8]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link8 set color red]]] set aux-link8 0 ask link auxiliar4 auxiliar2 [if intensidade = 0 [die]]] [ ask link auxiliar4 auxiliar2 [set aux-link9 intensidade] ask link auxiliar4 auxiliar2 [set aux-link8 aux-link8 - intensidade] ifelse link auxiliar4 0 != nobody [ ask link auxiliar4 0 [set intensidade intensidade + aux-link9]] [ask turtle auxiliar4 [create-link-to turtle 0 [set intensidade aux-link9 set color red]]] ask link auxiliar4 auxiliar2 [die] ] ] ] auxiliar-absorcao-residuos set auxiliar4 auxiliar4 - 1 ] ] ] ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Mostra a Intensidade;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; to mostra-intensidade clear-output set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ifelse link auxiliar 0 != nobody [ask link auxiliar 0 [set aux-link intensidade]] [set aux-link 0] output-type "Company " output-type auxiliar output-type " " output-show " " output-type "Time in park = " ask turtle auxiliar [output-type tempo-no-parque] output-type " " output-show " " output-type "Type of final product produced = " ask turtle auxiliar [output-type tipo-produto] output-type " " output-show " " output-type "Amount of final product produced (ton) = " ask turtle auxiliar [output-type produto-produzido] output-type " " output-show " " output-type "Type of byproduct generated = " ask turtle auxiliar [output-type tipo-residuo-gerado] output-type " " output-show " " output-type "Amount of byproduct generated (ton) = " ask turtle auxiliar [output-type residuo-gerado] output-type " " output-show " " output-type "Amount of byproduct sent to landfill (ton) = " ask turtle auxiliar [output-type aux-link] output-type " " output-show " " output-type "Amount of CO2 generated (ton) = " ask turtle auxiliar [output-type co2] output-type " " output-show " " output-type "Type of virgin raw material used as input = " ask turtle auxiliar [output-type tipo-material-virgem] output-type " " output-show " " output-type "Amount of virgin raw material used (ton) = " ask turtle auxiliar [output-type material-virgem] output-type " " output-show " " output-type "Type of final product used as input = " ask turtle auxiliar [output-type tipo-produto-insumo] output-type " " output-show " " output-type "Amount of final product used as input (ton) = " ask turtle auxiliar [output-type produto-insumo] output-type " " output-show " " output-type "Amount of energy used (kWh) = " ask turtle auxiliar [output-type energia] output-type " " output-show " " output-type "Type of byproduct used as input = " ask turtle auxiliar [output-type tipo-residuo-usado1] ask turtle auxiliar [if tipo-residuo-usado2 != 0 [ output-type ", " ask turtle auxiliar [output-type tipo-residuo-usado2] ]] ask turtle auxiliar [if tipo-residuo-usado3 != 0 [ output-type ", " ask turtle auxiliar [output-type tipo-residuo-usado3] ]] ask turtle auxiliar [if tipo-residuo-usado4 != 0 [ output-type ", " ask turtle auxiliar [output-type tipo-residuo-usado4] ]] ask turtle auxiliar [if tipo-residuo-usado5 != 0 [ output-type ", " ask turtle auxiliar [output-type tipo-residuo-usado5] ]] output-type " " output-show " " output-type "Capacity of byproduct absorption (ton) = " ask turtle auxiliar [output-type capacidade-absorcao-residuo] output-type " " output-show " " output-type "Amount of byproduct used as input (ton) = " ask turtle auxiliar [output-type residuo-absorvido] output-type " " output-show " " output-type "Received with sale of byproduct (US$) = " ask turtle auxiliar [output-type recebido-venda-residuo] output-type " " output-show " " output-type "Saved with production with byproduct (US$) = " ask turtle auxiliar [output-type economizado-compra-residuo] output-type " " output-show " " output-type "Spent (US$) = " ask turtle auxiliar [output-type custo] output-type " " output-show " " output-type "Earned (US$) = " ask turtle auxiliar [output-type receita] output-type " " output-show " " output-type "Profit (US$) = " ask turtle auxiliar [output-type lucro] output-type " " output-show " " output-type "------------------------------------------------------------------------------------------- " output-show " " ] set auxiliar auxiliar + 1 ] output-type "INTENSITY OF THE LINKS OF BYPRODUCT" output-type " " output-show " " set auxiliar2 0 while [auxiliar2 <= contador-empresas + 1] [ if turtle auxiliar2 != nobody [ set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if link auxiliar2 auxiliar3 != nobody [ ask link auxiliar2 auxiliar3 [if color = green or color = red [ output-type "Intensity of the link " output-type auxiliar2 output-type " " output-type auxiliar3 output-type " (ton) = " ask link auxiliar2 auxiliar3 [output-type intensidade] output-type " " output-show " " ] ] ] set auxiliar3 auxiliar3 + 1 ] ] set auxiliar2 auxiliar2 + 1 ] output-type "------------------------------------------------------------------------------------------- " output-show " " output-type "INTENSITY OF THE LINKS OF FINAL PRODUCT" output-type " " output-show " " set auxiliar2 0 while [auxiliar2 <= contador-empresas + 1] [ if turtle auxiliar2 != nobody [ set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if link auxiliar2 auxiliar3 != nobody [ ask link auxiliar2 auxiliar3 [if color = blue [ output-type "Intensity of the link " output-type auxiliar2 output-type " " output-type auxiliar3 output-type " (ton) = " ask link auxiliar2 auxiliar3 [output-type intensidade] output-type " " output-show " " ] ] ] set auxiliar3 auxiliar3 + 1 ] ] set auxiliar2 auxiliar2 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Arumar os Negativos;;; ;;;;;;;;;;;;;;;;;;;;;;;;; to arrumar-negativos set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ set auxiliar2 0 while [auxiliar2 <= contador-empresas + 1] [ if (link auxiliar auxiliar2 != nobody) [ ask link auxiliar auxiliar2 [if intensidade < 0 [ set aux-link (- intensidade) set aux-link2 aux-link set auxiliar3 0 while [auxiliar3 <= contador-empresas + 1] [ if link auxiliar auxiliar3 != nobody[ ask link auxiliar auxiliar3 [if intensidade > aux-link2 and aux-link2 > 0 [ ask link auxiliar auxiliar3 [set intensidade intensidade - aux-link2] set aux-link2 0 ] ] ] if link auxiliar3 auxiliar2 != nobody [ ask link auxiliar3 auxiliar2 [if intensidade > aux-link and aux-link > 0 [ ask link auxiliar3 auxiliar2 [set intensidade intensidade - aux-link] set aux-link 0 ask link auxiliar auxiliar2 [die] ] ] ] set auxiliar3 auxiliar3 + 1 ] ] ] ] set auxiliar2 auxiliar2 + 1 ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo Indicador de Eco-Connectance;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calcular-eco-connectance ifelse conexoes-possiveis = 0 [set eco-connectance 0] [set eco-connectance (quantidade-conexoes / conexoes-possiveis)] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo Indicador de Grau de Reciclagem;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calcular-grau-reciclagem set aux-grau-reciclagem 0 set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ set auxiliar2 auxiliar + 1 while [auxiliar2 <= contador-empresas + 1] [ set aux-link 0 if link auxiliar auxiliar2 != nobody [ ask link auxiliar auxiliar2 [if color = green [ ask link auxiliar auxiliar2 [set aux-link intensidade] ] ] ] if link auxiliar2 auxiliar != nobody [ ask link auxiliar2 auxiliar [if color = green [ ask link auxiliar2 auxiliar [set aux-link aux-link + intensidade] ] ] ] if turtle auxiliar != nobody and turtle auxiliar2 != nobody [ ask turtle auxiliar [set auxiliar3 residuo-gerado] ask turtle auxiliar2 [set auxiliar4 residuo-gerado] if link auxiliar auxiliar2 != nobody or link auxiliar2 auxiliar != nobody [ set aux-grau-reciclagem aux-grau-reciclagem + (aux-link / (auxiliar3 + auxiliar4)) ] ] set auxiliar2 auxiliar2 + 1 ] set auxiliar auxiliar + 1 ] ifelse quantidade-conexoes = 0 [set grau-reciclagem 0] [set grau-reciclagem eco-connectance * (aux-grau-reciclagem / quantidade-conexoes)] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo do Industrial Symbiosis Index e do Link Density;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calcular-industrial-symbiosis-index-and-link-density ifelse (quantidade-conexoes + conexoes-produto = 0) [set industrial-symbiosis-index 0] [set industrial-symbiosis-index (quantidade-conexoes) / (quantidade-conexoes + conexoes-produto)] ifelse (quantidade-empresas = 0) [set link-density 0] [set link-density (quantidade-conexoes + conexoes-produto) / quantidade-empresas] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Criar links de produtos;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to criar-link-de-produto set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ set auxiliar2 2 while [auxiliar2 <= contador-empresas + 1] [ if turtle auxiliar2 != nobody [ ask turtle auxiliar [set auxiliar3 tipo-produto-insumo] ask turtle auxiliar2 [set auxiliar4 tipo-produto] if auxiliar3 = auxiliar4 [ ask turtle auxiliar [set auxiliar5 produto-insumo] ask turtle auxiliar2 [set auxiliar6 produto-produzido - produto-enviado] ask turtle auxiliar [set auxiliar7 produto-insumo-interno] if auxiliar7 < auxiliar5 and auxiliar5 <= auxiliar6 and auxiliar5 > 0 [ ask turtle auxiliar2 [create-link-to turtle auxiliar [set intensidade auxiliar5 set color blue]] ask turtle auxiliar2 [set produto-enviado produto-enviado + auxiliar5] ask turtle auxiliar [set produto-insumo-interno produto-insumo-interno + auxiliar5] ] if auxiliar7 < auxiliar5 and auxiliar5 > auxiliar6 and auxiliar6 > 0 [ ask turtle auxiliar2 [create-link-to turtle auxiliar [set intensidade auxiliar6 set color blue]] ask turtle auxiliar2 [set produto-enviado produto-enviado + auxiliar6] ask turtle auxiliar [set produto-insumo-interno produto-insumo-interno + auxiliar6] ] ] ] set auxiliar2 auxiliar2 + 1 ] ] set auxiliar auxiliar + 1 ] set auxiliar8 2 while [auxiliar8 <= contador-empresas + 1] [ if turtle auxiliar8 != nobody [ ask turtle auxiliar8 [set produto-insumo-externo produto-insumo - produto-insumo-interno] ] set auxiliar8 auxiliar8 + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Auxiliar de link de produto;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to auxiliar-link-de-produto ask links [if color = blue [die]] set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [ set produto-insumo-interno 0 set produto-insumo-externo 0 set produto-enviado 0 ] ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Produção com resíduo e sem resíduo;;; COLOQUEI ESSA FUNÇAO DENTRO DA FUNÇÃO "AUXILIAR PARA LIMITAR A ABSORÇÃO DE RESÍDUOS" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-producao-com-residuo-e-sem-residuo set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [if tipo-produto = 1 [ ask turtle auxiliar [set produzido-com-residuo (residuo-absorvido / 1.2)] ask turtle auxiliar [set energia (produzido-com-residuo * 800)] ask turtle auxiliar [set co2 (produzido-com-residuo * 0.1)] ask turtle auxiliar [set residuo-gerado (produzido-com-residuo * 0.1)] ask turtle auxiliar [set produzido-sem-residuo (produto-produzido - produzido-com-residuo)] ask turtle auxiliar [set energia (energia + (produzido-sem-residuo * 15000))] ask turtle auxiliar [set co2 (co2 + (produzido-sem-residuo * 1.2))] ask turtle auxiliar [set residuo-gerado (residuo-gerado + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set material-virgem (produzido-sem-residuo * 2)] ask turtle auxiliar [set produto-insumo (produzido-sem-residuo * 0.3)] ] ] ask turtle auxiliar [if tipo-produto = 2 [ ask turtle auxiliar [set produzido-com-residuo (residuo-absorvido / 1.3)] ask turtle auxiliar [set energia (produzido-com-residuo * 1200)] ask turtle auxiliar [set co2 (produzido-com-residuo * 0.2)] ask turtle auxiliar [set residuo-gerado (produzido-com-residuo * 0.1)] ask turtle auxiliar [set produzido-sem-residuo (produto-produzido - produzido-com-residuo)] ask turtle auxiliar [set energia (energia + (produzido-sem-residuo * 12000))] ask turtle auxiliar [set co2 (co2 + (produzido-sem-residuo * 1.4))] ask turtle auxiliar [set residuo-gerado (residuo-gerado + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set material-virgem (produzido-sem-residuo * 2)] ask turtle auxiliar [set produto-insumo (produzido-sem-residuo * 0.5)] ] ] ask turtle auxiliar [if tipo-produto = 3 [ ask turtle auxiliar [set produzido-com-residuo (residuo-absorvido / 1.2)] ask turtle auxiliar [set energia (produzido-com-residuo * 6600)] ask turtle auxiliar [set co2 (produzido-com-residuo * 0.1)] ask turtle auxiliar [set residuo-gerado (produzido-com-residuo * 0.1)] ask turtle auxiliar [set produzido-sem-residuo (produto-produzido - produzido-com-residuo)] ask turtle auxiliar [set energia (energia + (produzido-sem-residuo * 1800))] ask turtle auxiliar [set co2 (co2 + (produzido-sem-residuo * 2.5))] ask turtle auxiliar [set residuo-gerado (residuo-gerado + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set material-virgem (produzido-sem-residuo * 3)] ask turtle auxiliar [set produto-insumo (produzido-sem-residuo * 0.6)] ] ] ask turtle auxiliar [if tipo-produto = 4 [ ask turtle auxiliar [set produzido-com-residuo (residuo-absorvido / 1.5)] ask turtle auxiliar [set energia (produzido-com-residuo * 1000)] ask turtle auxiliar [set co2 (produzido-com-residuo * 0.4)] ask turtle auxiliar [set residuo-gerado (produzido-com-residuo * 0.1)] ask turtle auxiliar [set produzido-sem-residuo (produto-produzido - produzido-com-residuo)] ask turtle auxiliar [set energia (energia + (produzido-sem-residuo * 5000))] ask turtle auxiliar [set co2 (co2 + (produzido-sem-residuo * 3.3))] ask turtle auxiliar [set residuo-gerado (residuo-gerado + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set material-virgem (produzido-sem-residuo * 4)] ask turtle auxiliar [set produto-insumo (produzido-sem-residuo * 0.4)] ] ] ask turtle auxiliar [if tipo-produto = 5 [ ask turtle auxiliar [set produzido-com-residuo (residuo-absorvido / 1.4)] ask turtle auxiliar [set energia (produzido-com-residuo * 1000)] ask turtle auxiliar [set co2 (produzido-com-residuo * 0.3)] ask turtle auxiliar [set residuo-gerado (produzido-com-residuo * 0.1)] ask turtle auxiliar [set produzido-sem-residuo (produto-produzido - produzido-com-residuo)] ask turtle auxiliar [set energia (energia + (produzido-sem-residuo * 1000))] ask turtle auxiliar [set co2 (co2 + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set residuo-gerado (residuo-gerado + (produzido-sem-residuo * 0.1))] ask turtle auxiliar [set material-virgem (produzido-sem-residuo * 1)] ask turtle auxiliar [set produto-insumo (produzido-sem-residuo * 0.2)] ] ] ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo financeiro;;; ;;;;;;;;;;;;;;;;;;;;;;;; to calculo-financeiro set auxiliar 2 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ifelse link auxiliar 0 != nobody [ask link auxiliar 0 [set aux-link intensidade]] [set aux-link 0] ask turtle auxiliar [set recebido-venda-residuo (residuo-gerado - aux-link) * valor-residuo] ask turtle auxiliar [set receita (produto-produzido * valor-produto + recebido-venda-residuo)] ask turtle auxiliar [set custo ((energia * valor-energia) + (produto-insumo * valor-produto) + (material-virgem * valor-material-virgem) + (residuo-absorvido * valor-residuo))] ask turtle auxiliar [set lucro (receita - custo)] ask turtle auxiliar [if tipo-produto = 1 [ set economizado-compra-residuo (produzido-com-residuo * ((15000 * valor-energia + 2 * valor-material-virgem + 0.3 * valor-produto) - (800 * valor-energia + 1.2 * valor-residuo)))]] ask turtle auxiliar [if tipo-produto = 2 [ set economizado-compra-residuo (produzido-com-residuo * ((12000 * valor-energia + 2 * valor-material-virgem + 0.5 * valor-produto) - (1200 * valor-energia + 1.3 * valor-residuo)))]] ask turtle auxiliar [if tipo-produto = 3 [ set economizado-compra-residuo (produzido-com-residuo * ((1800 * valor-energia + 3 * valor-material-virgem + 0.6 * valor-produto) - (6600 * valor-energia + 1.2 * valor-residuo)))]] ask turtle auxiliar [if tipo-produto = 4 [ set economizado-compra-residuo (produzido-com-residuo * ((5000 * valor-energia + 4 * valor-material-virgem + 0.4 * valor-produto) - (1000 * valor-energia + 1.5 * valor-residuo)))]] ask turtle auxiliar [if tipo-produto = 5 [ set economizado-compra-residuo (produzido-com-residuo * ((1000 * valor-energia + 1 * valor-material-virgem + 0.2 * valor-produto) - (1000 * valor-energia + 1.4 * valor-residuo)))]] ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo do indicador Eco-Efficiency;;; OK!!! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-eco-efficiency set auxiliar 2 set numerador 0 set denominador 0 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [set numerador numerador + recebido-venda-residuo + economizado-compra-residuo] ask turtle auxiliar [set denominador denominador + (co2 / 3) + ((energia * energia-tep)/ 3) + ((material-virgem + produto-insumo) / 3)] ; Aqui transformei a energia de kWh para Tonelada Equivalente de Petroleo (tep) ] set auxiliar auxiliar + 1 ] ifelse denominador = 0 [set eco-efficiency 0] [set eco-efficiency (numerador / denominador)] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo de CO2 e de energia;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-co2-energia set auxiliar 2 set auxiliar-co2 0 set auxiliar-energia 0 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [set auxiliar-co2 auxiliar-co2 + co2] ask turtle auxiliar [set auxiliar-energia auxiliar-energia + energia] ] set auxiliar auxiliar + 1 ] end ;;;;;;;;;;;;;;;;;;;;;;; ;;;% of reused waste;;; ;;;;;;;;;;;;;;;;;;;;;;; to calculo-%reused-waste ifelse (residuos-trocados + residuos-descartados) = 0 [set %reused-waste 0] [set %reused-waste ((residuos-trocados / (residuos-trocados + residuos-descartados)) * 100)] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo do indicador Resource Productivity;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-resource-productivity set auxiliar 2 set numerador 0 set denominador 0 set denominador2 0 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [set numerador numerador + lucro] ask turtle auxiliar [set denominador denominador + (material-virgem + produto-insumo)] ask turtle auxiliar [set denominador2 denominador2 + (energia * energia-tep)] ; Aqui transformei a energia de kWh para Tonelada Equivalente de Petroleo (tep) ] set auxiliar auxiliar + 1 ] ifelse denominador = 0 [set resource-productivity-substance 0] [set resource-productivity-substance (numerador / denominador)] ifelse denominador2 = 0 [set resource-productivity-energy 0] [set resource-productivity-energy (numerador / denominador2)] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Cálculo do indicador Environmental Impact;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to calculo-environmental-impact set auxiliar 2 set auxiliar2 0 set ecc 0 set vmfs 0 set ldfs 0 set tfi 0 set ecfi 0 while [auxiliar <= contador-empresas + 1] [ if turtle auxiliar != nobody [ ask turtle auxiliar [set ecc ecc + (residuo-absorvidoA * embodied-carbonA * co2-price) + (residuo-absorvidoB * embodied-carbonB * co2-price) + (residuo-absorvidoC * embodied-carbonC * co2-price) + (residuo-absorvidoD * embodied-carbonD * co2-price) + (residuo-absorvidoE * embodied-carbonE * co2-price) ] ask turtle auxiliar [if tipo-produto = 1 [ set vmfs vmfs + (produzido-com-residuo * ((2 * valor-material-virgem + 0.3 * valor-produto) - (0 * valor-material-virgem + 0 * valor-produto + 1.1 * valor-residuo)))]] ; Coloquei os zeros auqi porque se eu quiser mudar o balanço de massa fica mais facil ask turtle auxiliar [if tipo-produto = 2 [ set vmfs vmfs + (produzido-com-residuo * ((2 * valor-material-virgem + 0.5 * valor-produto) - (0 * valor-material-virgem + 0 * valor-produto + 1.1 * valor-residuo)))]] ; Coloquei os zeros auqi porque se eu quiser mudar o balanço de massa fica mais facil ask turtle auxiliar [if tipo-produto = 3 [ set vmfs vmfs + (produzido-com-residuo * ((3 * valor-material-virgem + 0.6 * valor-produto) - (0 * valor-material-virgem + 0 * valor-produto + 1.1 * valor-residuo)))]] ; Coloquei os zeros auqi porque se eu quiser mudar o balanço de massa fica mais facil ask turtle auxiliar [if tipo-produto = 4 [ set vmfs vmfs + (produzido-com-residuo * ((4 * valor-material-virgem + 0.4 * valor-produto) - (0 * valor-material-virgem + 0 * valor-produto + 1.1 * valor-residuo)))]] ; Coloquei os zeros auqi porque se eu quiser mudar o balanço de massa fica mais facil ask turtle auxiliar [if tipo-produto = 5 [ set vmfs vmfs + (produzido-com-residuo * ((1 * valor-material-virgem + 0.2 * valor-produto) - (0 * valor-material-virgem + 0 * valor-produto + 1.1 * valor-residuo)))]] ; Coloquei os zeros auqi porque se eu quiser mudar o balanço de massa fica mais facil ifelse link auxiliar 0 != nobody [ask link auxiliar 0 [set auxiliar2 intensidade]] [set auxiliar2 0] ask turtle auxiliar [set ldfs ldfs + ((residuo-gerado - auxiliar2) * valor-residuo)] ;O auxiliar2 é a quantidade que está sendo descartada ask turtle auxiliar [if tipo-produto = 1 [ set ecfi ecfi + (produzido-com-residuo * ((800 - 15000) * 0.5 * co2-price)) ]] ;Energia que é economizada, multiplicada pela co2 content (0.5) da energia elétrica, multiplicado pelo co2-price. ask turtle auxiliar [if tipo-produto = 2 [ set ecfi ecfi + (produzido-com-residuo * ((1200 - 12000) * 0.5 * co2-price)) ]] ;Energia que é economizada, multiplicada pela co2 content (0.5) da energia elétrica, multiplicado pelo co2-price. ask turtle auxiliar [if tipo-produto = 3 [ set ecfi ecfi + (produzido-com-residuo * ((6600 - 1800) * 0.5 * co2-price)) ]] ;Energia que é economizada, multiplicada pela co2 content (0.5) da energia elétrica, multiplicado pelo co2-price. ask turtle auxiliar [if tipo-produto = 4 [ set ecfi ecfi + (produzido-com-residuo * ((1000 - 5000) * 0.5 * co2-price)) ]] ;Energia que é economizada, multiplicada pela co2 content (0.5) da energia elétrica, multiplicado pelo co2-price. ask turtle auxiliar [if tipo-produto = 5 [ set ecfi ecfi + (produzido-com-residuo * ((1000 - 1000) * 0.5 * co2-price)) ]] ;Energia que é economizada, multiplicada pela co2 content (0.5) da energia elétrica, multiplicado pelo co2-price. ] set auxiliar auxiliar + 1 ] set environmental-impact ((ecc - vmfs - ldfs + tfi + ecfi) / 5) ; O 5 é a soma dos pesos. Temos pesos igauis para todos os indicadores. end ;;;;;;;;;;;;;;;;;;;;;; ;;;Função Principal;;; ;;;;;;;;;;;;;;;;;;;;;; to go auxiliar-link-de-produto incremento auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo entrada-de-nova-empresa auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo saida-de-empresas auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo criar-conexao auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo intensidade-conexao-aumentada auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo intensidade-conexao-diminuida auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo criar-link-de-produto arrumar-negativos ; Preciso dessa rotina porque o NetLogo me devolve alguns valores negativos elevados a -14 por exemplo. Aqui ele procura os links negativos, elimina eles e acerta as contas ask links [if intensidade = 0 [die]] ; Mata os links que estão com a intensidade = 0 set quantidade-empresas count turtles - 2 ; Conta quantas empresas estão no parque ;ask links with [intensidade < 0 and intensidade > -0.000000000001] [die] contar-conexoes set periodo periodo + 1; Incremento do período (mês, ano, etc.) calculo-financeiro calculo-quantidades calculo-co2-energia calculo-%reused-waste calcular-isi calcular-eco-connectance calcular-grau-reciclagem calcular-symbiotic-utilization calcular-industrial-symbiosis-index-and-link-density calculo-eco-efficiency calculo-resource-productivity calculo-environmental-impact update-plots ask turtles [set tempo-no-parque tempo-no-parque + 1] ; Aumenta o tempo de existência da empresa no parque ;auxiliar-absorcao-residuos ; Atualiza o que cada empresa está absorvendo (ACHO QUE NÃO PRECISA AQUI) mostra-intensidade ;show count links with [intensidade <= 0] ;ask links with [intensidade <= 0] [show intensidade show tempo-existencia] ;ask turtles with [capacidade-absorcao-residuo - residuo-absorvido <= 1.1] [show capacidade-absorcao-residuo - residuo-absorvido] export-interface (word "Period " periodo ".jpg") ; This function saves a print screen of the interface export-output (word "Period " periodo ".txt") ; This function saves a text document of the values of each company and of each link end
There are 7 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
EIPSymb.png | preview | Preview for 'EIPSymb' | over 8 years ago, by Gabriel Couto Mantese | Download |
This model does not have any ancestors.
This model does not have any descendants.