“Socrate è un uomo”, “ogni uomo è mortale”, quindi “Socrate è mortale”. Questo è un sillogismo, non siamo del tutto nel tema, ma come introduzione di un post può fare la sua figura.

“Se piove le strade sono bagnate”, “sta piovendo”, quindi “le strade sono bagnate”. Questa è un’inferenza deduttiva, o modus ponens. Ci stiamo avvicinando al nostro argomento.

Il modus ponens si basa su di una regola del tipo “se <condizione> allora <conseguenza>”, e stabilisce che la conseguenza è vera se lo è la condizione: la strada è bagnata se sta piovendo.

Se forniamo a questa regola una condizione vera (sta piovendo), otteniamo come risposta una conseguenza anch’essa vera (la strada è bagnata).

Prima di proseguire, un’aggiunta per i più esigenti: se percorriamo la regola al contrario otteniamo il modus tollens: la falsità della conseguenza (la strada non è bagnata) implica la falsità della condizione (non sta piovendo).

Ci sarebbe poi anche l’abduzione (se la strada è bagnata, è probabile che stia piovendo): ma qui (data la situazione della strada) i discorsi si fanno un po’ troppo scivolosi, e quindi conviene allontanarsi in gran fretta.

Software gestione Logistica: la RIM

Il nostro problema è: data una RIM di un software gestione logistica (vale a dire la richiesta di uno spostamento):

  • se abbiamo del materiale (prodotto o ricevuto) dobbiamo decidere dove stivarlo;
  • se ci serve del materiale (da utilizzare o da spedire) dobbiamo decidere dove reperirlo.

In sostanza, (per chi non ha ben presente l’articolo precedete può andare a ripassarlo qui), nel primo caso si deve completare la parte di REG_A, nel secondo quella di REG_D. A questa attività diamo il nome di assegnazione di una RIM.

Possiamo compiere questa operazione manualmente, se le informazioni da aggiungere sono elementari.

Se le cose si complicano dobbiamo invece ricorrere a uno strumento automatico che, alla bisogna, utilizza i criteri che ci siamo limitati a definire una volta per tutte.

Iniziamo quindi con l’inventarci un insieme di regole di un software gestione logistica (in questo caso di versamento):

  • se l’articolo è pesante cerca nelle ubicazioni di tipo UBP, a partite da UBP_1, altrimenti (se è leggero) nelle ubicazioni di tipo UBL, a partire da UBL_1;
  • se l’ubicazione UBL_N è occupata, ritorna l’ubicazione UBL_N+1 (in parole povere, torna il codice dell’ubicazione leggera successiva all’attuale), e lo stesso per le ubicazioni pesanti (ad esempio UBP_N e UBP_N+1)
  • se non sei riuscito a collocare tutta la quantità, portala in un’area di parcheggio (AR_PARK), dove c’è sempre posto, che poi decideremo che cosa farne.

Dobbiamo quindi decidere come utilizzare al meglio questo guazzabuglio di regole che abbiamo inventato, per completare le nostre RIM.

Per far questo ricorriamo ad un motore inferenziale, un programma che (dato il nome) esegue un’inferenza deduttiva (ecco il modus ponens): esamina una regola alla volta e, se la condizione è valida, aggiunge ai fatti noti la conseguenza della regola.

Ci restano ancora da sistemare alcuni dettagli.

Dove “salvare” i fatti noti che man mano troviamo come conseguenze? Li memorizziamo in un’area di lavoro del computer (working memory), in modo che siano disponibili, come condizioni, per le regole successive.

Dobbiamo poi scegliere la regola con cui partite, l’innesco del nostro ragionamento, e la regola da eseguire al verificarsi di una condizione (se l’ubicazione è piena, passa all’ubicazione successiva).

Percorso delle regole di un software gestione logistica

Notate che il percorso delle regole che si compie non è prefissato, ma prende forma man mano in base alle condizioni che risultano verificate (se l’articolo è leggero, se è pesante…).

Infine, man mano che una regola viene applicata, si riduce la quantità della RIM ancora da assegnare, aggiungendo una RIM con il residuo.

Cosa di meglio di un esempio per confondervi le idee?

Eccolo.

Abbiamo, nell’aera di ricevimento RCV_01, 40 pezzi di A01 (articolo leggero).
E queste sono le ubicazioni che abbiamo a disposizione per gli articoli leggeri (ciascuna con il suo contenuto):

UBL_01 vuota,
UBL_02 piena di A03,
UBL_03 piena di A01 con 6 pezzi.

Nelle ubicazioni possiamo mettere al massimo 20 pezzi di un solo articolo. Per il nostro motore utilizzeremo le regole riportate in precedenza. Dato che l’articolo è leggero iniziamo a curiosare nell’ubicazione UBL_01. È vuota. Ci mettiamo subito 20 pezzi di A01.

Ne restano altri 20; ci spostiamo nell’ubicazione successiva UBL_02.
Purtroppo, c’è già un altro articolo. Peccato. Ma non ci scoraggiamo, e proseguiamo con UBL_03.
È già mezza piena, ma, fortunatamente, del nostro articolo. La riempiamo con tutto quello che ci sta (4 pezzi) e ci segniamo che ci restano 16 pezzi.
A questo punto le ubicazioni disponibili sono finite. Ci rassegniamo a portarli nell’area AR_PARK, poi vedremo.

Risultato:

dobbiamo spostare 20 pezzi di A01 dall’aera RCV_01 nell’ubicazione UBL_01
dobbiamo spostare 4 pezzi di A01 dall’arta RCV_01 nell’ubicazione UBL_03
dobbiamo spostare 16 pezzi di A01 dall’area RCV_01 nell’area AR_PARK.

Abbiamo quindi tutte le istruzioni per poter eseguire lo spostamento. Non ci resta che farlo (o, ancor meglio, trovare qualcuno a cui farlo fare).

Per finire, riassumiamo le fasi che vanno a comporre un’attività logistica:

  • nasce un’esigenza sotto forma di una nuova RIM;
  • si esegue un motore inferenziale di assegnazione, che completa la RIM;
  • un operatore (umano o meccanico) esegue fisicamente lo spostamento e dichiara eseguita la RIM, in modo che vengano scritti, con le sue informazioni, i movimenti di magazzino che adeguano la realtà informatica a quanto è stato fatto.

E qui ci fermiamo. Nel prossimo articolo entreremo nel merito delle principali attività logistiche compiute in un’azienda commerciale o di produzione, vale a dire dei vari momenti in cui nasce una RIM, che verrà data in pasto alle funzioni di assegnazione e di esecuzione.

Guido Galdini
Specialista Sme.UP ERP – smeup

Naviga per categoria:

Seleziona una categoria d’interesse dal nostro magazine