Exemple #1
0
 public bool CheckPlanB(Agent a)
 {
     if (this.matrix[a.quadrant[0],a.quadrant[1]]+a.quantum > this.val)
     {
         return true;
     }
     return false;
 }
Exemple #2
0
        /**
         *1 Inicializar propuestas en ambos agentes
         *2 Buscar el maximo de la matriz
         *3 Guardar el cuadrante del maximo (para presentar en la propuesta)
         *4 Enviar la propuesta A (inicializar con mi maximo) (cuadrante y compensacion)
         *5 Comparar (revisa 2 cosas: la informacion que me enviaron ( si es menor que mi maximo, se rechaza; si es mayor Aceptar) revisar la siguiente propuesta anterior con la posible siguiente
         * (si la segunda propuesta es menor que mi segundo maximo, cambiar a segundo maximo y comenzar agente local de nuevo)
         *
         * si la propuesta del Agente A es mayor que la propuesta del Agente B, yo envío compensacion (quantum)
         * sino , si B > A, entonces yo acepto propuesta, identifico el valor de la garantia (propia) y lo envio
         *
         * esperar que responda. Recibir garantía
         *
         * al recibir la garantía responder EEEEExito.
         *
         * si responde No
         */
        public bool SendProposalto(Agent a)
        {
            //1. check for the best quadrant
            //1.5 check for the second best quadrant
            //2. before sending, check for similar quadrants, y que siempre sea mayor que los demas (el que stas enviando)
            //3. send wanted quadrant to agent 2 with quantum
            //4.
            //
            this.prevOffers.Add(new Proposal(a.quadrant[0],a.quadrant[1],a.quantum));
            Proposal p = new Proposal(a.quadrant[0], a.quadrant[1], a.quantum);
            bool accept = false;
            if ((this.matrix[p.x,p.y]+p.n) < this.matrix[this.quadrant[0],this.quadrant[1]])
            {
                accept = false;
                if (CheckPlanB(a))
                {
                    Console.WriteLine("Enviar warranty");
                    //send warranty
                }else
                {
                    //armar new  proposal;
                    Console.WriteLine("Armar nueva propuesta");
                    this.quantum += 1;
                    accept = false;

                    Console.WriteLine("Plan B, Agente 1:" + matrix[this.x1, this.x2] + "val:" + this.val);

                }
            }

            return accept;
        }