Che cos'è la programmazione lineare nella scienza dei dati: panoramica

Pubblicato: 2022-09-21

La scienza dei dati è cresciuta come un campo veramente interdisciplinare che prende in prestito dall'informatica, dalla matematica, dall'analisi dei dati, dalle statistiche, ecc. I suoi progressi hanno aiutato le aziende di tutto il mondo a prendere decisioni molto più informate e basate sui dati. Di conseguenza, oggi le aziende si rendono conto dell'importanza dei dati acquisiti nel corso degli anni.

I data scientist utilizzano strumenti avanzati per valutare gli attuali scenari aziendali utilizzando i dati esistenti, ricavare relazioni e trovare modelli approfonditi. Questo metodo è noto come analisi descrittiva. Inoltre, i data scientist studiano anche gli effetti e le loro cause, tenendo presenti varie variabili dipendenti e indipendenti, note come analisi predittive.

Poiché l'analisi predittiva funziona identificando le relazioni di causa ed effetto, è utile per prendere decisioni approfondite per il futuro. Tuttavia, questo non è così semplice come potrebbe sembrare. Qualsiasi azienda ha molte variabili da affrontare, inclusi insight attuali, vincoli e altro ancora.

Dai un'occhiata alle nostre certificazioni di data science per migliorare le tue competenze.

Per prevedere con precisione, è necessario considerare queste variabili e arrivare alla soluzione ottimale. È qui che entra in gioco la programmazione lineare. La programmazione lineare è una tecnica importante che funziona in modo algoritmico e aiuta i data scientist a trovare la soluzione più ottimale per vari problemi. La programmazione lineare considera tutte le variabili essenziali, le uguaglianze e le disuguaglianze per arrivare alla soluzione finale, il che garantisce che la previsione sia infallibile.

In questo articolo, diamo un'occhiata a cos'è la programmazione lineare, i diversi metodi di programmazione lineare e un esempio di problema di programmazione lineare!

Sommario

Esplora i nostri gradi di scienza dei dati popolari

Programma post-laurea esecutivo in Data Science da IIITB Programma di certificazione professionale in Data Science per il processo decisionale aziendale Master of Science in Data Science presso l'Università dell'Arizona
Programma di certificazione avanzato in Data Science da IIITB Programma di certificazione professionale in Data Science e Business Analytics presso l'Università del Maryland Lauree in scienze dei dati

La programmazione lineare nell'analisi predittiva

Prima di iniziare con gli aspetti tecnici, è fondamentale notare che la programmazione nel contesto della programmazione lineare non si riferisce alla programmazione di computer o software. D'altra parte, la programmazione lineare è essenzialmente una tecnica di ottimizzazione (ottimizzazione lineare) utile per trovare i migliori risultati dai modelli matematici. Per formulare un programma lineare, è importante avere una comprensione degli elementi di base della Programmazione Lineare, che includono:

  • Variabili decisionali: si riferisce alle variabili che vorremmo determinare, le incognite.
  • Funzione obiettivo: si riferisce alla funzione lineare che rappresenta le quantità che devono essere minimizzate o massimizzate.
  • Vincoli: questo è un insieme di disuguaglianze o uguaglianze che rappresentano tutte le restrizioni sulla nostra variabile di decisione.
  • Restrizioni non negative: si riferisce a un punto di vincolo essenziale in quanto i valori delle variabili decisionali non sono negativi.

Una volta stabiliti i termini di base, diamo ora un'occhiata a quali approcci si possono adottare mentre si risolve un problema di programmazione lineare.

Le migliori competenze di scienza dei dati essenziali da apprendere nel 2022

SL. No Le migliori competenze di data science da apprendere nel 2022
1 Certificazioni di analisi dei dati Certificazioni statistiche inferenziali
2 Certificazioni di test di ipotesi Certificazioni di regressione logistica
3 Certificazioni di regressione lineare Algebra lineare per le certificazioni di analisi

Risoluzione della programmazione lineare

Possiamo seguire questi quattro passaggi per risolvere con successo un problema di programmazione lineare:

  • Identificazione delle variabili decisionali
  • Sviluppo della funzione obiettivo
  • Specificare i vincoli
  • Indicazione delle restrizioni di non negatività

Approfondiremo questi passaggi più avanti quando esamineremo un esempio risolto di programmazione lineare. Ma prima, diamo un'occhiata ai vari modi in cui puoi affrontare un problema di programmazione lineare. Ci sono sostanzialmente quattro approcci tra cui scegliere:

  • Metodo grafico: il metodo grafico è il metodo più semplice utilizzato per risolvere un problema di programmazione lineare in due variabili. Viene utilizzato principalmente quando ci sono solo due variabili decisionali da considerare. Il metodo grafico prevede la formazione di un insieme di disuguaglianze lineari e il loro assoggettamento alle condizioni o ai vincoli pertinenti. Quindi, le equazioni vengono tracciate sul piano XY e l'area di intersezione formata dal tracciamento di tutte le equazioni lineari è l'area ammissibile. Quest'area indica i valori di un modello e fornisce la soluzione ottimale.
  • Metodo Simplex: questo è un metodo potente per risolvere i problemi di programmazione lineare e segue una procedura iterativa per arrivare alla soluzione ottimale. In questo approccio, le variabili essenziali vengono modificate fino al raggiungimento del valore massimo o minimo (come richiesto) per la funzione obiettivo iniziale.
  • Angolo nord-ovest e metodo a costo minimo: questi sono tipi specifici di metodi utilizzati essenzialmente per problemi di trasporto per determinare il modo migliore per trasportare prodotti o merci. Di conseguenza, questo è un metodo di ottimizzazione pratico per problemi di domanda di offerta. Il presupposto per questo metodo è che esiste un solo prodotto. Tuttavia, la domanda di questo prodotto proviene da varie fonti, che costituiscono tutte cumulativamente l'offerta totale. Pertanto, questo metodo mira a ridurre al minimo i costi di trasporto.
  • Risolvere utilizzando R: R è uno degli strumenti più utilizzati per la scienza dei dati e l'analisi dei dati. R rende molto semplice eseguire l'ottimizzazione in poche righe di codice utilizzando il pacchetto IpSolve.
  • Risolvere utilizzando strumenti open source: l'ultimo metodo utilizza uno dei tanti strumenti open source disponibili per problemi di ottimizzazione. Un esempio di strumento open source è OpenSolve, un ottimizzatore lineare per Excel e funziona perfettamente per un massimo di 100 variabili. Oltre a questo, CPLEX, MATLAB, Gurobi, ecc., sono altri utili strumenti open source.

Leggi i nostri popolari articoli sulla scienza dei dati

Percorso di carriera nella scienza dei dati: una guida completa alla carriera Crescita professionale di Data Science: il futuro del lavoro è qui Perché la scienza dei dati è importante? 8 modi in cui la scienza dei dati porta valore al business
Rilevanza della scienza dei dati per i manager La scheda tecnica definitiva per la scienza dei dati che ogni data scientist dovrebbe avere I 6 principali motivi per cui dovresti diventare un data scientist
Un giorno nella vita di Data Scientist: cosa fanno? Mito sfatato: la scienza dei dati non ha bisogno di codifica Business Intelligence vs Data Science: quali sono le differenze?

Esempio di risoluzione grafica della programmazione lineare

Durante le festività annuali, un'azienda tiene conto di due fattori, X e Y, per creare un pacchetto utente. Il peso del pacco totale deve essere di 5 kg – e non devono esserci più di 4 kg di Y e almeno 2 kg di X. X e Y contribuiscono all'intero profitto come segue – Rs. 5/kg per X e 6/kg per Y.

Proviamo a risolvere questo problema di Programmazione Lineare per arrivare al miglior mix che si traduce nei maggiori profitti per l'azienda.

1. Lavorare con la nostra funzione principale

L'obiettivo di ottimizzazione del nostro problema è la massimizzazione del profitto. Il contributo al profitto di X e Y ci viene fornito nella dichiarazione del problema. Adesso,

  • Lascia un kg di X
  • Sia b kg di Y
  • La nostra funzione obiettivo diventa quindi -> c = 5*a + 6*b, e dobbiamo massimizzare c.

Abbiamo a, b come variabili decisionali, mentre c è la nostra funzione richiesta.

2. Sviluppare i vincoli dal problema

Nel problema vengono dati i seguenti vincoli:

  • Il peso del pacco regalo deve essere di 5 kg => a + b = 5
  • Meno di 4kg di Y e almeno 2kg di X => x>=2; y<=4

3. Vincoli non negativi

Le quantità per X e Y dovrebbero essere positive => a, b>0

Ora, riassumiamo rapidamente l'intero problema come lo abbiamo esposto finora:

Dobbiamo ottimizzare c = 5a+6b nelle seguenti due condizioni:

  • a+b=5
  • a>=2
  • b<=4

Stiamo usando il metodo grafico per risolvere questo problema, quindi consideriamo un grafico a 2 dimensioni con l'asse XY e proviamo a tracciare le equazioni e le disequazioni. Avremo con noi le seguenti cose:

  • a + b = 5 è una retta che taglia l'asse x in (5,0) e l'asse y nel punto (0,5). Poiché abbiamo un segno di uguaglianza nella nostra espressione, siamo sicuri che la nostra regione ammissibile si trovi nell'area dell'intersezione di queste linee.
  • a >= 2 è una linea retta che taglia l'asse x come (2,0). Poiché la nostra espressione ha un vincolo maggiore di, la nostra regione ammissibile cade nell'RHS della nostra linea.
  • b <= 4 è una retta che taglia l'asse y in (0,4). Poiché abbiamo un vincolo minore, la nostra regione ammissibile è l'area al di sotto della linea.
  • Infine, poiché aeb sono entrambi valori positivi, la nostra area di interesse è il primo quadrante.

Se hai tracciato queste linee e questi vincoli su un foglio grafico, avrai la regione finale che soddisfa tutte le condizioni richieste. I due punti che si trovano all'estremo di questa linea sono possibili considerazioni per la massimizzazione del profitto. Questi sono i punti (2,3) e (5,0). Per scoprire quale di questi due dà profitti migliori, possiamo semplicemente inserire i punti nella nostra funzione obiettivo e vedere quale produce il miglior risultato:

  • c = 5a + 6b ⬄ c = (5*2) +(6*3) = 28
  • c = 5a + 6b ⬄ z = (5*5) +(6*0) = 25

Come puoi vedere, otteniamo un valore di profitto più alto per l'opzione A. Quindi, la nostra soluzione che offre i migliori profitti è la seguente => 2 kg di fattore X e 3 kg di fattore Y!

Insomma

Non c'è fine ai problemi di ottimizzazione, soprattutto quando si parla in un contesto aziendale. Le aziende affrontano le sfide di ottimizzazione più frequentemente di quanto vorrebbero. Di conseguenza, il solo metodo grafico non è sufficiente per risolvere problemi di ottimizzazione più tecnici.

È necessario comprendere strumenti o linguaggi di programmazione importanti per eseguire con successo l'ottimizzazione lineare su problemi multivariabili. Ma la buona notizia è che non è così difficile imparare a lavorare su strumenti o linguaggi di programmazione rilevanti. L'intero campo della scienza dei dati è molto accogliente, il che rende più facile per le persone di qualsiasi background costruire una carriera nella scienza dei dati, se hanno un interesse.

In upGrad, abbiamo guidato studenti di tutto il mondo con background diversi e li abbiamo aiutati a sviluppare le conoscenze teoriche e le competenze pratiche necessarie per avere successo nella scienza dei dati. Dai un'occhiata al nostro Executive Post Graduate Program in Data Science per ulteriori informazioni sulla struttura del corso, sul programma e sul vantaggio upGrad!

1. La programmazione lineare è correlata alla programmazione per computer?

No, la programmazione lineare si riferisce all'esecuzione di ottimizzazioni sotto vincoli. Non è correlato alla programmazione del computer nel senso tradizionale della parola.

2. Quando è più necessaria la programmazione lineare?

È necessaria una programmazione lineare quando si ottimizzano alcune variabili decisionali sotto vari vincoli. È utile durante l'analisi predittiva e aiuta le aziende a fare previsioni migliori.

3. La programmazione lineare deve essere eseguita manualmente?

No, ci sono vari strumenti - sia open source che altro - che possono aiutarti a eseguire la programmazione lineare.