Quali parti dell'algebra lineare sono utilizzate nell'informatica?


15

Ho letto Linear Algebra e le sue applicazioni per aiutare a comprendere il materiale informatico (principalmente l'apprendimento automatico), ma sono preoccupato che molte informazioni non siano utili a CS. Ad esempio, sapere come risolvere in modo efficiente i sistemi di equazioni lineari non sembra molto utile se non si sta tentando di programmare un nuovo risolutore di equazioni. Inoltre, il libro ha parlato molto di span, dipendenza lineare e indipendenza, quando una matrice ha un inverso e le relazioni tra questi, ma non riesco a pensare a nessuna applicazione di questo in CS. Quindi, quali parti dell'algebra lineare sono utilizzate in CS?


2
Stai chiedendo il tuo beneficio o sei un insegnante alla ricerca di strategie per motivare i tuoi studenti?
Raffaello

L'algebra lineare è utile in molte parti della computer grafica (puoi trovare molte informazioni correlate su Google).
Juho

Risolvere i sistemi di equazioni lineari è incredibilmente utile in informatica. Ad esempio: en.m.wikipedia.org/wiki/Combinatorial_optimization
Ant P

1
Le matrici sono utilizzate pesantemente nello sviluppo del gioco, IE per proiezioni, rotazioni e matematica dei quaternioni.
Paul

@Paulpro La domanda è per le applicazioni dell'algebra lineare (un corpo di lavoro), non delle matrici (un insieme di oggetti).
Raffaello

Risposte:


11

Le parti che hai citato sono concetti di base dell'algebra lineare. Non puoi comprendere i concetti più avanzati (diciamo autovalori e autovettori) prima di capire prima i concetti di base. Non ci sono scorciatoie in matematica. Senza una comprensione intuitiva dei concetti di span e indipendenza lineare non si andrà lontano in algebra lineare.

Alcuni algoritmi funzionano solo con matrici di rango intero - Sai cosa significa? Sai cosa può rendere una matrice non di rango massimo? Come gestirlo? Non avrai idea se non sai cos'è l'indipendenza lineare.

L'algoritmo di eliminazione gaussiana utilizzato per risolvere equazioni lineari può effettivamente essere numericamente instabile se implementato in modo errato, e questo è qualcosa di cui potresti doverti preoccupare in alcuni casi. Senza capire l'algoritmo non saprai da dove provenga il problema e se c'è qualcosa che puoi fare al riguardo - non a livello di algoritmi per risolvere equazioni lineari, ma a livello di trovare le equazioni lineari corrette da risolvere.

In breve, non essere pigro e confida che queste cose siano utili.


5
"crediamo che queste cose siano utili" - beh, non conosciamo tutti gli insegnanti che caricano le loro lezioni con i loro cari senza preoccuparsi dell'utilità generale? Gli studenti non sanno davvero la differenza, ma nemmeno dovrebbero fidarsi ciecamente. "Per cosa mi servirà?" è una domanda giusta, ma "È solo per allenare la mente" è anche una risposta giusta.
Raffaello

9
"Non essere pigro" imposta un tono che non è costruttivo. Ho avuto studenti meravigliosamente curiosi, coinvolti e per niente pigri che mi fanno questa domanda. Penso che una grande popolazione di studenti di CS ritenga che la tradizionale classe di algebra lineare sia un mondo a parte ciò di cui pensano di aver bisogno. I loro interessi sono informatica e programmazione e non necessariamente matematica. Avere o desiderare un po 'di contesto e motivazione non è un segno di pigrizia. Non dipingiamolo come tale.
Logan Mayfield

@Raphael, Logan Mayfield, sapete anche come l'apprendimento automatico si collega all'algebra lineare? Anche se un po 'specifico, Yuval è abbastanza preciso sugli esempi che ha citato. Non è possibile rispondere in modo completo alla domanda del PO in un solo post Internet.
musicliftsme

7

L'algebra lineare è talvolta estremamente utile e potente negli algoritmi grafici. Con il teorema dell'albero della matrice puoi contare efficacemente il numero di spanning tree di un grafico (devi capire gli autovalori). Un'applicazione più stimolante, in cui è necessaria una comprensione ancora più solida dell'algebra lineare è l' algoritmo FKT per calcolare il numero di corrispondenze perfette in un grafico planare in tempo polinomiale.

Ci sono molti altri esempi entusiasmanti di usi dell'algebra lineare nella teoria dei grafi algebrici e nella teoria dei grafi spettrali . Gli algoritmi che sorgono non sono solo per il conteggio dei problemi come i due esempi che ho dato. Ad esempio, puoi anche verificare la connettività o calcolare il diametro di un grafico .


Ci si chiede perché si vorrebbe mai contare il numero di alberi spanning o di abbinamenti perfetti. A cosa serve questo? Hai in mente un'applicazione del mondo reale?
Yuval Filmus

@YuvalFilmus Non lo so, ed è forse più difficile trovare applicazioni di problemi di conteggio per cominciare. Penso che entrambi siano interessanti soprattutto dal punto di vista teorico, sebbene la voce wiki di FKT offra un po 'di storia e motivazione. Comunque, il punto principale è che l'algebra lineare è utile per sviluppare algoritmi grafici e quindi ha applicazioni nell'informatica.
Juho

6

Uno degli usi più noti dell'algebra lineare è l' algoritmo Pagerank di Google :

I valori di PageRank sono le voci dell'autovettore sinistro dominante della matrice di adiacenza modificata.


3

Quasi tutto ciò che coinvolge computer grafica, animazione, visione artificiale, elaborazione di immagini, elaborazione scientifica o simulazione di fenomeni fisici comporterà un ampio uso di vettori e matrici (algebra lineare) da cose semplici come la rappresentazione di trasformazioni e orientamenti spaziali, fino a algoritmi molto complessi. Queste cose erano il dominio del supercalcolo, ma ora questi stessi campi sono il nucleo di tutte le app più interessanti sul tuo desktop, telefoni e ovunque, dai videogiochi alla fotografia computazionale alle auto a guida autonoma. L'algebra lineare è ovunque.


2

Esistono molti algoritmi e tecniche basati su algebra matriciale. Ed è fantastico. L'analisi delle componenti principali è un esempio di algebra lineare applicata abbastanza utile. Lo stesso si può dire dell'analisi di Fourier, che ha anche le sue radici nell'ortogonalità e nei prodotti interni. Quindi ci sono applicazioni dirette.

MA , ancora più importante, prendere una lezione di algebra lineare è prezioso perché ti insegna a pensare in un certo modo. La maggior parte delle buone classi di algebra lineare pongono l'accento su generalizzazione, logica e prove. C'è qualcosa di vero in generale o solo alcuni casi specifici specifici? Come puoi esserne certo? Essere in grado di pensare a come dimostrare le tue assunzioni è positivo perché ti aiuta a impedirti di fare cattive assunzioni e scrivere codice che non si generalizza nel modo in cui pensi che lo faccia. Ti aiuta anche a pensare a come generalizzare cose che potrebbero altrimenti essere difficili da generalizzare e che ti permettono di risolvere problemi più grandi.

In sintesi, è bene tenere presente che l'algebra lineare è buona perché è un sollevamento pesi per la parte del cervello che è utile nell'informatica.


0

Risolvere un sistema di equazioni lineari (che può essere fatto con il metodo di eliminazione gaussiana), la programmazione lineare (che può essere risolta con il metodo simplex), i minimi quadrati e il rilevamento compresso (vedi l'articolo di Wikipedia) sono problemi pratici che sorgono in molti aree di applicazione. L'algebra lineare aiuta a sviluppare algoritmi corretti ed efficienti per questi problemi.

Vedi il testo [Cormen, Leiserson, Rivest e Stein, "Introduzione agli algoritmi, terza edizione"], in cui il capitolo 28 riguarda le operazioni a matrice e il capitolo 29 riguarda la programmazione lineare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.