Determinantes na Computação

Um único escalar que detecta colapso estrutural em seis domínios independentes — da geometria computacional ao ray tracing, da álgebra linear aos sistemas de recomendação.

Amanda CavalcanteAnna Júlia Dantas Edson GonçalvesGabriel Inácio Gabriel NunesLucas Aguiar Miguel ÂngeloPedro Tavares Sarah BethelimWenisson José

Abrir se apresentando e citando o grupo. Avisar desde já que o trabalho não vai ensinar a calcular determinante — vai mostrar o que ele detecta. Isso prepara o slide 2, que contrapõe as duas definições.

Introdução

Duas definições — e só uma explica

Definição de procedimento

"Multiplique as diagonais principais, some; multiplique as secundárias, subtraia."

Ensina a obter o número. Não diz o que ele é, nem por que alguém iria querê-lo.

Definição geométrica

O determinante é o fator pelo qual a transformação multiplica áreas.

Explica de imediato por que det = 0 significa perda de invertibilidade: uma dimensão inteira foi achatada.

Este trabalho adota a segunda — a que explica o número, em vez de apenas produzi-lo.

Este é o slide-tese. A regra de Sarrus não é "errada", é irrelevante como explicação: ninguém entende o que o determinante significa a partir dela. Se perguntarem por que não mostramos como se calcula: porque a conta não explica o que o número significa, e é o significado que o trabalho inteiro explora.

O fio condutor

Uma pergunta, seis domínios

Em toda aplicação que veremos, o determinante responde sempre à mesma pergunta:

"Esta configuração colapsou?"

DomínioO que colapsa quando det → 0
GeometriaTrês pontos ficam colineares
Álgebra linearA matriz perde inversa
Computação gráficaA transformação achata uma dimensão
Ray tracingO raio fica paralelo ao plano
RecomendaçãoO conjunto perde diversidade
GrafosO grafo deixa de ser conexo

Esta tabela é a promessa do trabalho e volta idêntica no slide 11, como síntese. Não é preciso ler linha por linha agora — basta anunciar que cada uma delas será demonstrada ao vivo, e retomar o fio a cada troca de bloco.

Geometria computacional · Demonstração

O determinante como predicado

Três pontos. O sinal do determinante diz se o caminho A→B→C gira à esquerda, à direita ou é colinear. Aqui o valor não interessa — só o sinal. Arraste C até a reta AB e observe o instante em que a cor inverte. Atenção: esquerda e direita são de quem caminha de A para B, não o lado da tela — se o caminho desce, a esquerda de quem anda aparece à direita de quem olha.

(arraste os pontos A, B e C · clique a roda e arraste para mover a vista · role para dar zoom)(arraste os pontos com o dedo · pinça para dar zoom)

Roteiro: começar com o triângulo como está (giro à esquerda, positivo). Arrastar C lentamente até cruzar a reta AB — o valor passa por zero e a cor inverte. O botão "Levar ao limite" posiciona C quase colinear para mostrar o valor muito pequeno sem precisar de pontaria.

Ponto a enfatizar: o determinante aqui é uma função de três estados, não um número. O valor absoluto é descartado. Isso já é uma mudança de mentalidade em relação ao que se aprende em aula.

Pergunta que sempre aparece: “mas C está à direita na tela e ele diz esquerda”. Resposta: o predicado responde de que lado da reta orientada A→B o ponto está. Se o caminho desce, a esquerda de quem caminha é a direita de quem assiste. Para demonstrar, basta trocar A por B — o caminho inverte e o sinal inverte junto. O rótulo também mostra “anti-horário” ou “horário”, que não depende da direção do caminho.

Geometria computacional · Demonstração

Um algoritmo inteiro reduzido a testes de sinal

O laço central do Graham scan é literalmente: enquanto os três últimos pontos girarem para o lado errado, remova o do meio. Cada decisão é um determinante 2×2.

(roda clicada move a vista · role para dar zoom)(pinça para dar zoom)

A demo abre com o fecho já concluído, para a plateia ver o resultado antes do processo. Clicar em "⏮ Do início" e então avançar passo a passo — a execução automática sozinha passa rápido demais para ensinar. Use o controle de velocidade se preferir deixar correr.

O número a destacar no fim: algumas dezenas de determinantes 2×2 resolvem o problema inteiro. Não há nenhuma outra operação geométrica no algoritmo.

Geometria computacional

Onde isso roda de verdade

O predicado de orientação é operação primitiva — exposta na API, não escondida dentro de um algoritmo:

  • CGAL — padrão da indústria em geometria computacional
  • Shapely, GEOS e PostGIS — sistemas de informação geográfica
  • Box2D e motores de física 2D — contenção e sobreposição
  • OpenCV — cv2.convexHull, em reconhecimento de gestos
  • Navegação e roteamento — de que lado da via o ponto está

O fecho convexo é usado em colisão de jogos porque testar interseção entre convexos é muito mais barato do que entre formas arbitrárias.

Slide de ancoragem: serve para responder "isso é usado mesmo?". Se houver pouco tempo, ler apenas CGAL e OpenCV e seguir — o conteúdo está no material de apoio.

Computação gráfica · Demonstração

O determinante é o fator de área

O quadrado tracejado é o original; o preenchido é a imagem pela matriz. A área medida no desenho coincide com o determinante — não por definição decorada, mas porque é verificável na tela.

(roda clicada move a vista · role para dar zoom)(pinça para dar zoom)

Momento decisivo da apresentação inteira: usar o preset "Projeção (det = 0)", ou levar d até zero com o deslizante. O paralelogramo colapsa num segmento. Dizer em voz alta: a informação de uma dimensão foi perdida, e não existe matriz que desfaça isso. Invertibilidade deixa de ser regra decorada.

Depois, "Reflexão": o determinante fica negativo e a orientação inverte. Isso prepara o slide 8, sobre normais invertidas.

Computação gráfica

O sinal decide o que é desenhado

Back-face culling

Descartar as faces voltadas para longe da câmera é uma decisão de sinal de determinante, tomada milhões de vezes por quadro. Face virada para trás: sinal negativo, não desenha.

Escala negativa

Blender, Unity e Unreal verificam o sinal do determinante da matriz de modelo para decidir se precisam inverter as normais.

Um objeto espelhado sem essa correção aparece com a iluminação invertida — buracos onde deveria haver brilho.

// decisão de renderização, por quadro
float d = determinant(modelMatrix);
if (d < 0.0)
    normal = -normal;  // espelhou: inverte

O mesmo det < 0 que o slide anterior mostrou como "espelhamento" é o que dispara essa correção.

Conexão direta com a demo anterior: o preset de reflexão produzia exatamente o det negativo que esse código testa. Se alguém perguntar por que não basta checar a escala: porque a matriz de modelo pode combinar rotação, escala e cisalhamento, e só o determinante resume o efeito líquido sobre a orientação.

Computação gráfica · Demonstração

Ray tracing é a regra de Cramer

O algoritmo que decide se um raio de luz atinge um triângulo resolve um sistema 3×3 pela regra de Cramer, obtendo de uma vez a distância t e as coordenadas baricêntricas u e v. Quando o determinante tende a zero, o raio está paralelo ao plano — e é descartado antes de qualquer outra conta.

(arraste para girar a cena · roda clicada move · role para dar zoom)(arraste para girar · pinça para dar zoom)

Os três presets reproduzem exatamente a tabela verificada do material: acerta (det = 1, u = v = 0,250, t = 1,000), passa ao lado (u = v = 2,000) e paralelo (det = 0, descartado). Conferido por execução.

Dado de impacto: os núcleos RT das placas NVIDIA RTX implementam essa operação em hardware dedicado. É uma conta de determinante que virou silício.

Panorama

Onde mais o mesmo escalar aparece

Teorema de Kirchhoff

O número de árvores geradoras de um grafo é um cofator da matriz laplaciana. Contagem combinatória exponencial resolvida por um determinante. Verificado: K₄ → 16, K₅ → 125, coincidindo com a fórmula de Cayley.

DPP — diversidade em recomendação

O determinante da matriz de Gram mede diversidade: itens redundantes apontam na mesma direção e achatam o volume. Recomendar com variedade vira maximizar determinante. Usado pelo Google em trabalhos sobre o YouTube.

Normalizing Flows

Modelos generativos cuja viabilidade depende de o determinante do jacobiano ser calculável rápido. RealNVP e Glow foram projetadas para que esse jacobiano seja triangular — assim o determinante é o produto da diagonal. Uma restrição matemática ditou a arquitetura da rede.

Cifra de Hill — histórica

A chave é uma matriz, e só serve se o determinante for invertível módulo 26. Das 456.976 matrizes 2×2 possíveis, apenas 157.248 (34,4%) são chaves válidas.

A cifra de Hill é quebrada por ataque de texto claro conhecido. Valor exclusivamente histórico — não é técnica atual.

Slide de reserva para perguntas da banca. Se o tempo estiver curto, ler só os títulos. A ressalva sobre a cifra de Hill deve ser dita em voz alta — apresentá-la como técnica atual seria erro factual.

Conclusão

Um escalar, seis colapsos

DomínioO que colapsa quando det → 0Visto em
GeometriaTrês pontos ficam colinearesslides 4–6
Álgebra linearA matriz perde inversaslide 7
Computação gráficaA transformação achata uma dimensãoslides 7–8
Ray tracingO raio fica paralelo ao planoslide 9
RecomendaçãoO conjunto perde diversidadeslide 10
GrafosO grafo deixa de ser conexoslide 10

O determinante não é um procedimento de cálculo. É um detector de degeneração.

É a mesma tabela do slide 3, agora com a coluna de onde cada linha foi demonstrada. Fechar retomando a frase: em todos os domínios, a mesma pergunta — esta configuração colapsou?

Referências

Referências recomendadas para consulta

  • STRANG, Gilbert. Linear Algebra and Its Applications — interpretação geométrica do determinante.
  • DE BERG, M. et al. Computational Geometry: Algorithms and Applications — predicados, fecho convexo.
  • MÖLLER, T.; TRUMBORE, B. Fast, Minimum Storage Ray-Triangle Intersection (1997).
  • KULESZA, A.; TASKAR, B. Determinantal Point Processes for Machine Learning.
  • HILL, Lester S. Cryptography in an Algebraic Alphabet (1929) — a chave e o determinante módulo 26.
  • Documentação: CGAL, OpenCV (cv2.convexHull), LAPACK, NumPy (linalg.det).

Todos os valores numéricos citados nesta apresentação — contagem de determinantes do fecho convexo, fator de área e tabela do Möller-Trumbore — foram obtidos por execução real dos códigos, não por estimativa. Os códigos estão em pesquisa/.

Explicação detalhada de cada assunto: material-de-apoio.html · lista de exercícios com gabarito: exercicios.html

Último slide — deixar aberto para perguntas. Se pedirem a fonte de algum número, os códigos de verificação estão na pasta pesquisa/ e podem ser executados na hora.

1 / 12

Notas