ExampleAgent for Intelligent Agents Module in UoS COMP2208, Fall 2018
The wiki of this repository has some materials to help you start implementing your negotiating agent.
ExampleAgent for Intelligent Systems Module in UoS COMP2208
ExampleAgent for Intelligent Agents Module in UoS COMP2208, Fall 2018
The wiki of this repository has some materials to help you start implementing your negotiating agent.
Add a new page in the wiki
In the example given, in the Round 1 step 3:
Party 3 can accept c2 or makes a counter offer. Lets say it accepts this offer.
I suppose this is not really the end of round 1. Should also Party 1 accept this offer before this round finishes?
HI, I've been having a look at the log files and i get something really weird. They always start by betting really low even though the Example Agent is supposed to offer max utility at the beginning and they always offer the same bids at each other. Would you be able to have a look to the file and tell me where i could be going wrong?
How can I debug the program? Is it only console writing?
Can I debug in IDEA? I tried, but it doesn`t work.
Is it possible to use System.out.println in my agent class for debugging? Where will the output be displayed?
Hello.
I am using Ubuntu and can`t find log file in my log folder.
Where can it be?
Hi Taha!
I am a bit confused about the cost field in the items of an issue (in the xml files for the domains). What are they for?
And I also take the chance to ask whether we know beforehand which is going to be the exact set of domains that will be used for the competition.
Cheers!
I was writing to ask you if there is any example on how to create a custom bid from scratch from a given domain (e.g. choosing our own Values for each of the Issues). In the Github wiki there is an example on how to modify a bid but I could not find any resource that tells you how to generate a custom one from scratch.
After extracting all the negotiation logs relevant to our groups, I noticed that many of them show 'failed to construct agent, passed the deadline and killed'. While many of them seem to be caused by our agent, a considerable portion was caused by the opponent. What I found confusing is that even under the same settings/domains, failures to construct agent still happen with negotiation ended at round 1 even if the agents work just fine for other trials/repetitions. I've tried but is unable to identify the issue, so I was wondering if it is possible for you to explain to me what's going on?
When our group was doing Task 2 for Lab 3, we did not initialise the offerMap with HashMap<>(), which led to session kept stopping at the first round. However, the error was not logged by the Platform, and one of the instructors told us it should be a flaw of the genius platform and asked us to report it.
I try to implement the agent, but it doesn`t work in Ubuntu. I tried to do it manually. What can be the reason?
The loaded class seems to be of the wrong type.
ExampleAgent cannot be cast to negotiator.Agent
How can I run a load of tournaments to get a set of log files to analyse the data from?
Cheers,
Jo
https://github.com/tdgunes/ExampleAgent/wiki/Running-a-negotiation-session-via-command-line
Hi,
I wish to run the negotiation via command line so that I don't have to click again and again on the GUI.
Does the system support "Enable System.out print" while running via command line? I need the print information to do debug.
Thank you very much.
BR.
Rick
I want to implement one example from internet (from 2015).
What should I do to overcome this error?
My agent's negotiation will not return further information after the point of "Finished negotiation session in 3.6257" and console is returning
java.lang.IllegalStateException: domain does not match the negotiation domain
at negotiator.utility.UtilitySpaceTools.checkReadyForNegotiation(UtilitySpaceTools.java:98)
at negotiator.analysis.MultilateralAnalysis.initializeUtilitySpaces(MultilateralAnalysis.java:288)
at negotiator.analysis.MultilateralAnalysis.(MultilateralAnalysis.java:78)
at negotiator.logging.CsvLogger.logSingleSession(CsvLogger.java:251)
at negotiator.gui.progress.session.ActionDocumentModel.notifyChange(ActionDocumentModel.java:51)
at negotiator.gui.progress.session.ActionDocumentModel.notifyChange(ActionDocumentModel.java:1)
at listener.DefaultListenable.notifyChange(DefaultListenable.java:29)
at negotiator.session.SessionManager.runAndWait(SessionManager.java:136)
at negotiator.session.SessionManager.run(SessionManager.java:107)
at java.base/java.lang.Thread.run(Thread.java:844)
This will not happen if I comment out my change to a bid section (to be exact, the putvalue chunk of code). Anyone can help??
Is there a way of getting the names/ID of the other agents when the negotiation starts (before they send an offer)?
thanks
Hi Taha, I have one question which is how to calculate the Nash point, if i can guess the opponent's preferences.
As title says, requires an edit this page in wiki.
To continue on the same subject as #5, is there a way to explicitly know our evaluation of each single item in an issue, according to our preference profile?
For example, if we have the preference profile given in the wiki page Domains & Preference Profiles, you explained in #5 how to get the weight of each issue, but not how to get the evaluation of, say, the item "Chips and Nuts" in the issue "Food"
<issue index="1" name="Food" type="discrete">
<item value="Chips and Nuts" evaluation="3"></item>
...
</issue>
I checked in the API but couldn't find anything relevant.
Hi I'd like to take an array list of bids and sort them by utility. It seems tricky, as we don't have access to the bids class to create a comparator. is there any other way to do it, other than writing our own short sorting algorithm?
Jo
Is every round the system create(new) a object of agent and at the end of the round it will be destroyed? Or does the genius system call init func every round?
Since we are not allowed to use the persistent memory, we are not supposed to dynamically adapt our strategy according to the previous actions during the competition. But Can we adapt our strategy based on the current round of action received from the opponent agent?
The handin instruction did not mention how to use intellij on mac to generate jar file, how can we do this?
I can see the weights in the party domain xml file, but do I have to parse this file to access the weights or is there a better way?
Cheers, Jo
I am having a hard time trying to figure out how to get issue items(e.g. Catering, handmade food, or chips) and compare them, I have tried a lot of methods such as bid.getValue.
Can anyone help?
Taha, I want to ask, is it possible to make first 80% not maximum, but random bid? Because it seems that almost every agent maximize their utility and try to learn opponent model, what if we change our model intentionaly for that time? Of cause, it can happen, that our bargain will not be maximum for us, but what if we generate random value in a way when it will not be equal or more then the opponent model is proposed?
When this value is 0, the call to the parent constructor of AbstractNegotiationParty, tries to makes the following calls
AbstractNegotiationParty() CTOR -> estimateUtilitySpace() -> estimateUsingBidRanks() -> normalizeWeightsByMaxValues() ->normalizeAll()
In the last one normalizeAll() from the EvaluatorDiscrete() class it crashes, so this case should be handled or reported as an exception to the system.output, because currently you get the usual null popup with no additional information, and finding the real error could be time consuming. Other solution would be to allow ranking numbers greater than 0.
We manage to sort out the error, using a number of rankings greater than 0, but it should be useful to report as a bug to Genius Platform.
public void normalizeAll() {
double var1 = (Double)this.fEval.get(this.getMaxValue());
this.fEval.forEach((var3, var4) -> {
Double var10000 = (Double)this.fEval.put(var3, (Double)this.fEval.get(var3) / var1);
});
this.setWeight(var1);
}
There are a lot of papers describe Class Agent . Is it the same as AbstractNegotiationParty? I mean can we use it instead of ? Or is it compulsory to use AbstractNegotiationParty?
Can we add maven dependencies to our project or will that cause some issue?
I want to create folder with class , that will be used by agent. How should I address it?
For example, I have folder bin and the class CalcBid.class in it.
How should I access it?
So I tried changing something and adding the agent, but got this error message.
I then tried repasting in the original code, rebuilding, then adding the agent, and got the same message..
Then I tried again, setting up a new project, pasting in the code as in your video tutorial, and still get the same error message when I try to add the agent (in this case, ExampleAgent3) to the simulator.
Have you any idea what could be happening?
Hello, I can not run the Example Programming (API) in 'Accessing the evaluation of a value'
I just copy and paste the code ,but the last line 'System.out.println("Evaluation(getEvaluation): " + evaluatorDiscrete.getEvaluation(valueDiscrete));' does not work.
Error:(157, 103) java: unreported exception java.lang.Exception; must be caught or declared to be thrown
Therefore, I have to create a matrix to save each max value on evaluation. I want to find a help, why the example in WIKI does not work?
Taha, I also wanted to ask whether you have some papers from previous agents.
I found a good book, but I have no access to it.
Do you have some papers from this book?
http://www.springer.com/gb/book/9783319515618
I am particularly interested in this agent
Atlas3: A Negotiating Agent Based on Expecting Lower Limit of Concession Function
and this one
Pars Agent: Hybrid Time-Dependent, Random and Frequency-Based Bidding and Acceptance Strategies in Multilateral Negotiations
If we want to find out what preferences the others have, wouldn't it be a good idea to change the offer each time by conceding on just one issue, to see if the opponents reacted at all..
Hi I was trying to access weight and value of issues when uncertainty is enabled using the APIs in the wiki and the snippet from Lab 5. I understand that we can't get both weight and values because we would be able to calculate the utility with them, while we don't know the actual utility of the bids provided. However, I kept getting error 'NullPointerException' from the line EvaluatorDiscrete
evaluator = (EvaluatorDiscrete) additiveUtilitySpace.getEvaluator(issuenumber);.` I enabled the 'uncertainty option' of preference profiles and I added try catch method to handle exceptions. Not sure if it's because that neither weight nor value/evaluation can be obtained under uncertainty or it's just errors in code. Thank you!
I'm confusing how to calculate the mark.
There are two situation, first, we all at Nash point, second, i have the best utility and we are in pareto.
SO, in these two situation, which one can get the best mark?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.