Jump to content

Artificial Stupidity


Recommended Posts

Set a slime tile to dig with priority 6. Set a compactor to store slime with priority 6.  One dupe runs down the mine, digs the slime out, then runs back empty-handed. Another dupe runs down the mine to pick up the slime.  It's frustrating when a colony dies because the task of mining requires twice the population it should.

Another ridiculous case: 0 Algae stored.  Bio distiller farm trickling out algae.  1 algae deoxylizer empty.  Every single dupe will run to the farm, pick up 1kg -- oops, I mean 1000.0g -- then run back to the deoxylizer.  Every single dupe, as many as there are distillers.  Then nothing else in the base gets done.  I can't set the priority of the deoxylizer to deter this action, I can only switch it off.

Hopefully at least the first case gets corrected.  I understand why the other one is hard to solve.

Link to comment
https://forums.kleientertainment.com/forums/topic/75138-artificial-stupidity/
Share on other sites

Make sure don't introduce new bug when fix AI problems. In the first scenario:

(a) 1 priority 6 dig job, 1 priority 6 store job.

We want a single dupe dig and store it.

Does it mean store jobs are more prior than dig jobs? In other words, a store job should have 0.1 more priority above any same level dig job?

(b) But what if there are 10000 store jobs, and 10 dig jobs? I.e you build a  compactor  for sandstone.

All dupes run for the store jobs, because we set store jobs prior than dig jobs!

But we may want dupes dig the 10 sandstones asap.

So a better solution is dig prior than store, but only the nearest dupe can take the job.

(c) But what if there are 10 dig jobs, and a compactor?

A miner dupe will dig the 10, and ignore the newly dug ores, because dig is more prior than store. Other dupes will run down the mine to store the ores, one by one. 

Is it desired? Maybe not. It's good when and only when the haulers have no other important jobs to do. In most cases, it's better to wait for the miner to dig some more ores and store them in one run.

(d) But what if we are digging toxic ores and want to store them asap?

...

There is no easy way to cure stupidity. This is the first rule of Duplicant Psychology.

 

Remember, this is alpha, there are a lot of bugs and also a lot of design problems. Nevertheless I agree with you.

8 hours ago, poindexter said:

Set a slime tile to dig with priority 6. Set a compactor to store slime with priority 6.  One dupe runs down the mine, digs the slime out, then runs back empty-handed. Another dupe runs down the mine to pick up the slime.  It's frustrating when a colony dies because the task of mining requires twice the population it should.

I also don't like digging being the least priority job, that should be sweep.

8 hours ago, poindexter said:

Another ridiculous case: 0 Algae stored.  Bio distiller farm trickling out algae.  1 algae deoxylizer empty.  Every single dupe will run to the farm, pick up 1kg -- oops, I mean 1000.0g -- then run back to the deoxylizer.  Every single dupe, as many as there are distillers.  Then nothing else in the base gets done.  I can't set the priority of the deoxylizer to deter this action, I can only switch it off.

This happens because every time the distillery drops a 1kg of algae it triggers (tells) there is algae to be delivered to the deoxidizer. A possible fix could be making distilleries drop 10kg (or let us decide the amount) instead of 1kg.

1 hour ago, lcy03406 said:

(b) But what if there are 10000 store jobs, and 10 dig jobs? I.e you build a  compactor  for sandstone.

Lvl 6 sweep > lvl 6 dig, you want it the other way round? No problem: lvl 7 dig > lvl 6 sweep.

1 hour ago, lcy03406 said:

(d) But what if we are digging toxic ores and want to store them asap?

No problem either!:

  1. Build a compactor
  2. Set it to only store what you want it to be immediately stored (bleach stone for instance)
  3. Make sure to don't have active the "sweep only" option.
  4. set the compactor with a higher priority, just to be sure, the highest.
  5. Dig. As soon a lump hits the ground a duplicant will pick it and store it.
  6. ???
  7. Profit.

The one I've found rather amusing is that you make and order to build something, then a duplicant will carry the appropriate resource, then it will do something else, then another duplicant will actually build it. Most of the time it's harmless, but if you build very far away it can be a little frustrating as it increases the build time.

How to avoid that: force the duplicant that delivered the materials be the one that builds with them.

34 minutes ago, Octyabr said:

The one I've found rather amusing is that you make and order to build something, then a duplicant will carry the appropriate resource, then it will do something else, then another duplicant will actually build it. Most of the time it's harmless, but if you build very far away it can be a little frustrating as it increases the build time.

How to avoid that: force the duplicant that delivered the materials be the one that builds with them.

Technically this may simply be caused by "a dupe finds a next job" occurs before "a job has been created", so the dupe who has prepared does not know he can build it soon.

Or, "a job is assigned to a dupe" occurs after "a job has been created" but before "a dupe becomes idle", so another dupe picks the build phase job before the preparing dupe realizes.

I think it's a pure bug and not related to priority gameplay. It SHOULD be fixed soon.

11 hours ago, poindexter said:

Another ridiculous case: 0 Algae stored.  Bio distiller farm trickling out algae.  1 algae deoxylizer empty.  Every single dupe will run to the farm, pick up 1kg -- oops, I mean 1000.0g -- then run back to the deoxylizer.  Every single dupe, as many as there are distillers.  Then nothing else in the base gets done.  I can't set the priority of the deoxylizer to deter this action, I can only switch it off.

I haven't tested this yet but. For the time being until this is fixed. what you could do is

Option 1: inclose the distilleries in a room with a door. Disable the distilleries for now then have a storage compactor inside the room and set its priority to 9 and only set to slime/algae. Once dupes have stored enough slime in the compactor (you can probably speed this process up by having one dupe to sweep only) order a dupe to go inside and untick all its jobs.  Have the door to the room disabled with the dupe inside and once trapped inside only tick its delivery job and have them stock up the distilleries. Once satisfied with the amount stocked up go to jobs window and in the delivery column at the very top, tick it so all dupes delivery is set to off (this will stop them from delivering to the deoxidizers). Enable the door, have the dupe come out, disable the door again and then let the distillers work for as long as you want since the room is inaccessible. remember to set delivery back on if you want.

After keeping track of how much algae is available via the top right material list or waiting for the distilleries to finish. Repeat  the process of trapping a dupe inside but this time have his job set to sweep only . After storing a substantial amount in the compactor (I recommend having them pick up all of it). Enable the door and since all the algae is compacted into one storage they will take as much as they can carry to the deoxidizer instead of 1 kg each trip 

Option 2: if you want to cut back alot of messing around (as I know above is TL;DR). you could dedicate one dupe to this job and trap him in the room and let him stockpile the distilleries/ store the algae in one step. Once there is enough algae in the storage compactor enable the door. Done. 

The 1st option is only there if you don't want to be one dupe short for a long period of time.

10 hours ago, Octyabr said:
  1. Dig. As soon a lump hits the ground a duplicant will pick it and store it.

My problem is that the duplicant that digs won't be the duplicant that hauls, even if the digger is passing by the compactor on his way to his next task.  If the mine is far away, welp, say goodbye to 2 dupes for 50% more time than 1 dupe could do the job.

I understand what's wrong:

  1. Task assignment for hauling occurs when the item hits the ground, moments after digging.
  2. Tasks are not dynamically re-assigned.
    1. The dupe that initially gets the job will complete it.
    2. Dupes complete jobs before getting another task
  3. Task assignment does not consider proximity (enough?).

What could happen is this:

  1. Dupe 1 mines a tile and turns around to go home / do another task
  2. The resource hits the ground and the task scheduler looks to assign a dupe to haul
  3. The scheduler assigns dupe 1 because he will complete the task in the shortest time / is the closest, his existing task is reassigned
10 hours ago, Octyabr said:

This happens because every time the distillery drops a 1kg of algae it triggers (tells) there is algae to be delivered to the deoxidizer. A possible fix could be making distilleries drop 10kg (or let us decide the amount) instead of 1kg.

I agree with this analysis and potential solution.  It's obvious why they're doing it, but this emergent behaviour is incredibly problematic.

Also, for the love of god, if something is 1kg, don't tell me it's 1000.0g.  That's not the correct number of significant figures for that SI prefix.

1 hour ago, poindexter said:

Dupes complete jobs before getting another task

This is problematic when they are already delivering something far from their beds, by the time they have delivered and came back it's already morning.

1 hour ago, poindexter said:

Also, for the love of god, if something is 1kg, don't tell me it's 1000.0g.  That's not the correct number of significant figures for that SI prefix.

I think the logic behind it it's something like "if the mass (in grams) is greater than a thousand, then display it in kilograms" where it should be "if the mass (in grams) is greater or equal than a thousand, then display it in kilograms"

24 minutes ago, Octyabr said:

This is problematic when they are already delivering something far from their beds, by the time they have delivered and came back it's already morning.

It's problematic in a bunch of cases, primarily because it prevents dynamic task reassignment.

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...