Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26

    [Java-Jade]Algortimo per distibuire risorse(container)

    Salve ragazzi,
    sto sviluppando un programma ad agenti jade che funziona in questo modo:
    ho un agente principale che genera un numero variabile di agenti, poi questo stesso agente ottiene tramite l'ams una lista di tutti i container presenti nella piattaforma.
    Ora mi trovo in difficolta nel generare quello che voglio e cioè smistare i container tra gli agenti che ho creato.
    Mi spiego meglio:
    se per esempio ho 6 container e creo 6 agenti ad ognuno ci devo passare solo un container
    se ho sei container e creo 3 agenti ad ognuno ci devo passare 2 container e cosi via.

    Sto cercando qualche algoritmo che mi permetta di fare cio, qualche cosa di simile che possa essermi d'aiuto ma per il momento ogni mia ricerca è invana.

    Potete aiutarmi a trovare qualcosa di simile che mi aiuta a smistare questi container?
    O se avete qualche altra idea in merito ve ne sarei grato.

    Grazie mille
    Ciao Ciao

  2. #2
    In pratica stai creando un albero se vedi l'agente principale come una radice...
    quindi prova a fare così:
    Scorri l'albero e ogni volta che visiti un nodo gli passi un container, quindi, quando li hai visitati tutti ricominci da capo e quando arrivi all'iesimo+1 container esci;

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26
    grazie per la risposta ma l'agente principale non si sposta tra i nodi lui sa solo quanti container ci sono e crea i vari agenti a mio comando che possono essere 1 o 50 diciamo, poi dopo che li ha creati deve distribuire i vari container ai vari agenti e loro poi si spostano. Pero quello che non riesco a fare è come distribuire i container.,
    perche se creo un solo agente lui si deve muovere in tutti i container e questo è facile ma se ne creo 2 o piu come faccio a distribuire questi container? Che algoritmo posso utilizzare?

  4. #4
    Prima di tutto mi scuso di averti risposto solo ora...
    Sinceramente non ho capito esattamente che devi fare...
    ...e se provi a crearli all'interno di una lista? Poi per i vari riferimenti ti basterà riferirti alla posizione nella lista

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26
    Ciao grazie per la risposta, cerco di spiegarmi meglio .
    Allora io ho un agente che crea degli agenti mobili e ho una serie di container nella quale i miei agenti devono muoversi, sia gli agenti che i container sono a grandezza variabile quindi posso avere x container e y agenti.
    Il problema che sto tentando di risolvere è quello di associare in una qualche maniera i container ai vari agenti.
    Mi spiego con degli esempi:

    Allo startup io ho 10 container allora decido di creare 5 agenti, il mio algoritmo allora deve associare ad ognuno degli agenti 2 container, pero posso pure decidere di creare 2 agenti e allora devo dare 5 container ad ogni agente.

    Il mio problema è proprio nel creare questo algoritmo, e allora sto cercando se esiste qualcosa di gia implementato o qualche idea su come poterlo fare

    Grazie mille
    Ciao Ciao

  6. #6
    proviamo a vedere il problema strutturato così:

    Codice PHP:
    /*Dati:

    // Uso una LinkedList 

    Ho una lista di agenti mobili. // ListAg
    Ho una lista di container. // ListCont

    Problema:
    ogni agente dovrà avere il numero di Container diviso il numero di Agenti 
    (ListCont.size()/ListAg.size() ) quindi :

    //ora non so cosa accade se ListCont.size()%ListAg.size()!=0
    //...comunque ipotizzando che ciò non possa accadere */

    int x=ListCont.size()/ListAg.size();

    for(
    int i=0;i<ListAg.size();i++) //il metodo size restituisce la lunghezza della lista
    {
       for(
    int k=0;k<x;k++)
          
    ListAg.get(i).AssociaCont((x*i)+k); //il metodo get(i) mi dal'elemento in posizione iesima
    }

    //il metodo AssociaCont (metodo di Agente) non dovrà fare altro 
    //che aggiungere un puntatore ad una lista di puntatori a container

    //in alternativa potresti fare un puntatore ad un solo container, mentre ogni container
    //ha un puntatore all'agente ed uno ad un altro container (che può essere nullo) 
    Spero di aver capito questa volta dimmi se hai risolto o ti servono ulteriori chiarimenti

  7. #7
    non fai prima a dividere il numero dei container col numero di agenti e quello che avanza lo aggiungi al primo agente?

    nel senso: 10 container vs. 5 agenti = 2 container V agente... 10 container vs. 3 agenti = 3 container V agente e il primo agente si prende anche un quarto container.... 11 container vs. 3 agenti = 3 container ad agente e il primo e secondo agente se ne prendono 4... etc

    oppure fai una chiamata ricorsiva finchè container/agenti > 0 e il resto lo distribuisci in maniera lineare tra gli agenti
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26
    Originariamente inviato da mattealex
    proviamo a vedere il problema strutturato così:
    ...

    Spero di aver capito questa volta dimmi se hai risolto o ti servono ulteriori chiarimenti
    Ciao hai centrato in pieno il problema, quello che non ho capito (non per colpa tua ma mi trovo in uno stato confusionale ) è questo metodo ListAg.get(i).AssociaCont((x*i)+k) potresti spiegarmi cosa dovrebbe fare?

    Poi si devono usare per forza le linkedlist, lo chiedo perchè i container si trovano in una List e gli agenti in un Vector, il problema è che sto ampliando un progetto gia iniziato con tutti i problemi del caso.

    Grazie mille
    Ciao Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26
    Originariamente inviato da ermasto
    Ciao hai centrato in pieno il problema, quello che non ho capito (non per colpa tua ma mi trovo in uno stato confusionale ) è questo metodo ListAg.get(i).AssociaCont((x*i)+k) potresti spiegarmi cosa dovrebbe fare?

    Poi si devono usare per forza le linkedlist, lo chiedo perchè i container si trovano in una List e gli agenti in un Vector, il problema è che sto ampliando un progetto gia iniziato con tutti i problemi del caso.

    Grazie mille
    Ciao Ciao
    Dopo un po di abbandono ho dovuto riprendere questo argomento e non ho trovato una soluzione, mi potete aiutare su questo punto?
    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    26

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.