57
Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale PROVA FINALE Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate. TUTOR CANDIDATO Prof. Francesca Guerriero Ing. Simona Benigno Giancarlo Volpe __________________________________________________________________ Anno Accademico 2005/06 UNIVERSITÀ DELLA CALABRIA

Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

Embed Size (px)

DESCRIPTION

Tesi di laurea triennale Ingegneria Gestionale

Citation preview

Page 1: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

Facoltà di Ingegneria

Corso di Laurea in Ingegneria Gestionale

PROVA FINALE

Il cammino critico di tipo fuzzy in

una rete di attività con relazioni di

precedenza generalizzate. TUTOR CANDIDATO

Prof. Francesca Guerriero Ing. Simona Benigno Giancarlo Volpe __________________________________________________________________

Anno Accademico 2005/06

UNIVERSITÀ DELLA CALABRIA

Page 2: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

2

INDICE

Introduzione…………………………………………………………..4

Capitolo 1. Project Management e logica Fuzzy……………………...6

1.1. Il project Management……………………………...7

1.1.1. Il ciclo di vita di un progetto………………...8

1.1.2. Schedulazione delle attività operative……...10

1.1.3. Analisi del reticolo…………………………11

1.2. La logica Fuzzy…………………………………...12

1.2.1. Insiemi fuzzy………………………..……...16

1.2.2. Numeri fuzzy triangolari…………………...18

1.2.3. Operazioni sui numeri fuzzy……………….19

1.2.4. Confronto fra numeri fuzzy triangolari…….19

Capitolo 2. Il modello del Makespan………………………………..22

2.1. Analisi temporale………………………………….23

2.2. Durata di un progetto……………………………...24

2.3. Formulazione del makespan………………………25

2.4. Relazioni di precedenza generalizzate…………….29

2.5. Ricerca del cammino critico………………………34

2.6. Algoritmo di Bellman-Ford…………………….....36

Capitolo 3. Il modello del Makespan di tipo fuzzy………………….39

3.1. Introduzione e analisi della letteratura……………40

3.2. Il modello…………………………………………43

3.3. Descrizione dell’algoritmo risolutivo…………….46

Page 3: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

3

Capitolo 4. Esempio di applicazione dell’algoritmo ………………..48

4.1. Applicazione dell’algoritmo risolutivo………...…49

Conclusioni…………………………………………………………..55

Bibliografia…………………………………………………………..57

Page 4: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

4

INTRODUZIONE

Il Management moderno tende sempre più a perseguire livelli di

massima qualità sotto ogni aspetto della gestione dei progetti, al fine

di ottenere i risultati migliori con il minimo impiego di risorse.

Nonostante la crescente attenzione ad ogni possibile causa

d’inefficienza, si nota che alcune delle fasi relative alla gestione di un

progetto offrono ancora ampi margini di miglioramento.

Ad esempio, la schedulazione temporale delle attività, è spesso

lontana dall’essere ottimizzata.

Tra le aziende che si occupano dell’ottimizzazione dei progetti, il

Project Management utilizza procedure basate su modelli classici,

fondati su presupposti raramente riscontrabili nella realtà. Tali

procedure offrono in genere risultati soddisfacenti, ma difficilmente

sono esportabili ad altre realtà aziendali, essendo sviluppate in base

alle esigenze specifiche della realtà d’interesse.

Affidandosi alle capacità decisionali di personale specializzato, ci si

accorge di quanto possano diventare importanti per la gestione di un

progetto, una serie di fattori difficili da quantificare e formalizzare,

come ad esempio il tempo.

Un operatore esperto sa tener conto dei fattori di criticità, grazie alla

propria esperienza e competenza, ma non sempre è possibile definire

la realtà attraverso un modello matematico.

Ciò che manca ai modelli classici di schedulazione delle attività di un

progetto è proprio la capacità umana di considerare gli aspetti

“sfumati” della realtà.

L’obiettivo di questo lavoro è stato quello di sviluppare un algoritmo

per il calcolo del Makespan di un progetto, le cui attività sono legate

Page 5: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

5

da relazioni di precedenza generalizzate, che sia in larga scala capace

di riprodurre l’abilità decisionale di un operatore umano.

Per ottenere tale obiettivo, serviva uno strumento di sviluppo che

potesse andare oltre le capacità degli usuali metodi matematici,

tenendo conto di tutti quei fattori poco analitici che possono avere

peso notevole in problemi di questo tipo.

Si è ritenuto che la logica fuzzy presentasse le potenzialità adatte a

supportare lo sviluppo di un sistema incerto come può essere

l’avanzamento di un progetto. La logica fuzzy è uno strumento teorico

e applicativo che permette di affrontare con successo quei problemi

che risultano più complessi da risolvere analiticamente.

Nel primo capitolo è data una definizione del Project Management

con le sue caratteristiche principali ed un primo approccio alle

tecniche reticolari. Sono presentate le basi teoriche della logica fuzzy,

con particolare attenzione ai numeri fuzzy triangolari e alle operazioni

effettuabili su di essi.

Nel secondo capitolo è descritto il modello del Makespan classico e

l’analisi temporale di una rete di progetto. E’ introdotto il sistema

delle relazioni di precedenza generalizzate in una rete di attività e

l’algoritmo risolutivo di Bellman-Ford modificato per il calcolo del

cammino massimo.

L’analisi del problema è svolta nel terzo capitolo, dove è presentato il

modello ed è descritto dettagliatamente l’algoritmo risolutivo del

Makespan fuzzy sotto relazioni di precedenza generalizzate.

Infine nel quarto capitolo è presentato un esempio d’applicazione

dell’algoritmo ad una rete di progetto e sono discussi i risultati

ottenuti.

Page 6: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

6

CAPITOLO 1

PROJECT

MANAGEMENT E

LOGICA FUZZY

Page 7: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

7

1.1 IL PROJECT MANAGEMENT

L’innovazione, il progresso tecnologico e il sempre crescente bisogno

di conoscenza hanno spinto, nel corso di questi ultimi anni,

l’attenzione e l’interesse del mondo imprenditoriale verso il Project

Management.

Le nuove sfide poste dagli scenari economici dinamici nel contesto i

cui le imprese si trovano ad operare non potevano più essere

efficacemente affrontate senza il ricorso ad una strategia che

riconoscesse nell’innovazione dei prodotti e dei servizi offerti alla

clientela la propria linea guida di riferimento, e il vertice di numerose

aziende ha individuato nei criteri, nelle metodologie e nelle tecniche

sviluppate dal Project Management la possibile soluzione al problema

rappresentato dalla gestione dei processi di revisione dei beni proposti

al mercato e di ristrutturazione dei rispettivi cicli produttivi.

Il Project Management è un sistema gestionale orientato ai risultati, e

in generale può definirsi come “la gestione sistemica di un’impresa

complessa, unica e di durata determinata, rivolta al raggiungimento

di un obiettivo chiaro e predefinito mediante un processo continuo di

pianificazione e controllo di risorse differenziate e con vincoli

interdipendenti di costi, tempi e qualità”.

Questa definizione mette in evidenza la caratteristica principale di un

progetto: la sua complessità. Un progetto è un’opera alla cui

realizzazione partecipano di norma numerosi settori aziendali di

differente estrazione tecnica, che operano svolgendo molteplici attività

tra loro correlate da stretti vincoli di interdipendenza di natura sia

logica che temporale.

Per essere davvero efficace, l’attività di Project Management deve

poter disporre di metodi e di sistemi di pianificazione e controllo che

Page 8: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

8

siano in grado di supportare e favorire il processo di individuazione

degli obiettivi e dei risultati, delle singole attività operative,

l’attribuzione delle responsabilità esecutive, la pianificazione e la

schedulazione delle risorse e la selezione dei criteri di monitoraggio

dello stato di avanzamento dei lavori.

1.1.1. IL CICLO DI VITA DI UN PROGETTO

Un progetto, di qualsiasi natura esso sia, si sviluppa attraverso fasi

successive che ne determinano il suo ciclo di vita, che può essere così

strutturato:

1. Disegno concettuale: è la fase in cui l’organizzazione concepisce

la necessità di un progetto o riceve richieste da un cliente.

Comprende lo studio di fattibilità tecnologica, personale e

finanziaria, in cui l’organizzazione riflette su se stessa una miriade

di domande dirette a concretizzare ciò che in principio è

un’astrazione progettuale, ad esempio si verifica se si è in possesso

della tecnologia adeguata, se il personale disponibile è sufficiente e

qualificato, se le attività possono essere finanziate adeguatamente

con l’attuale liquidità interna o bisogna ricercare nuove fonti di

finanziamento. Se si sopravviene a risposte positive, si passa alla

valutazione dei rischi connessi ad ogni voce e alla selezione del

progetto che più degli altri bilancia le risorse disponibili con gli

obiettivi che si intende perseguire.

2. Definizione: sono stabiliti gli obiettivi, l’ambito d’azione e le

strategie. Il progetto si sviluppa e deve essere monitorato in modo

adeguato al fine di decretarne il successo e il completamento con la

definizione di linee guida sullo stato finale in termini di costo,

tempo e qualità. Di notevole importanza deve essere

Page 9: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

9

l’organizzazione dei processi contenuti nell’intero progetto e la

definizione dei rispettivi prodotti finali.

3. Pianificazione: in questa fase si descrive l’esecuzione del progetto

nel dettaglio attraverso un procedimento sistematico e organizzato

definito Work Breakdown Structure (WBS). Sono decomposte le

principali attività del progetto a partire dai livelli più alti. Le

attività principali sono a loro volta suddivise e si procede cosi per

livelli successivi fino a raggiungere una dimensione gestibile per la

pianificazione ed il controllo. Per ogni attività si stabilisce la

richiesta di risorse e la loro disponibilità, la durata, i rapporti di

precedenza e i costi stimati. Si costruisce cosi la rete del progetto

(Project Network). Una volta pianificate le attività si devono

assegnare le responsabilità creando un organigramma del progetto

ove sono rappresentati il personale responsabile e gli addetti alle

attività per stabilire chi ha l’autorità e chi ha la responsabilità.

4. Sequenziamento: è definito il piano temporale in base al quale ogni

attività è identificata dai tempi d’inizio e di fine, in relazione delle

considerazioni ottenute nella fase di pianificazione sul tema

dell’allocazione delle risorse.

5. Esecuzione e controllo: è implementato il progetto. E’ durante

questa fase che si interviene con attività di reporting e

monitoraggio dei fattori stimati in fase di progettazione rilevando

eventuali scostamenti dai valori reali e procedendo con le rispettive

azioni correttive.

6. Terminazione: il progetto si conclude con la fase di consegna del

prodotto o del servizio.

Page 10: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

10

1.1.2. SCHEDULAZIONE DELLE ATTIVITA’ OPERATIVE.

La fase più importante del ciclo di vita di un processo è quella di

pianificazione, il cui ultimo scopo consiste nella stesura del piano

operativo che risulti ottimale sotto il duplice profilo economico e

temporale. Per conseguire tale risultato è necessario risolvere il

processo di schedulazione delle attività operative previste, basandosi

sui seguenti elementi di riferimento:

la durata delle attività: il tempo necessario affinché la stessa venga

completata;

le relazioni di dipendenza da altre attività: che rappresentano i

vincoli e le condizioni necessarie perché ciascuna attività possa

avere inizio;

le eventuali date imposte: le quali, se presenti, possono riguardare

l’inizio del progetto, il termine ultimo entro il quale lo stesso deve

concludersi, o qualsiasi altra data compresa nel periodo di

implementazione operativa che rappresenti una scadenza

significativa.

Il progetto è dunque visto come un insieme di attività che

interagiscono tra di loro, mentre per la sua rappresentazione, si fa

ricorso alle tecniche reticolari, che consentono di cogliere la natura

sistemica di un progetto facilitandone il controllo globale sotto il

profilo della valutazione economico-temporale necessaria al suo

completamento. Tali tecniche si fondano sulla teoria dei grafi.

Page 11: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

11

1.1.3. ANALISI DEL RETICOLO

Il processo d’analisi reticolare è finalizzato alla valutazione della data

più prossima entro la quale può concludersi l’iter realizzativo che il

reticolo stesso rappresenta.

Per implementare questo processo sono state sviluppate diverse

tecniche operative, tra le quali:

PERT: è l’acronimo di Program Evaluation and Review

Technique, consiste in una tecnica tesa ad evidenziare il cammino

critico all’interno di un reticolo. Questo metodo sviluppato nel

1958 in occasione del progetto POLARIS, tiene conto

dell’incertezza sui tempi di attuazione delle singole attività: per

ciascuna durata vengono stimati tre valori (pessimistico, probabile

e ottimistico) e la valutazione dell’arco temporale globale

necessario al completamento del progetto viene effettuato su base

statistica. Di conseguenza esso stabilisce un diverso indice di

criticità per ogni cammino possibile.

CPM: è l’acronimo di Critical Path Metod; è una tecnica di

risoluzione reticolare che permette di evidenziare quella particolare

sequenza di attività, il cammino critico, che all’interno del reticolo

generale rende minimo il tempo necessario al completamento del

progetto. Di conseguenza il ritardo accusato da una qualsiasi

attività che appartiene al cammino critico si ripercuote in ugual

misura sulla data di fine progetto. E’ basato su una definizione

delle attività di tipo deterministico, per cui, a ciascuna di esse viene

associata un’unica durata che viene considerata certa.

Page 12: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

12

1.2. LA LOGICA FUZZY

La maggior parte dei concetti con cui le persone hanno a che fare ogni

giorno sono soggettivi, difficili da quantificare e da classificare con

sicurezza. Ad esempio, non è possibile stabilire con certezza se una

persona è alta senza disporre di termine di paragone. Chiunque

affermerebbe che una persona della statura di due metri appartiene

alla categoria degli alti, ma nulla si potrà dire con certezza di

una persona di 178 cm o di una persona di 175 cm. Secondo la logica

matematica tradizionale, si dovrebbe definire un limite preciso al di

sopra del quale le persone si possono considerare alte: le persone che

misurano almeno 178 cm sono alte, le altre non lo sono. Si

comprende come una definizione di questo tipo sia poco

rappresentativa del modo di pensare umano. È molto più naturale

pensare all’insieme delle persone alte come ad un insieme che man

mano diminuisce in modo più o meno regolare, a partire dalle persone

che sono inequivocabilmente alte per arrivare a quelle che

certamente non lo sono. In questo caso chiunque stia tra i due estremi

è alto, ma solo parzialmente: qualcuno lo è di più, qualcun altro di

meno.

Risulta perciò evidente che l’appartenenza di una persona all’insieme

degli alti non segue i canoni della logica tradizionale, non è

esprimibile facilmente con un sì o un no. Tale appartenenza è invece

ben descritta definendo per ogni persona un certo grado di

appartenenza, che esprime “quanto” la persona appartiene

all’insieme degli alti. Lo stesso ragionamento si potrebbe ripetere per

concetti come velocità elevata, prezzo economico, clima freddo e così

via. La teoria della logica fuzzy si basa sulla definizione di insiemi

Page 13: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

13

“sfumati”, al fine di ottenere una rappresentazione più realistica di

grandezze e concetti che sono per loro natura graduali, non dicotomici.

Le variabili fuzzy non sono numeriche ma linguistiche, ed assumono

proprio valori come alto, basso, freddo, caldo.

La seconda caratteristica che avvicina la logica fuzzy al modo di

pensare umano, è il suo modo di rappresentare i ragionamenti. Di

solito i controlli impiegano formule matematiche e metodi numerici

per stabilire le corrispondenze tra le variabili d’ingresso e quelle

d’uscita. Il ragionamento umano è invece caratterizzato dall’utilizzo

di regole empiriche, a volte approssimative, dovute al buon senso o

all’esperienza, ma difficilmente traducibili in termini analitici. Anche

in questo caso la teoria fuzzy si rifà ai criteri decisionali umani,

utilizzando regole linguistiche e non matematiche per definire il modo

in cui le variabili si influenzano tra loro.

Nel guidare un’automobile eseguiamo continuamente azioni basate su

ragionamenti del tipo: se la velocità è elevata e l’ostacolo vicino, premi

forte sul pedale del freno; se la velocità è moderata e l’ostacolo si

trova a media distanza, premi leggermente sul pedale del freno.

Qualunque guidatore esegue spontaneamente e istantaneamente

ragionamenti del genere, mentre risulta molto più difficile

quantificare in modo preciso la forza in newton da applicare al pedale

del freno in corrispondenza di una certa velocità in chilometri orari e

di una certa distanza dall’ostacolo in metri.

Le regole linguistiche fuzzy sono analoghe alle regole descrittive

empiriche, e non richiedono l’utilizzo di formule o di complessi

modelli analitici.

I sistemi fuzzy si comportano in modo soddisfacente proprio in quelle

situazione che una persona saprebbe gestire con facilità, ma che

Page 14: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

14

risultano le più difficili da affrontare con metodi analitici, come

l’esempio della frenata appena descritto.

I sistemi basati sulla logica fuzzy sono particolarmente adatti a

lavorare in condizioni di incertezza e di disturbi nell’acquisizione

dei dati. Si adattano bene a processi variabili nel tempo o fortemente

non lineari, e quindi difficili da rappresentare con modelli matematici.

Caratteristica della fuzzy logic è la notevole facilità di utilizzo e di

comprensione, dovuta alla sua affinità con il ragionamento umano.

I sistemi gestiti con logica fuzzy sono in rapida espansione in molti

campi. Le grandi aree d’utilizzo sono prevalentemente due, i sistemi

di controllo e i sistemi esperti o di supporto decisionale. Esempi di

applicazioni del primo tipo sono la regolazione di umidificatori e

condizionatori, l’eliminazione delle vibrazioni e la messa a fuoco per

macchine fotografiche e telecamere, la gestione di sistemi di sicurezza

nei trasporti (come ABS, sospensioni intelligenti, mantenimento

automatico della distanza di sicurezza), la definizione delle strategie

di lavaggio per lavabiancheria in funzione delle caratteristiche del

carico. Tra le applicazioni decisionali si possono citare sistemi di

compravendita di azioni e di valutazione del rischio, sistemi per le

previsioni meteorologiche e geofisiche, riconoscitori di caratteri e di

immagini.

In molti sistemi fuzzy, le variabili d’ingresso sono espresse con valori

numerici (p. es. la temperatura letta da un sensore, o il costo di una

particolare decisione), ed è richiesto un valore numerico anche per le

risposte che il sistema deve fornire (la potenza da erogare ad un

condizionatore, l’entità di un investimento). In tali situazioni, si

presenta la necessità di creare un’interfaccia tra il ragionamento fuzzy

e il mondo dei numeri.

Page 15: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

15

A questo scopo si utilizzano le operazioni di fuzzificazione e

defuzzificazione, che trasformano un valore numerico in uno fuzzy e

viceversa. Tra queste due fasi si inserisce il processo d’inferenza

fuzzy, che fa corrispondere agli ingressi le uscite appropriate.

Tornando ai sistemi fuzzy di supporto decisionale, essi offrono un

vantaggio concettuale rispetto ai sistemi decisionali basati sulla

ricerca operativa o su altri metodi analitici. Quando si deve operare

una scelta basandosi sull’utilizzo di metodi analitici, ci si trova di

fronte ad uno spazio decisionale, finito o infinito, contenente le

alternative possibili. Si cerca allora di trovare l’alternativa che

massimizza una certa funzione obiettivo, rispettando nel contempo

una serie di vincoli. La funzione obiettivo permette di ordinare le

alternative secondo un grado di preferibilità, mentre i vincoli limitano

lo spazio delle alternative.

La scelta della funzione obiettivo, che deve essere formulata

analiticamente, e la definizione dei vincoli risultano perciò

determinanti sull’esito del processo.

Nei casi in cui si vogliano conseguire più obiettivi, specie se

contrastanti, ci si trova vincolati dai limiti di questa impostazione.

Al contrario, nella filosofia decisionale fuzzy, obiettivi e vincoli sono

gestiti allo stesso modo. Entrambi sono espressi tramite funzioni

particolari dette di appartenenza, mentre l’importanza e il ruolo che

assumono nel sistema vengono stabiliti da regole linguistiche. In

questo modo è molto più agevole far convivere obiettivi

concorrenti, e fornire delle indicazioni al sistema senza dover

necessariamente decidere se vanno usate come vincoli o come

obiettivi.

Page 16: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

16

1.2.1 INSIEMI FUZZY

Un insieme "fuzzy" A è una collezione di oggetti dell'universo del

discorso U che hanno una qualche proprietà in comune. L'insieme è

caratterizzato da una funzione d’appartenenza

: U[0,1]

che associa ad ogni elemento x di U un numero reale appartenente

all'intervallo [0,1]; esso rappresenta il grado di appartenenza di x

all'insieme A. In tal modo è generalizzato il concetto di funzione

caratteristica di un insieme A, che è un’applicazione : U0,1, a

valori nell’insieme di due soli elementi, 0,1, tale che gli elementi di

A corrispondono al valore 1, e quelli del complementare di A al valore

0,

A = xU : (x)=1

UNIONE:

Dati due sottoinsiemi fuzzy A, B dell’universo del discorso X, definiti

da due funzioni d’appartenenza A e B la loro unione viene definita

come quel sottoinsieme fuzzy di X la cui funzione di appartenenza e’

AB(x)=A(x) B(x)

dove il simbolo indica l’operazione di massimo.

INTERSEZIONE:

Dati due sottoinsiemi fuzzy A, B dell’universo del discorso X, definiti

da due funzioni d’appartenenza A e B la loro intersezione viene

Page 17: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

17

definita come quel sottoinsieme fuzzy di X la cui funzione di

appartenenza e’

AB(x)=A(x) B(x)

dove il simbolo indica l’operazione di minimo

COMPLEMENTO:

Il complemento di un sottoinsieme fuzzy A dell’universo del discorso

X e’ definito dalla funzione di appartenenza:

CA(x)=1-A(x)

EQUIVALENZA:

Due sottoinsiemi fuzzy A e B dell’universo del discorso X sono

equivalenti se e solo se le loro rispettive funzioni di appartenenza sono

uguali.

A = B A(x)=B(x) xX

Pare subito evidente che nella logica fuzzy non vale più né il principio

di non contraddizione (l’intersezione di A e ~A non fornisce l’insieme

vuoto), né il principio del terzo escluso (l’unione di A e ~A non

fornisce l’insieme U, con Mu(x) = 1 per tutti gli x dell’universo del

discorso).

Page 18: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

18

1.2.2. NUMERI FUZZY TRIANGOLARI

I numeri fuzzy si differenziano in relazione alla loro funzione

d’appartenenza. In letteratura si possono trovare diversi tipi di numeri

fuzzy, ad esempio i numeri fuzzy trapezoidali e triangolari.

Nell’ambito del lavoro di tesi saranno utilizzati i numeri fuzzy

triangolari, caso particolare di quelli trapezoidali.

E’ possibile definire i numeri fuzzy triangolari attraverso una terna

A=(xL, xm,xR)

dove xL e xR sono rispettivamente il limite minore e maggiore del

numero fuzzy considerato, mentre xm è l’elemento che ha il maggior

grado di appartenenza.

Un numero fuzzy triangolare ha come funzione d’appartenenza:

altrimenti 0

xxx se xx

x-x

xxx se xx

x-x

)x( RmRm

R

mLLm

L

A

(1.1)

e quindi viene rappresentato in questo modo:

1

xL xm xR

Fig.1.2.2.: Rappresentazione di un numero fuzzy triangolare

Page 19: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

19

1.2.3. OPERAZIONI SUI NUMERI FUZZY TRIANGOLARI

Le operazioni aritmetiche classiche possono essere utilizzate in modo

appropriato con i numeri fuzzy. In particolare, dati due numeri fuzzy

triangolari A = (a1, a2, a3 ) e B = (b1, b2, b3 ), si definisce:

i) Addizione

A(+)B = (a1, a2, a3 ) (+) (b1, b2, b3 )

= (a1+b1, a2 +b2, a3+b3 )

ii) Sottrazione

A(-)B = (a1, a2, a3 ) (-) (b1, b2, b3 )

= (a1-b3, a2 -b2, a3-b1).

1.2.4. CONFRONTO TRA NUMERI FUZZY TRIANGOLARI

Uno dei problemi fondamentali affrontato in letteratura è il confronto

tra numeri fuzzy. Nel lavoro si è scelto di utilizzare un unico metodo

detto pessimistico che considera solo i risultati peggiori che

potrebbero essere ottenuti da un numero fuzzy, perciò potrebbe essere

usato per prendere decisioni con forti rischi avversi. Tale metodo è

definito da Facchinetti et al in [4]. Il confronto tra due numeri fuzzy

triangolari si basa sul calcolo, per ogni numero, di una funzione di

preferenza.

Def.

Sia ξ un insieme di numeri fuzzy triangolari. A ξ sarà identificato

dalla sua funzione caratteristica:

Page 20: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

20

µA(x) =

3

32

32

3

21

12

1

1

,0

,

,

0,0

ax

axaaaax

axaaaax

ax

(1.2)

oppure dalla terna (a1, a2, a3 ).

Dato A ξ, definiamo Lower di A, in simboli Low(A), come il

numero identificato dalla seguente funzione caratteristica:

µLow(A)(x) =

altrimenti

axxA

,0

),(1 2 (1.3)

Low(A) rappresenta in qualche modo un’alternativa peggiore di A e

non è un numero triangolare fuzzy.

Definiamo la funzione di preferenza cosiddetta pessimistica φP:

ξXξ[0, 1] nel seguente modo:

φP(A, B) = x

max .1,0,maxmin,min1212

12)(

bbaabaxx BALow

Questa funzione esprime il valore più alto dell’intersezione tra µB e

µLow(A). Simmetricamente si ha:

φP(B, A) = x

max .1,0,maxmin,min1212

12)(

bbaaabxx ABLow

Dato

φP(A, B) + φP(B, A) = 1.

La funzione di preferenza pessimistica induce naturalmente su ξ

questa relazione:

A ~P B se e solo se φP(A, B) = φP(B, A).

Page 21: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

21

~P è una relazione di equivalenza su ξ e definendo sull’insieme

quoziente ξ / ~P la seguente relazione di preferenza:

A >P B se e solo se φP(A, B) > 21 .

Esempio

Dati due numeri fuzzy triangolari A = (3, 5, 7) e B = (4, 6, 8),

determinare il maggiore.

φP(A,B)=

411,0,

41maxmin1,0,

463545maxmin1,0,maxmin

1212

12

bbaaab

Verifichiamo che φP(A, B) = 41 è minore di

21 , quindi B > A.

Page 22: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

22

CAPITOLO 2

IL MODELLO DEL

MAKESPAN

Page 23: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

23

2.1 ANALISI TEMPORALE

Il tempo è la caratteristica principale delle attività e della gestione dei

progetti in generale; esso influenza direttamente gli altri parametri

gestionali e organizzativi, primo fra tutti il costo.

L’analisi temporale ci permette di definire in quanto tempo il progetto

terminerà e di analizzare le varie attività determinando quando esse

possono cominciare e quanto può essere ritardato il loro inizio senza

rallentare il proseguimento dell’intero progetto.

L’obiettivo si concentrerà sul calcolo del minimo tempo di

completamento del progetto e sull’identificazione delle attività

critiche.

La rappresentazione di un progetto si esplica con le reti di attività,

esse sono grafi che modellano le relazioni di precedenza che

intercorrono tra le attività di un progetto. Una relazione tipo Finish-

Start tra l’attività i e l’attività j indica che j non può iniziare prima che

i sia terminata, ossia i < j. Formalmente questa relazione è tale per cui

l’attività j non può iniziare prima che sia trascorso un certo tempo

FS(i,j) dalla fine di i. La quantità FS(i,j)min prende il nome di time-lag.

Esistono due possibili rappresentazioni di una rete di attività, una in

cui i nodi sono le attività e gli archi rappresentano i vincoli di

precedenza, Activity-on-Node (AoN). Oppure le attività possono

essere rappresentate sugli archi, ossia Activity-on-Arc (AoA).

Le reti utilizzate per rappresentare un progetto, nell’elaborato, sono

AoN. In questa variante gli unici nodi fittizi che può essere necessario

aggiungere sono quelli di inizio e fine progetto, nel caso non esista

un’unica attività iniziale o finale.

Una proprietà fondamentale della rete è che sia aciclica. Infatti, la

presenza di un ciclo implicherebbe l’esistenza una successione di

Page 24: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

24

attività i, j, k tale che i < j, j < k, e k < i, violando la transitività delle

relazioni di precedenza.

Figura 2.1.: Esempio di Rete AoN, con 5 attività {a, b, c, d, e} e i due nodi fittizi

di inizio e fine progetto {s, t}

2.2 DURATA DI UN PROGETTO

Si consideri un progetto, rappresentato mediante la rete AoN,

G=(V,A) in cui V rappresenta le attività del progetto, e A i vincoli di

precedenza. Sia dato un vettore delle durate d IR|V|, in cui di è la

durata nota e deterministica dell’attività i.

Un piano temporale (schedule) delle attività è un’assegnazione di

istanti di inizio alle attività.

Questa assegnazione specifica completamente l’allocazione temporale

delle attività, definite come interrompibili. Dunque, uno schedule è un

vettore ES = [ES1,…ESn]T, in cui ESi rappresenta il tempo minimo di

inizio dell’attività i.

Per ogni attività i V è definita un’altra variabile, LSi che rappresenta

il tempo massimo di inizio dell’attività.

s

d a

c

b e

t

Page 25: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

25

Sotto l’ipotesi di durata deterministica per ogni attività i V, si avrà

che LSi = ESi + di.

Considerando solo relazioni di precedenza finish-start, si ha il vincolo

lineare LSi ≤ ESj per ogni (i, j) A, ed eliminando le LSi , si ha ESi +

di ≤ ESj per ogni (i, j) A.

L’obiettivo su cui porre l’attenzione è quello di determinare la durata

minima del progetto; deducendo dalla rappresentazione AoN la

presenza di un’attività di inizio e di fine progetto, si mira a

determinare il minimo valore della differenza tra l’istante di inizio

dell’attività conclusiva e dell’attività iniziale (siano tali attività fittizie

o reali), ovvero ESn – ES1, noto in letteratura come makespan.

2.3 FORMULAZIONE DEL MAKESPAN

Per formulare il problema di minimizzare il makespan, basta

introdurre un vincolo per ciascuna attività, dal momento che non sono

state fatte considerazioni sulla presenza di risorse o budget limitato e i

soli vincoli introdotti definiscono che l’esecuzione di ciascuna attività

è subordinata al completamento delle attività che la precedono.

Dato il grafo aciclico G = (V, A), in cui indichiamo con 1 il nodo

iniziale e con N il nodo finale, si ha:

ViESAjiESdES

asESES

i

jii

N

0

),(..

min 1

(2.1)

Page 26: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

26

Consideriamo il seguente esempio:

Figura 2.3.: Esempio di rete AoN

Il problema si formula nel modo seguente:

Min ES8 – ES1

s.a

ES1 + 0 ≤ ES2

ES1 + 0 ≤ ES3

ES1 + 0 ≤ ES4

ES2 + 2 ≤ ES5

ES3 + 1 ≤ ES6

ES4 + 5 ≤ ES6

ES4 + 5 ≤ ES7

ES5 + 1 ≤ ES6

ES6 + 2 ≤ ES8

Page 27: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

27

ES7 + 7 ≤ ES8

ESi ≥ 0 i V

Questo caratteristico problema di PL può essere riscritto in forma più

efficiente, cambiando i vincoli del problema nella forma ≥, e

rimuovendo i vincoli di non negatività. Si ottiene la seguente

formulazione:

( 2.2 )

Il problema (2.2) è equivalente al problema originario pur avendo

eliminato i vincoli di non negatività, perché da una soluzione del (2.2)

si può sempre ottenere una soluzione equivalente per il problema

(2.1).

In particolare se s* è una soluzione ottima del (2.2) e –k è il valore

della sua componente più negativa ( k ≥ 0 ), ponendo ESi’ = ESi* + k

per ogni i V si ha che ES’ soddisfa tutti i vincoli di (2.1) e le due

funzioni obiettivo hanno lo stesso valore. E si può risolvere il (2.2)

anziché (2.1).

Si scrive il duale del problema (2.2) osservando che i vincoli primali

sono associati agli archi (i, j) A del grafo G. Il termine noto di può

essere quindi interpretato come lunghezza lij dell’arco (i, j) . Per ogni

(i, j) A associamo al vincolo (i, j) la variabile non negativa duale xij .

Ajidiij

),(ESESs.a

ESESmin 1N

Page 28: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

28

I vincoli duali sono associati ai nodi e sono di uguaglianza perché le

variabili primali in (2.2) non sono vincolate. Il problema duale

risultante può essere rappresentato mediante il seguente modello

matematico:

0x

1x

1x

V 0xxs.a.

xlmax

)(:j

)(:j

j)(i,:j)

A

ij

Anj,jn

Aj1,

ijAi(j,:j

ji

ijji,

ij

1j

n1,i

( 2.3 )

In questa rappresentazione è ben nota la formulazione del problema di

determinare un cammino di lunghezza massima dal nodo 1 al nodo n

in G = (V, A). Poiché il grafo G è aciclico, possiamo essere certi che il

problema è ben posto.

Dalla dualità forte, deriva che all’ottimo le funzioni obiettivo dei due

problemi hanno lo stesso valore: il makespan del progetto coincide

con la lunghezza del cammino massimo sul grafo G, ove gli archi

uscenti da ciascun nodo i sono pesati con la durata di di quella attività.

Page 29: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

29

2.4. RELAZIONI DI PRECEDENZA GENERALIZZATE

Tra le relazioni di precedenza sono state definite tra attività le

relazioni di precedenza generalizzate, che possono essere espresse

con vincoli lineari sulle variabili ES e LS. Queste relazioni non legano

solo l’istante finale di un’attività con quello iniziale di un’attività

successiva, ma anche, tra loro, gli istanti iniziali, quelli finali, o quello

iniziale con quello finale di un’attività. In generale esistono dei time-

lag che impongono una distanza minima o massima tra questi istanti.

E’ naturale concepire quattro tipi di relazioni:

1. Relazioni di tipo start-start. Vincolano gli istanti di inizio tra due

attività: l’attività j può iniziare al più presto dopo SS(i, j)min unità di

tempo dall’inizio dell’attività i: ESi + SS(i, j)min ≤ ESj (relazione di

tipo min), oppure: l’attività j deve iniziare al più tardi dopo SS(i,

j)max dall’inizio dell’attività i: ESj ≤ ESi + SS(i, j)max.

2. Relazioni di tipo start-finish. Vincolano l’istante di inizio di

un’attività con quello di fine di un’altra: l’attività j può finire al più

presto SF(i, j)min unità di tempo dall’inizio dell’attività i: ESi +

SF(i, j)min ≤ LSj (relazione di tipo min), oppure: l’attività j può

finire al più tardi SF(i, j)max unità di tempo dall’inizio dell’attività i:

LSj ≤ ESi + SF(i, j)max (relazioni di tipo max).

3. Relazioni di tipo finish-start. Sono quelle classiche con l’aggiunta

dei time-lag. L’attività j può iniziare al più presto FS(i,j)min unità di

tempo dalla fine dell’attività i: LSi + FS(i,j)min ≤ ESj (relazione di

tipo min), oppure: l’attività j può iniziare al più tardi dopo

FS(i,j)max unità di tempo dalla fine dell’attività i: ESj ≤ LSi +

FS(i,j)max (relazioni di tipo max).

4. Relazioni di tipo finish-finish. Vincolano gli istanti finali di due

attività: l’attività j può finire al più presto FF(i,j)min unità di tempo

Page 30: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

30

dalla fine dell’attività i: LSi + FF(i,j)min ≤ LSj (relazione di tipo

min), oppure: l’attività j può finire al più tardi dopo FF(i,j)max unità

di tempo dalla fine dell’attività i: LSj ≤ LSi + FF(i,j)max (relazione

di tipo max).

Possibili applicazioni di queste relazioni sono identificabili

frequentemente, in contesti anche molto diversi.

Il problema di trovare un piano delle attività che minimizzi il tempo di

completamento in presenza di relazioni di precedenza generalizzate

può essere affrontato in termini di programmazione lineare.

I vincoli del problema sono riscritti nella forma normalizzata di “≤” e

in funzione delle sole variabili ES, sapendo che LSi = ESi + di:

ESi + lij ESj

Oppure

ESj + lji ESi

dove lij e lji sono opportune costanti, chiamate “lag normalizzati”.

Ad esempio, il vincolo ESi + SS(i, j)min ESj diventa ESi + lij ESj,

ove si ponga lij = SS(i, j)min.

Il vincolo ESi + SF(i, j)max ≥ LSj diviene ESj + lji ESi, con lji = dj -

SF(i,j)max. Procedendo in maniera analoga è possibile ricavare tutte le

normalizzazioni delle relazioni temporali. Si osservi che il vincolo

finish-start senza time lag (FS(i, j)min=0) si traduce come lij = di.

Page 31: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

31

Relazione Vincolo Vincolo

Normale

Lag

normalizzato

SS(i, j)min ESi + SS(i, j)min ESj

ESi + lij ESj

lij = SS(i, j)min

SS(i, j)max ESi + SS(i, j)max ESj

ESj + lji ESi

lji = -SS(i, j)max

SF(i, j)min

ESi + SF(i, j)min LSj

ESi +lij ESj

lij= -dj + SF(i,j)min

SF(i, j)max

ESi + SF(i, j)max LSj

ESj +lji ESi

lji= dj -SF(i,j)max

FS(i, j)min

LSi + FS(i, j)min ESj

ESi + lij ESj

lij=di+ FS(i,j)min

FS(i, j)max

LSi + FS(i, j)max ESj

ESj + lji ESi

lji=-di- FS(i,j)max

FF(i,j)min LSi + FF(i,j)min LSj

ESi + lij ESj

lij = di - dj + FF(i,j)min

FF(i,j)max LSi + FF(i,j)max LSj

ESj + lji ESi

lji = dj - di - FF(i,j)max

Tabella 1: Normalizzazione delle precedenze generalizzate

Anche in presenza di vincoli di precedenza generalizzati, possiamo

utilmente rappresentare il progetto per mezzo di una rete AoN. Mentre

finora l'arco (i,j) indicava semplicemente che l'attività j doveva

seguire la i, adesso utilizziamo gli archi per rappresentare anche

l'informazione associata alle relazioni normalizzate. Precisamente,

abbiamo che nella rete AoN esiste l'arco (k,q) dal nodo k al nodo q se

Page 32: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

32

e solo se esiste una relazione normalizzata specificata da un parametro

di tipo SS(k,q), SF(k,q), FS(k,q) o FF(k,q), sia di tipo min che max. Da

questa rete AoN è possibile ricavare una rappresentazione

normalizzata, in cui cioè l'arco è orientato da k a q se la relazione è

della forma ESk + lkq ESq.

Si noti come la presenza di una relazione di tipo max tra due attività i

e j porta all'introduzione di un arco dal nodo j al nodo i, ovvero

orientato inversamente rispetto alla relazione.

L'arco è pesato con il lag normalizzato lkq. La rete ottenuta prende il

nome di constraint digraph (grafo orientato vincolato).

Dato dunque un constraint digraph G = (V, E), il problema di trovare

un piano delle attività ammissibile che minimizzi il makespan può

essere formulato come:

min ESn

ESi + lij ESj (i, j) E

ESi 0 i V (2.4)

dove ESn è l'inizio dell'attività n (eventualmente fittizia) di fine

progetto.

Occorre valutare alcune importanti osservazioni nella costruzione del

grafo dei vincoli. Anzitutto, se ci sono archi paralleli, basta

considerare quello di peso massimo: infatti, se si hanno entrambi i

vincoli ESi + 2 ESj e ESi + 3 ESj , il secondo domina il primo, che

può essere quindi omesso. In effetti, una stessa coppia di attività può

essere legata da più relazioni di precedenza generalizzate: la più

"stringente" delle relazioni di tipo min (ossia quella con lij massimo)

obbligherà j a iniziare dopo l'istante ESi + lij , mentre la più stringente

Page 33: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

33

di quelle di tipo max (quella con lji massimo) vincolerà j a iniziare non

oltre si-lji. In generale, si può dunque individuare un intervallo [ESi +

lij ; ESi - lji], detto finestra temporale (time window) di ESj

relativamente a ESi.

Si noti che in generale occorrerà imporre esplicitamente il fatto che

ogni attività termini prima che l'attività n inizi: infatti, adesso la

presenza di un arco da i a j non garantisce più che j inizi dopo che i è

finita: in una relazione start-start abbiamo solo che j inizia (almeno

SS(i, j)min istanti) dopo l'inizio di i, ma se per esempio j è molto lunga,

è anzi probabile che termini dopo la fine di i. Perciò, se un nodo i non

è coinvolto esplicitamente in relazioni FS(i, j)min con qualche altro

nodo j, si deve aggiungere al grafo un arco (i, n) di peso FS(i, n)min =

0. Solo laddove, invece, la fine di i preceda strettamente l'inizio di

qualche altra attività j, questa relazione risulta essere ridondante, e

l'arco (i, n) può dunque essere omesso. Per motivi del tutto simmetrici,

aggiungeremo anche archi del tipo (1, i) di peso FS(1, i)min = 0.

Si riporta un esempio di un progetto rappresentato tramite la rete AoN

in cui sono state aggiunte le informazioni relative alle precedenze

generalizzate e il corrispondente constraint digraph.

Figura 2.4. a): AoN con precedenze generalizzate

Page 34: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

34

Figura 2.4. b): Digrafo dei vincoli associato al reticolo

2.5. RICERCA DEL CAMMINO CRITICO

La ricerca del cammino critico in una rete di attività viene fatta

implementando la tecnica di risoluzione reticolare descritta in

precedenza, il CPM.

Il cammino critico è definito come il cammino massimo dal nodo 1, di

inizio progetto, al nodo n, di fine progetto.

Il peso del cammino massimo dal nodo 1 al nodo n corrisponde alla

durata minima dell’intero progetto, cioè al makespan.

Nell’analisi dei cammini critici svolge un ruolo di primaria

importanza il concetto di Tempo di slittamento o total float.

I concetti di percorso critico e di earliest/latest start/finish schedule

evidenziano che, per portare a termine un progetto nei tempi previsti,

non tutte le attività hanno la stessa importanza.

Il total float TFj dell’attività j è la quantità di tempo di cui può essere

ritardata l’attività j, rispetto al proprio ESTj , senza che la data di fine

progetto venga violata. Si ha che TFj = LSTj - ESTj = LFTj - EFTj . Il

total float misura il margine di libertà che si ha nello schedulare

Page 35: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

35

un’attività. Se il total float di un’attività è 0, allora questa attività è

critica, e dunque ogni attività che sta sul cammino critico ha total float

pari a 0. Il margine misurato dal total float è effettivamente

disponibile solo se nessuno dei predecessori di j termina dopo ESTj e

nessuno dei successori inizia prima di LFTj , circostanze che invece

possono benissimo verificarsi. Ossia, la eventuale decisione di

schedulare j in modo che termini all’istante LFTj può, in generale,

costringere altre attività ad iniziare più tardi.

Si è visto che il total float è pari a LFTj - EFTj , se però qualche

successore di j è schedulato in modo da terminare prima del proprio

latest finish time, questo può impedire a j di terminare a LFTj. Di

certo, comunque, non si potrà obbligare j a terminare prima di

mini>j{ESTi}. Il free float FFj dell’attività j è la quantità di tempo di

cui la fine dell’attività j può essere ritardata indipendentemente dalla

schedulazione dei successori, ed è pari a FFj = mini > j{ ESTi} - EFTj .

In altre parole, che l’attività inizia a ESTj o a ESTj + FFj non ha alcun

impatto sulle attività aventi indice i > j.

Simmetricamente, se qualche predecessore di j inizia dopo il proprio

earliest start time, anche j potrà essere obbligato a iniziare dopo ESTj ;

in nessun caso sarà costretto a iniziare dopo maxi <j { LFTi}. Il safety

float SFj dell’attività j può essere ritardato indipendentemente dalla

schedulazione dei predecessori, ed è pari a SFj = LSTj - maxi <j{ LFTi}.

Esistono diversi algoritmi per il calcolo del cammino di peso

massimo, con complessità variabili. Di seguito si considererà

l’algoritmo di Bellman-Ford.

Page 36: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

36

2.6. ALGORITMO DI BELLMAN-FORD.

Il problema di determinare l'earliest start time ESi di ogni attività i

V , consiste nel trovare il valore del cammino orientato di costo

massimo dal nodo 1 al nodo i. Questo problema può essere risolto se e

solo se il grafo non contiene cicli orientati di lunghezza strettamente

positiva. Come è evidente nell’esempio seguente.

Si consideri un progetto costituito da tre attività, a, b, c, con le durate:

da = 4, db =2, dc = 1.

Si sa che l’attività b può iniziare al più presto 9 giorni dall’inizio

dell’attività a, l’attività c al più tardi 8 giorni dalla fine dell’attività b,

e inoltre l’attività c deve finire al più tardi entro 16 giorni dall’inizio

dell’attività a.

I tre vincoli generalizzati sono dunque dati da SS(a,b)min = 9,

FS(b,c)min = 8, SF(a,c)max =16.

Nella rappresentazione AoN, si ha il ciclo {(a,b); (b,c); (c,a)}, con

pesi:

lab = 9, lbc = 10, lca = -15,

dunque un ciclo positivo.

Andando a scrivere le corrispondenti relazioni, si ottiene:

ESa + 9 ESb

ESb + 10 ESc

ESc - 15 ESa

Sommando le tre disequazioni si ottiene 40, ovvero un assurdo. E

questo vale per un qualunque ciclo C positivo. Ma nei casi più

complessi può succedere di non accorgersi della presenza di eventuali

cicli positivi, e l’algoritmo di Bellman-Ford permette di superare

queste difficoltà.

Page 37: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

37

Esso funziona nel seguente modo. Lo scopo è il calcolo delle date

minime di inizio di ogni attività. Le variabili che vengono via via

aggiornate nel corso dell'esecuzione dell'algoritmo rappresentano un

vettore di istanti di inizio, non necessariamente ammissibile, delle

varie attività, che alla fine conterranno le date minime di inizio di

ciascuna attività.

Dato il constraint digraph G, inizialmente viene scelto un ordinamento

degli archi e definita una soluzione iniziale, non necessariamente

ammissibile(ad esempio ESi := -).

A ogni iterazione, tutti gli archi di G vengono visitati, seguendo

l'ordine prefissato, e viene effettuata la seguente operazione: se per un

arco (i, j) si ha che ESj < ESi +lij violando il corrispondente vincolo, si

pone ESj := ESi + lij.

Se durante un'iterazione non si verifica alcun aggiornamento,

l'algoritmo termina e ESTi = ESi , il valore ESi corrente corrisponde

all’earliest start time di i.

L'algoritmo si arresta quando le etichette non vengono più aggiornate

per tutta una iterazione del blocco repeat, oppure, comunque, dopo n

iterazioni.

L’algoritmo può essere schematizzato come segue:

Input: G

Output: ES e pred

Inizializzazione: ES1 := 0; ESi := -; pred(i) = 0 i = 2,…,n.

begin

Ordina gli archi {e1,……, em}

Page 38: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

38

repeat

for k = 1…..m

if ek = (i, j) è tale che ESj < ESi + lij ESj = ESi + lij Predj = i

end

end

until

(ES non si è modificato o sono state eseguite n iterazioni)

end.

Fig. 2.6. : Algoritmo di Bellman-Ford.

Page 39: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

39

CAPITOLO 3

IL MODELLO DEL

MAKESPAN DI TIPO

FUZZY

Page 40: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

40

3.1. INTRODUZIONE E ANALISI DELLA LETTERATURA

Nel modello del Makespan l’obiettivo è quello di determinare la

durata minima del progetto a cui corrispondeva il cammino critico.

Nel caso del makespan classico, la durata delle varie attività è certa e

determinata in base all’esperienza del decisore e ai dati storici di cui

dispone. Ma nella realtà, le informazioni di cui dispone non sono

attendibili, perché gli scenari interni o esterni possono essere variati,

perché si possono verificare imprevisti e rallentamenti o perché sono

stati apportati cambiamenti nel processo gestionale del progetto per

cui non si dispone di dati storici rendendo obsoleti quelli che si

dispongono.

Tutto ciò può portare a risultati che si discostano di molto dai valori

reali, con implicazioni sugli obiettivi più importanti del Project

Management, vale a dire il tempo e il costo.

Spesso è molto difficile ottenere le durate esatte delle attività e si

usano termini linguistici quali “Approssimativamente tra 9 e 15 ore” o

“ Intorno a 22 ore”, per dare una stima sulle durate delle varie attività.

Queste espressioni di natura vaga e imprecisa in qualche modo

sintetizzano quello che non si può affermare con certezza.

E in questo ambiente la teoria degli insiemi Fuzzy può giocare un

ruolo significativo nel decision-making, perché con essa si possono

rappresentare in maniera esaustiva questi termini linguistici sinonimo

di vaghezza.

Con l’inizio della seconda metà degli anni ’70, quando la logica Fuzzy

già si estese in molti campi scientifici e culturali, venne sviluppato

l’altro approccio all’analisi della progettazione della rete, definito

come Fuzzy Pert o CPM Fuzzy, in cui si utilizzano numeri fuzzy per

modellizzare i tempi di attività.

Page 41: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

41

Le classiche formule usate nel CPM vengono modificate utilizzando

le operazioni generalizzate sui numeri fuzzy. Le formule e le relazioni

cosi modificate sono usate per definire le caratteristiche di molti

progetti, tra cui la più importante tra loro, cioè il grado della criticità

dei cammini e delle attività.

Le proprietà che sono equivalenti nel caso deterministico e portano

all’identificazione unica del cammino critico, non possono giocare

tale ruolo se esse sono automaticamente trasferite al caso fuzzy. Come

risultato sono state ottenute diverse definizioni del cammino critico

fuzzy che danno diverse stime del grado di criticità per lo stesso

cammino nella rete.

In [1] la nozione di criticità viene generalizzata direttamente senza

usare le operazioni aritmetiche generalizzate sui numeri fuzzy. Cioè,

la criticità del cammino viene considerata come una funzione a due

valori che dipende dal cammino e dai tempi di durata delle attività

assunte nella rete.

Questa funzione prende uno dei due valori “SI” o “NO”

dipendentemente dal fatto che il cammino dato è critico o non-critico

sui tempi di durata delle attività crisp assunte.

Prima di esporre il CPM con tempi di attività fuzzy, viene introdotto il

classico CPM e il CPM con tempi di attività a intervallo che è la

variante che più si avvicina al caso fuzzy.

In questa analisi le attività del progetto sono rappresentate sugli archi

della rete e le relative durate da numeri fuzzy trapezoidali.

Un altro approccio è stato presentato in [2], dove viene mostrato che

ulteriori estensioni possono essere fatte considerando la sottrazione

interattiva fuzzy e osservando che solo la parte non negativa dei

numeri fuzzy può avere un’interpretazione fisica. Sulla base di queste

Page 42: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

42

due osservazioni sono state definite le formule per il calcolo

dell’ultimo tempo di inizio permesso e dello slittamento per ogni

attività.

Anche qui è usata una rappresentazione “Activity-on-Arc” ma i tempi

di durata delle attività sono rappresentati da numeri fuzzy triangolari.

Nuovi algoritmi per determinare gli intervalli dei latest start time e dei

floats di attività in reti generali con durate imprecise rappresentate per

mezzo di numeri o intervalli fuzzy, sono proposti in [5] , dove sono

ottenuti anche risultati di complessità per il calcolo dei floats.

In [6] viene presentato un altro modello per la completa soluzione

dell’analisi di criticità di una rete di attività, dove le rispettive durate

non sono determinate ma rappresentate da intervalli di valori (non si

parla di numeri fuzzy). E viene mostrato come la complessità

dell’algoritmo cambia, considerando la durata delle attività certa o

incerta.

Un algoritmo semplice ed efficiente per l’analisi del cammino critico

in circostanze fuzzy è presentato in [7], dove i tempi di attività della

rete del progetto sono rappresentati da numeri fuzzy trapezoidali.

Sono proposte delle proprietà per il calcolo dello slittamento fuzzy e

del cammino critico fuzzy, applicate in una rete di progetto dove le

attività sono rappresentate sugli archi.

Le proprietà descritte per il calcolo di EST e di LST, sono simili al

caso del CPM classico con numeri crisp ma computate con le

operazioni aritmetiche sui numeri fuzzy.

Page 43: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

43

3.2. IL MODELLO

Gli algoritmi descritti nel precedente paragrafo portano a ottimi

risultati per quanto concerne l’effettiva approssimazione della realtà,

con i suoi imprevisti e le sue incertezze, nell’analisi temporale dello

sviluppo di un progetto.

Essi, però, non considerano la possibilità che tra le diverse attività del

progetto vi siano relazioni di precedenza diverse da quelle classiche

di finish-start, cioè la presenza di relazioni di precedenza

generalizzate che legano tra loro gli istanti di inizio e di fine di

un’attività con i corrispettivi istanti di un’altra attività.

L’obiettivo di questo lavoro è quello di sfruttare l’elasticità e la

dinamicità di una rete di progetto date dalla presenza delle suddette

relazioni di precedenza generalizzate tra le varie attività e avvalersi

dei benefici della logica fuzzy applicata per rappresentare il tempo di

durata delle attività, che con i suoi toni di vaghezza riesce ad

approssimare al meglio la realtà in un ambiente dove la certezza

deterministica è spesso un’utopia.

A differenza degli algoritmi sul CPM fuzzy presenti in letteratura, la

rete di attività del progetto, e dunque il grafo orientato, è mostrata

mediante la rappresentazione Activity-on-Node(AoN), dove i nodi

rappresentano le attività e gli archi rappresentano i vincoli relativi alle

relazioni di precedenza generalizzate.

I tempi di durata delle attività e i time-lag delle relazioni di

precedenza generalizzate sono rappresentati da numeri fuzzy

triangolari, descritti nel paragrafo 1.2.2. con le rispettive operazioni.

L’idea è quella di applicare l’algoritmo di Bellman-Ford per il

cammino massimo modificato, descritto nel paragrafo 2.6.,

espandendolo al caso di tempi di tipo fuzzy.

Page 44: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

44

Dato il grafo constraint digraph G = (V, A), in cui indichiamo con 1 il

nodo iniziale e con N il nodo finale, si ha:

ViFESAjiFESlFES

asFES

Fi

jFiji

N

0

),(..

min

(3.1)

Questo problema può essere risolto se e solo se il constraint digraph

non contiene cicli orientati di lunghezza strettamente positiva,

altrimenti ci si trova di fronte ad una incongruenza nella definizione

del progetto: si sarebbero cioè presi impegni impossibili da rispettare.

Definiamo la condizione per cui un ciclo orientato è di lunghezza

strettamente positiva, osservando la formula per il confronto dei

numeri fuzzy triangolari, descritta dal metodo pessimistico di

Facchinetti:

xP BA max),( .1,0,maxmin,min

1212

12)(

bbaabaxx BALow

Sia A = (a1,a2,a3) il numero fuzzy triangolare ottenuto sommando i

pesi degli archi appartenenti al ciclo orientato e sia B = (0,0,0) il

numero fuzzy zero, la formula diventa:

),( BAP = x

max .1,0,maxmin,min12

2)(

aaaxx BALow

Il numero fuzzy A è strettamente maggiore di zero se e solo se

21

12

2

aaa , e cioè se 21 aa .

Page 45: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

45

Si consideri, ad esempio, un progetto costituito da tre attività, a, b, c,

con le rispettive durate:

FDa = (3,4,6), FDb = (1,2,3), FDc = (0.5,1,2).

Si sa che b può iniziare al più presto 9 giorni dall’inizio di a, c al più

tardi 8 giorni dalla fine di b, e inoltre c deve finire al più tardi entro

16 giorni dall’inizio di a. I tre vincoli generalizzati sono dunque:

SS(a,b)min = (9,9,9), FS(b,c)min = (8,8,8), SF(a,c)max = (16,16,16).

Nella rappresentazione AoN, si ha il ciclo {(a,b), (b,c), (c,a)}, con

pesi:

lab = (9,9,9), lbc = (9,10,11), lca = (-15.5,-15,-14),

mediante l’addizione e il confronto fuzzy otteniamo che è un ciclo

positivo.

Andando a scrivere le corrispondenti relazioni, si ottiene:

FESa + (9,9,9) FESb

FESb + (9,10,11) FESc

FESc+(-15.5,-15,-14) FESa

Sommando le tre disequazioni si ottiene (2.5,4,6) (0,0,0), ovvero un

assurdo.

Dopo aver calcolato per ogni attività gli EST e LST, procedendo con

l’algoritmo di Bellman-Ford in avanti e indietro, si calcola lo

slittamento totale fuzzy come differenza tra il tempo di inizio al più

tardi e il tempo di inizio al più presto per ogni attività del progetto.

Sfruttando le proprietà presentate in [7] per il calcolo dello slittamento

fuzzy e per la ricerca del cammino critico fuzzy, dopo averle adattate e

riorganizzate per i numeri fuzzy triangolari e per la rappresentazione

AoN, si calcola il CPM fuzzy della rete.

Page 46: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

46

Il Makespan sarà dato dal tempo fuzzy dell’EST dell’ultima attività

del progetto.

3.3. DESCRIZIONE DELL’ALGORITMO RISOLUTIVO

Di seguito si riporta la descrizione dell’algoritmo risolutivo del

Makespan in una rete di attività sottoposte a relazioni di precedenza

generalizzate e con tempi di durata rappresentati da numeri fuzzy

triangolari.

NOTAZIONI

N : Insieme dei nodi del progetto.

A : Insieme degli archi della rete.

FDTi : Il tempo di durata fuzzy dell’attività i.

FESi : Erliest Start Time fuzzy dell’attività i.

FLFi : Latest Finish Time fuzzy dell’attività i.

FLSi : Latest Start Time fuzzy dell’attività i.

Pi : Il cammino i-esimo.

P : L’insieme di tutti i cammini della rete.

FTSi : Lo slittamento totale fuzzy dell’attività i.

FCPM(Pk) : Il tempo totale fuzzy di slittamento del cammino Pk

Le notazioni , , F ( F ) rappresentano rispettivamente

l’addizione fuzzy, la sottrazione fuzzy e il confronto fuzzy secondo il

metodo Pessimistico di Facchinetti et al.

Dato un progetto, con le durate delle attività e i time-lag rappresentate

da numeri fuzzy triangolari, da cui è stato derivato il constraint

Page 47: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

47

digraph associato analizzando le relazioni di precedenza generalizzate,

la descrizione dell’algoritmo del cammino critico fuzzy è la seguente:

1) Inizializzazione

Porre FES1 = (0,0,0), FESi = (-,-,-), i =2,…,n

2) Ordinare gli archi {e1,…,em}.

3) Calcolare FESi , i=2,…,n

for k = 1,…,m

if ek = (i, j) è tale che FESj F FESi lij

FESj = FESi lij

end

end

4) Porre FLSn = FESn , FLSi = (+,+,+), i =1,…,n-1

5) Calcolare FLSi , i = 1,…,n-1

for k = 1,…,m

if ek = (i, j) è tale che FLSi F FLSj lij

FLSi = FESj lij

end

end

6) Calcolare FTSi , i = 1,…,n-1

FTSi = FLSi FESi

7) Trovare tutti i possibili cammini sulla rete del progetto e

calcolare FCPM(Pk):

FCPM(Pk) =

k

ki

PiPPFTS ,

8) Trovare il cammino critico fuzzy PC:

FCPM(PC) = PPPFCPM ii |min

Page 48: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

48

CAPITOLO 4

ESEMPIO DI

APPLICAZIONE

DELL’ALGORITMO

Page 49: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

49

4.1. APPLICAZIONE DELL’ALGORITMO RISOLUTIVO

Si consideri un progetto costituito da quattro attività. I tempi di durata

di queste attività non sono certi e dopo un’analisi dei dati storici si è

deciso di rappresentarle per mezzo di numeri fuzzy triangolari,

attribuendo i seguenti valori:

FDT1= (0,0,0), FDT2= (3,4,5), FDT3= (2,3,5), FDT4= (3,4,6).

L’attività 2 può iniziare al più presto 2 giorni dopo la fine dell’attività

1 e può iniziare al più presto 5 giorni dall’inizio dell’attività 3; la

stessa attività 3 può iniziare al più presto 4 giorni dalla fine

dell’attività 1 e può iniziare al più tardi 6 giorni dalla fine dell’attività

1. L’attività 4 deve iniziare non appena terminano le attività 2 e 3.

Si determinino il Makespan del progetto e il cammino critico della

rete.

I vincoli delle relazioni di precedenza generalizzati sono dunque:

FSmin(1,2) = (2,2,2), FSmax(1,3) = (6,6,6), FSmin(1,3) = (4,4,4),

SSmin(3,2) = (5,5,5), FSmin(2,4) = (0,0,0), FSmin(3,4) = (0,0,0).

Da essi si costruisce la rete del progetto:

Fig. 4.1.a): Rete di progetto.

1

2

3

4

FSmin=(2,2,2)

FSmin=(4,4,4)

SSmin=(5,5,5)

FSmin=(0,0,0)

FSmin=(0,0,0)

FSmax=(6,6,6)

Page 50: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

50

Dall’analisi delle relazioni di precedenza generalizzate, si ricavano i

pesi degli archi, lij, e si costruisce il constraint digraph:

Fig. 4.1.b): Constraint digraph

Si inizializzano gli istanti di inizio e si ordinano gli archi:

FES1 = (0,0,0), FESi= (-∞,-∞,-∞) i =2,…,4

e1=(1,2), e2=(1,3), e3=(2,4), e4=(3,1), e5=(3,2), e6=(3,4).

Si calcolano gli FESi :

Iterazione 1

k=1

FES2 F FES1 l12

(-∞,-∞,-∞) F (0,0,0) (2,2,2)

(-∞,-∞,-∞) F (2,2,2) FES2 = (2,2,2)

k = 2

FES3 F FES1 l13

(-∞,-∞,-∞) F (0,0,0) (4,4,4)

(-∞,-∞,-∞) F (4,4,4) FES3 = (4,4,4)

k = 3

FES4 F FES2 l24

1

2

3

4

(2,2,2)

(-6,-6,-6)

(4,4,4)

(5,5,5)

(2,3,5)

(3,4,5)

Page 51: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

51

(-∞,-∞,-∞) F (2,2,2) (3,4,5)

(-∞,-∞,-∞) F (5,6,7) FES4 = (5,6,7)

k = 4

FES1 F FES3 l31

(0,0,0) F (4,4,4) (-6,-6,-6)

(0,0,0) F (-2,-2,-2) non si aggiorna

k = 5

FES2 F FES3 l32

(2,2,2) F (4,4,4) (5,5,5)

(2,2,2) F (9,9,9) FES2 = (9,9,9)

k = 6

FES4 F FES3 l34

(5,6,7) F (4,4,4) (2,3,5)

(-∞,-∞,-∞) F (6,7,9) FES4 = (6,7,9)

Iterazione 2

k = 1

Non si aggiorna

k = 2

Non si aggiorna

k = 3

FES4 F FES2 l24

(6,7,9) F (9,9,9) (3,4,5)

(6,7,9) F (12,13,14) FES4 = (12,13,14)

Nessuno degli altri valori viene aggiornato

Si prosegue con l’algoritmo procedendo all’indietro.

Page 52: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

52

Inizializzazione:

FLS4 = (12,13,14) , FLSi = (+,+,+), i =1,…,3

Iterazione 1

k = 1

FLS1 F FLS2 l12

(+,+,+) F (+,+,+) (2,2,2) non si aggiorna

k = 2

Non si aggiorna

k = 3

FLS2 F FLS4 l24

(+,+,+) F (12,13,14) (3,4,5)

(+,+,+) F (7,9,11) FLS2 = (7,9,11)

k = 4

Non si aggiorna

k = 5

FLS3 F FLS2 l32

(+,+,+) F (7,9,11) (5,5,5)

(+,+,+) F (2,4,6) FLS3 = (2,4,6)

k = 6

FLS3 F FLS4 l34

(2,4,6) F (12,13,14) (2,3,5)

(2,4,6) F (7,10,12) non si aggiorna

Page 53: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

53

Iterazione 2

k = 1

FLS1 F FLS2 l12

(+,+,+) F (7,9,11) (2,2,2)

(+,+,+) F (5,7,9) FLS1 = (5,7,9)

k = 2

FLS1 F FLS3 l13

(5,7,9) F (2,4,6) (4,4,4)

(5,7,9) F (-2,0,2) FLS1 = (-2,0,2)

k = 3

Non si aggiorna

k = 4

Non si aggiorna

k = 5

Non si aggiorna

k = 6

Non si aggiorna

Le iterazioni terminano e si passa al calcolo dello slittamento totale

fuzzy per ogni attività del progetto.

1. FTS1 = FLS1 FES1 = (-2,0,2) (0,0,0) = (-2,0,2)

2. FTS2 = FLS2 FES2 = (7,9,11) (9,9,9) = (-2,0,2)

3. FTS3 = FLS3 FES3 = (2,4,6) (4,4,4) = (-2,0,2)

4. FTS4 = FLS4 FES4 = (12,13,14) (12,13,14) = (0,0,0)

Si individuano tutti i possibili cammini della rete si calcola il tempo

totale fuzzy di slittamento per ogni cammino.

Page 54: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

54

P = {(1,2,4), (1,3,2,4), (1,3,4)}

1. P1 = (1,2,4)

FCPM (P1) = FTS1 FTS2 FTS4 = (-2,0,2) (-2,0,2)

(0,0,0) = (-4,0,4)

2. P2 = (1,3,2,4)

FCPM (P2) = FTS1 FTS3 FTS2 FTS4 = (-6,0,6)

3. P3 = (1,3,4)

FCPM (P3) = FTS1 FTS3 FTS4 = (-4,0,4)

Si trova il cammino critico fuzzy nella rete di progetto.

FCPM (PC) = min {FCPM(P1), FCPM(P2), FCPM(P3)} =

= min {(-4,0,4), (-6,0,6), (-4,0,4)} = (-6,0,6)

Il cammino critico fuzzy è P3 e il tempo di completamento del

progetto è approssimativamente 13, da FES4 =(12,13,14).

Page 55: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

55

CONCLUSIONI

Con il lavoro svolto si è perseguito l’obiettivo di sviluppare un

metodo per la gestione e l’ottimizzazione dei progetti, che potesse

costituire una valida alternativa alle metodologie classiche attualmente

in uso.

L’algoritmo per il calcolo del Makespan, basato sulla logica fuzzy,

può essere applicato da coloro che si apprestano ad analizzare un

progetto particolare, ossia dove siano presenti tra le varie attività

vincoli di precedenza più generali, che necessitano di uno studio più

approfondito e impegnativo, a fronte del vantaggio di flessibilità e di

approssimazione alla realtà che offrono.

La fase di messa a punto e di applicazione dell’algoritmo ad un

esempio di progetto è stata eseguita utilizzando i dati di una rete di

attività con relazioni di precedenza generalizzate, le cui durate sono

certe e deterministiche.

Risolvendo tale rete con l’applicazione dell’algoritmo di Bellman-

Ford modificato, si è giunti a risultati che se confrontati con quelli

ottenuti dall’algoritmo fuzzy proposto, si può facilmente verificare

come quest’ultimi risultano essere attendibili sia per quel che riguarda

il Makespan della rete del progetto e sia per il cammino critico

individuato.

In particolare, il valore medio del numero fuzzy triangolare

rappresentante il Makespan ottenuto con l’algoritmo fuzzy,

corrisponde al valore del tempo di completamento minimo ottenuto

dall’applicazione dell’algoritmo classico.

Questa equivalenza nei risultati deriva dal fatto che i time-lag delle

relazioni di precedenze generalizzate tra le attività, nell’applicazione

dell’algoritmo esposta in questo lavoro, sono stati rappresentati da un

Page 56: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

56

numero fuzzy triangolare avendo i valori di inf, mean e sup uguali tra

loro, costituendo in pratica un numero crisp.

Questa scelta è stata fatta intenzionalmente per poter confrontare i

risultati ottenuti dai due algoritmi e le rispettive equivalenze.

La logica fuzzy non ha la precisione caratteristica degli strumenti

analitici, e non risulta perciò conveniente se il modello matematico di

un processo è noto con precisione e sicurezza. Quando i fattori che

generano incertezza aumentano, amplificando la complessità del

problema, i modelli analitici iniziano a mostrare i loro limiti e i

sistemi fuzzy si rivelano molto spesso più adatti. In questi casi, le

capacità di adattamento e di semplificazione dei problemi, tipiche

della logica fuzzy, divengono predominanti.

Quindi, se le caratteristiche e i dati del progetto lo richiedono, i valori

che rappresentano gli istanti di tempo delle relazioni di precedenza

generali possono essere costituiti da veri e propri numeri fuzzy

triangolari, con i valori di inf, mean e sup diversi tra loro e l’algoritmo

per il calcolo del Makespan fuzzy può essere applicato senza

problemi.

Page 57: Il cammino critico di tipo fuzzy in una rete di attività con relazioni di precedenza generalizzate

57

BIBLIOGRAFIA

[1] Chanas S., Zielinski P., Critical path analysis in the network with fuzzy

activity time, Fuzzy Sets and Systems 122 (2001) 195-204.

[2] Nasution S.H., Fuzzy critical path method, IEEE Trans. Systems Man

Cybernet 24 (1994) 48-57.

[3] Elmaghraby S.E., Kamburowski J., The analysis of activity networks under

generalized precedence relations, Management Science 38 (1992)1245-1263.

[4] Facchinetti G., Ricci R., Muzzioli S., Note on Ranking Fuzzy Triangular

Numbers, International Journal of Intelligent Systems 13 (1998) 613-622.

[5] Zielinski P., On computing the latest starting times and floats of activities in a

network with imprecise durations, Fuzzy Sets and Systems 150 (2005) 53-76

[6] Fortin J., Zielinski P., Dubois D., Fargier H., Minimizing a Makespan Under

Uncertainty, International Joint Conferences on Artificial Intelligence, 2005.

[7] Liang G.S., Han T.C., Fuzzy Critical Path for Project Network, Information

and Management Sciences, Vol. 15, No 4 (2004) 29-40.

[8] Amato R., Chiappi R., Pianificazione e controllo dei progetti, Angeli, 1990.

[9] Nepi A., Introduzione al Project Management, Guerini e Associati, 1997

[10] Mannino C., Ottimizzazione nella gestione dei progetti, Presentazioni

Power Point, 2006.

[11] Damiani M., Lo Valvo P.P., Pipitone I., Le dimensioni de Project

Management:Organizzazione, metodi, relazioni, Edizioni Il sole 24 ore,2004.

[12] Cammarata S., Sistemi a logica fuzzy. Come rendere intelligenti le macchine, Etaslibri, 1997 Milano.

[13] Kosko B., Il fuzzy pensiero. Teoria e applicazioni della logica fuzzy, Baldini

e Castoldi, 2002.

[14] Sangalli A., L’importanza di essere fuzzy. Matematica e computer, Ballati

Boringheri, 2000 Torino.

[15] Pizzaleo A.G., Fuzzy logic. Come insegnare alle macchine a ragionare,

Castelvecchi, 2000 Roma.