Interessante

Algoritmi, ottimizzazione e problema del venditore ambulante

Algoritmi, ottimizzazione e problema del venditore ambulante


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Questo è il quinto articolo di una serie in sette parti su Algoritmi e calcolo, che esplora il modo in cui utilizziamo semplici numeri binari per alimentare il nostro mondo. Il primo articolo, Come gli algoritmi gestiscono il mondo in cui viviamo, può essere trovato qui.

Il lavoro essenziale di un informatico teorico è trovare algoritmi efficienti per i problemi e il più difficile di questi problemi non è solo accademico; sono al centro di alcuni degli scenari del mondo reale più impegnativi che si svolgono ogni giorno. Il più critico di questi è il problema dell'ottimizzazione: come troviamo il file migliore soluzione a un problema quando abbiamo un numero apparentemente infinito di possibili soluzioni?

CORRELATO: IL NUOVO ALGORITMO PERMETTE ALLE AUTO AUTONOME DI CAMBIARE DI CORSA PIÙ COME GLI UMANI

Per ora, il meglio che possiamo fare è adottare un approccio euristico e trovare un fileabbastanza buono soluzione, ma stiamo creando un livello incalcolabile di inefficienze che si sommano nel tempo e prosciugano le nostre risorse limitate che potrebbero essere utilizzate meglio altrove. Lo chiamiamo il problema del venditore ambulante e non è un eufemismo dire che la soluzione a questo problema potrebbe far risparmiare alla nostra economia trilioni di dollari.

Il problema del venditore ambulante, la complessità esponenziale del tempo e oltre

Il problema del venditore ambulante è descritto così: un'azienda richiede a uno dei suoi venditori ambulanti di visitare ogni città su un elenco di n città, dove sono note le distanze tra una città e ogni altra città nell'elenco. Ogni città può essere visitata una sola volta e il venditore finisce nella città da cui è partito. Qual è il percorso più breve che può intraprendere per raggiungere questo obiettivo?

L'algoritmo più efficiente che conosciamo per questo problema viene eseguito tempo esponenziale, che è piuttosto brutale come abbiamo visto. A differenza della crittografia RSA, tuttavia, nel caso del problema del venditore ambulante non esiste un'aritmetica modulare o la fattorizzazione in fattori di determinazione del periodo, come fa l'algoritmo di Shor. Il problema del venditore ambulante è un problema decisionale e non ci sono scorciatoie di cui siamo a conoscenza che ci portino sotto complessità temporale esponenziale.

Solo per rafforzare il motivo per cui questa è una situazione orribile, usiamo un esempio molto comune di quanto sia folle complessità temporale esponenziale può ottenere. Diciamo che potresti piegare un pezzo di carta più e più volte quante volte vuoi e che avrà sempre la lunghezza necessaria per fare la piega. Prendendo una misura della larghezza della pila di "fogli" nel prodotto finale in cui la carta piegata sta crescendo in lunghezza lontano da noi, questo è ciò che puoi aspettarti:

* 0 pieghe: Spessore 1/250 pollici.
* 10 pieghe: ~ 2,05 pollici di spessore.
* 25 pieghe: ~ 1 miglio di spessore.
* 43 pieghe: La superficie della luna.
* 52 pieghe: Dentro il sole.
* 57 pieghe: Superando Ultima Thule
* 67 pieghe: Ci vogliono 1,5 anni leggeri per viaggiare da un'estremità all'altra.
* 82 pieghe: Largo quanto la Via Lattea.
* 93 pieghe: A distanza astronomica dal buco nero supermassiccio nel centro di Messier 87.
* 101 pieghe: Non sono sicuro di cosa ci sia perché è oltre l'universo osservabile.

E questo è con il migliore algoritmo che abbiamo adesso. Ciascuno di quei "fogli" in quella pila è un percorso che il venditore potrebbe prendere la cui lunghezza alla fine dovremmo controllare e misurare rispetto a tutte le altre lunghezze del percorso e ogni piega equivale ad aggiungere una città in più all'elenco delle città che deve visitare. Se abbiamo appena tentato di risolvere il problema del venditore ambulante controllando ogni possibile soluzione per trovare la migliore, stiamo esaminando complessità temporale fattoriale. Utilizzando il nostro 128 bit numero dal nostro esempio di crittografia RSA, che era 2128, mentre 101 volte è solo 2101, 35! soffia oltre 2128 di almeno un fattore 100. Peggiora con ogni incremento aggiuntivo del tuo input, e questo è ciò che rende il problema del venditore ambulante così importante e anche così esasperante.

Il problema degli algoritmi di ottimizzazione

Non sappiamo come trovare la risposta giusta al problema del venditore ambulante perché per trovare la risposta migliore serve un modo per escludere tutte le altre risposte e non abbiamo idea di come farlo senza verificare tutte le possibilità o mantenerlo un record del percorso più breve trovato finora e ricominciare una volta che il nostro percorso attuale supera quel numero. Questo è il meglio che abbiamo, e questo porta solo le cose in giro complessità temporale esponenziale, quindi come soluzione, non è affatto una soluzione.

Il problema del venditore ambulante è speciale per molte ragioni, ma la più importante è perché è un problema di ottimizzazione e problemi di ottimizzazione compaiono ovunque nella vita di tutti i giorni. Per quanto riguarda le dimensioni degli input, 101 non è affatto grande. Nel mondo reale, ci sono tante piccole città in un singolo stato degli Stati Uniti che potrebbero teoricamente far parte dell'area di consegna del grande distributore commerciale. Determinare il percorso più breve tra tutte le fermate che i loro camion devono fare ai vari clienti su base giornaliera farebbe risparmiare una quantità incalcolabile di denaro in costi di manodopera e carburante.

Se stai acquistando parti dall'estero per la tua fabbrica, quale percorso e combinazione di metodi di consegna ti costerà la minore quantità di denaro? Quale configurazione delle pieghe proteiche è quella che può sconfiggere il cancro? Trovare un algoritmo in grado di risolvere il problema del venditore ambulante in qualcosa di simile tempo polinomiale cambierebbe tutto e lo farebbe dall'oggi al domani.

Parte del problema però è che a causa della natura del problema stesso, non sappiamo nemmeno se una soluzione in tempo polinomiale è matematicamente possibile. Ciò è dovuto al modo in cui classifichiamo i problemi e il problema del venditore ambulante appartiene a una classificazione molto speciale in quel sistema, che pone una delle maggiori sfide in matematica e informatica, con implicazioni di vasta portata per il mondo reale.

Il sesto articolo della nostra serie su algoritmi e calcolo, P vs. NP, NP-Complete e l'algoritmo per tutto, può essere trovato qui.


Guarda il video: I segreti dellalgoritmo di Facebook (Luglio 2022).


Commenti:

  1. Frollo

    Really useful! And then how much you do not climb there is no continuous blah blah blah. But not here, and it pleases!

  2. Zulkigore

    La domanda è interessante, anch'io prenderò parte alla discussione. Insieme possiamo arrivare a una risposta giusta. Mi sono assicurato.

  3. Johnell

    Bene, beh ... sarà necessario dare un'occhiata più da vicino a quest'area :)

  4. Vujinn

    non me ne sono pentito!



Scrivi un messaggio