Anylogic Error: Can't Convert from Population to Resource Pool - anylogic

I am a new Anylogic user and I am trying to set up a simple simulation like so:
I have one ResourcePool named People.
People uses a Schedule named People_Schedule that is sourced from a DB table that has a date column and then the number of resources (employees) avalailable that specific interval.
2020-07-09 10:30 32
2020-07-09 11:00 35
2020-07-09 11:30 40
I have a par of Sources named G_Task and M_TASK.
Both of these Sources use Schedules that are sourced from a DB that has one column with a date column, a work type column, and then a number of work items (tasks) expected for that specific interval.
2020-07-09 10:30 M 100
2020-07-09 10:30 G 50
2020-07-09 11:00 M 125
I have a specific Service for each of my Sources, but my issue is that when selecting the ResourcePool setting in Properties, there is no dropdown for my ResourcePool named People. I can type in People which then allows both items to be highlighted at the same time on the grid like maybe they are linked, but when I hover on the error I am getting on the Resource Pool setting, I get this message:
Type mismatch: cannot convert from Main._People_Population to ResourcePool
What am I missing? I have tried searching through the Anylogic help and through Google, but I am finding nothing.
As a side question, are there any Anylogic users that have gotten past the learning curve and are comfortable with the level of troubleshooting out there on the web (or lack thereof)? I am used to being able to search SQL/Excel/Python questions and finding tons of resources almost immediately.
Thanks,
Ray

Related

Measuring system time of specific agent in anylogic

I've got 3 different product types of agent, which each go it's individual path within the fabric. How can i measure the average time the product type spends in the system?
My logic looks like this , and i wanted to implement the measurement in the first service, like this:, it will be completed in the last service like this :
Now I get some really high numbers, which are absolutely wrong. The process itself works fine, if you run the measurement with the code "//agent.enteredSystemP1 = time()", you will get a mean of 24 minutes, per product. But how can i get the mean per product type?
Just use the same if-elseif-else distinction in the 2nd service block as well.
Currently, any agent leaving the system adds time to any systemTimeDistribution

AnyLogic - modeling large number of different ResourcePools

I would like to model a larger number of employees (about 30) as a resource pool. Each employee is given parameters before the model starts, which the simulation end user can enter manually. Each employee has different working hours (shift work, different on each day of the week), different duration of the shift and different tasks assigned to them.
My first thought was to model each employee individually as a resource with their own shift schedule. That would be easiest, but I bet there is a nicer solution - anyone have any ideas?
If your workers have different settings such as different shift hours, they will not belong to the same ResourcePool.
You must build an agent that contains a ResourcePool (so that you can use it as a resource) with its another parameters such as capacity etc.
In my opinion, the most correct thing is to build a Population of them. Each item in the population is an amount of workers with identical parameters.

AnyLogic Source Block Creating Multiple Types of Agents with Different Interarrival Times

I am working in AnyLogic to create a model. I have a source that creates 17 different Agent Names. Each with their own inter arrival time. I would like for all 17 agents to arrive according to their interarrival time in parallel.
My database looks like this:
part_name iat processing_time
part_1 2.3 4.3
part_2 3.5 3.9
.....
.
.
.
I have searched and tried all I can online.
The AnyLogic documentation suggests creating an agent populatino, but I do not think that feature is supported anymore.
Help pls

How do I set random break times for each resource?

I would like to set a random break time of 2 hours everyday for each resource unit within a resource pool. I was able to add a schedule for break times set to 2 hours from 12 pm - 2 pm, however, I would like that time interval to be randomly selected for each resource everyday. Can anyone help me with this? I'm pretty new to AnyLogic.
Thanks!
AT
instead of using the break setting forcing you to define a schedule (which is not random), use the "failures/repairs" setting instead and apply randomness as below. Note that this may cause more than 1 break in a day, but on average, it will be 1 a day for 2 hrs. Note also that failures behave exactly like breaks functionally.
You can, of course, also apply your own custom ResourceTask, name it "breaks" and set it up there.
I will give you a solution that will ensure that your resources take 1 break per day:
Create a variable in your resource agent called timeForNextBreak with initial value uniform(0,22) ... since they take 2 hours break, you want this to happen between 00:00 and 22:00, this also assumes your simulation starts at 00:00
Creat a variable in your resource agent called timeRemainingInDay with initial value 24, this also assumes your simulation starts at 00:00
create a custom resource task called randomBreak and use it in your resource pool
In your randomBreak resource task, complete the data as follows.

DialogFlow confuses time and number

I want to define an intent PlaceReservation that would capture a restaurant reservation. The parameters for that would be numOfPeople and time. Both of those parameters are optional, so a user can say:
get a table for 5 people for 9pm
get a table for 5 people
get a table for 9pm
get a table
get a table for 5
get a table for 9pm for 5 people
get a table for 5 for 9pm
My problem is with the last one, get a table for 5 for 9pm the intent then captures 5 as the hour (5am) and ignores 9pm.
time is defined as a #sys.time system entity.
Is there a way to tell it to not accept simple integers as time, as I think this is what is confusing it?
Is there some other solution I'm missing?
I certainly understand why it is making the mistake, but we, as humans understand how to interpret it, and I want to help DialogFlow interpret it accordingly.
I've had a similar problem and haven't found a proper solution for it yet. In your case you could define your own time entity that consists of entries like 9pm or 10am or even expand it with a composite entity to also let users say "10 in the morning" https://dialogflow.com/docs/entities#dev_composite.
This is definitely confusing for the bot to understand/interpret which one is time & which one is the number of people. Even creating a separate entity for time like 9am/10am won't work cause this does not guarantee that user will enter 9am/pm only. They may not append am/pm ahead of time as well. The solution to your problem can be creating separate intents, first asking users for time & then for number of people. This way you reduce the complexity & can train the bot in a proper way. In addition, you can direct user to a certain direction instead of keeping your bot open for questions.