Condition variables and monitors go hand in hand. There are various monitor protocols: Signal-and-Continue (SC), Signal-and-Urgent-Wait (SU), Signal-and-Exit, Urgent-Signal-and-Continue etc. Basically these protocols define what order threads get to enter, reenter, and exit methods in a monitor. They are defined by a first-come first-served (FCFS) queuing schemes to ensure their specific protocols are met.
I am proposing two protocols that are based on Voting and Auctions. The idea here is that threads get to enter in the order in which they were voted or if they won the auction. The auction would be like the auctions that google uses for placement of ads on a page.
The threads could base their decisions on data the monitor has about each of the threads, data the thread has collected, or some other way defined by the coder. This is the interesting part.
I think that there may be a way to use Arrow’s Theorem to provide some guarantees about some things.
Schepperle, H., & Bohm, K. (2008). Auction-Based Traffic Management: Towards Effective Concurrent Utilization of Road Intersections. E-Commerce Technology and the Fifth …, 105–112. doi:10.1109/CEC/EEE.2008.9
The above reference seems to be heading in the direction I was thinking except they were narrower.
And while I was writing this I found http://www.isi.edu/~lerman/projects/task/ has some good papers on mathematical modeling of multiagent systems.
Yesterday I learned about a real life online job shop scheduling problem. In the HVAC business calls come in to the office where the office person schedules the job and calls the guys out on the road to tell them where they go next. Sometimes those calls require immediate attention so assigning and saying when on the same day is an important problem to save money and customers.
I also was reading about influence diagrams. I am trying to come up with a way to have succinct universal communication that can easily be transformed into something humans can understand, have powerful expressions and be easily programmed. They don’t seem like they would be terribly useful because the text within the nodes still has to be generated somehow.
I also was considering Morphological analysis, a problem solving tool that is useful for problems where it is not possible (or feasible) to perform causal modeling or simulation (ie Wicked problems). However, I think that I may have to modify the goal slightly because it will be intractable since the number of variables may not be known. Either way it is still interesting.
I listened to Stephan Biller‘s talk on the future of manufacturing at GE. I was saddened to hear that like Boeing GE also doesn’t have many of things that I thought they would have.
GE and Boeing both make jet engines and neither has the software to do the rescheduling and re-planning and renegotiation of process when bad things happen. If something bad happens, people have to either re-plan or just wait for the part. Both options can costs a lot of money.
Also, they don’t have “smart” robots in their manufacturing plants. If one of them stops working then those robots that collaborate with that robot also must stop working. There is no fault tolerance when there should be. This also costs a lot of money.
Many AI and MAS/MAL type things that I am very interested in could be applied to solve these problems. However, for these companies there would be a huge up-front cost in developing these systems since they would be state-of-the-art.
I was reading about chemical engineers and they seem pretty cool. They then made think about the matrix and other sci-fi type things where the user is transported to a different reality. Then I thought about LSD and how some drugs can produce hallucinations. So, my idea is that in the far future instead of the Matrix or google glasses type reality/AR we will have chemical engineers that will create substances that will manipulate brain chemistry to create a heads up display (HUD). So this HUD will produce something similar to google glass except with no need for glasses. It also removes the need for computers being inserted into the person, like nanites. I think that after the age of humans connect with machines that we will develop a better understanding of the brain and be able to better control and enhance our consciousness. We may be able to combine the nanites and chemical engineering solutions.
Some ideas on how it will work:
Communication will be based on light emitted from the person. Each person can then have their own personal signature (light pattern) to identify them. We will be able to directly communicate ideas, images and thoughts to other people, computers and to our HUD.
We will be able to create “programs” like we do for computers that will produce an executable except that the executable will be an active chemical. The program can be created through a person’s HUD and directly created and start working. Or it can be created in mass by a manufacturing plant.
We may even harvest brains of animals to act as manufacturing plants… Not sure how animals will be worked into this world. Interesting though to explore this avenue.
The HUD may be able to better facilitate memory and intelligence. This could be used in conjunction with the nanites.
Could create an AI within you via the “programs”. Now that is a very very interesting concept. What does that imply? This is another thing to think about.
I think basically this will be the AR that will be created after 2213 to better facilitate that mind-device connection. See my ideas for that year http://drew.heliohost.org/wordpress/?p=158.
I was just reading http://goo.gl/RjKtRH a popsci article on a Feng Zhang who is researching the tools in molecular engineering to start doing things similar to this except to help people with brain diseases!
Seems like he has a really cool lab at MIT http://zlab.mit.edu/index.html.