quarta-feira, 8 de julho de 2020

Complexidade de sistemas


Quando um sistema fica mais complexo, ele se torna mais difícil de ser entendido ou fica mais difícil prever suas consequências ou funcionamento.

Há uma diferença entre sistemas complicados e sistemas complexos.

Um sistema complicado é aquele que pode ter seu funcionamento controlado, rastreado ou bem entendido. Ele até pode possuir muitos componentes, mas as interações entre eles pode ser controlada ou rastreada. Então o resultado final é previsível, caso os componentes funcionem como esperado. Esse é o caso de um foguete e é por isso que conseguimos enviar pessoas à Lua. Cada peça tem uma função e se relaciona com outras através de entradas e saídas. Ao entender cada relação, pode-se prever ou planejar o resultado final.

Já um sistema complexo, mesmo possuindo poucos componentes, pode ter muitas interações ou então o comportamento de alguns componentes pode não ser previsto, e aí fica mais difícil prever o resultado final (pode ser algo bem diferente do esperado). É isso que acontece com sistemas que envolvem pessoas. Não temos como prever como cada pessoa irá se comportar ou que decisão tomará.

A complexidade de um sistema aumenta conforme:
- o número de componentes;
- a diversidade de componentes, ou seja, quantos tipos diferentes existem (ex. um formigueiro possui um número pequeno de tipos de formigas por suas funções);
- o número de interações; entre 2 elementos, temos um canal de interação; com 3 elementos são 3 canais; com 4 elementos, o número de canais dobra para 6;
- a diversidade nos tipos de interações. Ex. o Facebook considera poucos tipos de ligações. A mais comum é “amizade”. Dentro deste tipo maior (a rede social de um usuário), podemos ter “familiares”. Mas o número de tipos de ligações ainda é pequeno.

A consequência nefasta de um sistema muito complexo é que a mesma entrada pode gerar resultados diferentes.

Além disso, pode ocorrer o fenômeno “pilha de arroz/areia”. Você vai colocando um grão de cada vez e a pilha vai crescendo. Num momento, ao colocar apenas um grão, a pilha desmorona. Você se pergunta “por que caiu, se foi só um grão a mais?”.

A explicação está nas relações. Este grão influenciou 1 ou 2, mas cada um desses influenciou outros e assim por diante (leia sobre sistema exponenciais, série de Fibonacci e Lei de Potência). A influência pode ter sido mínima, por exemplo, o deslocamento mínimo de um grão. Mas vários deslocamentos pequenos podem ter desestruturado o equilíbrio da pilha.


Quais as implicações do estudo de sistemas complexos?

Análise de problemas e causas
Fica mais difícil de fazer manutenção numa máquina ou software com maior complexidade (muitos componentes ou muitas interações). As técnicas para aumentar coesão e diminuir acoplamento podem diminuir a complexidade. O objetivo é entender melhor como cada componente se relaciona (com quais outros e de que forma).

Previsões baseadas em fórmulas matemáticas
Se a relação entre os componentes é uma fórmula, podemos ter um sistema com muitas fórmulas envolvendo diferentes variáveis (ex. previsão do tempo, jogos que simulam administração de uma empresa ou ambiente).
A simulação pode ajudar a entender as diferentes consequências. Mesmo fornecendo como entrada os mesmos dados, os resultados podem ser diferentes num sistema complexo.

Previsões de mercados ou comportamento de grupos sociais
Simulações para tentar entender o que pode acontecer com o coletivo, sem precisar entender o comportamento individual. A ideia é fazer várias simulações mudando parâmetros e entender quais os resultados possíveis.
Simulações sociais são boas para compreender sistemas que envolvem pessoas ou seres vivos. O Software NetLogo foi feito para fazer este tipo de simulação.
Aplicações incluem planejamento de saídas de emergência e movimentação de manifestações de rua. Também pode-se tentar prever o resultado de ações de marketing nas vendas e na logística de uma empresa.

Nenhum comentário: