Pages

Thursday, June 6, 2019

Constraint Programming Ideas Applied to a Housewife Paradigm

Last week I inadvertently solved a program on paper that could have been solved by constraint programming. Apparently, cp is not actually computer dependent, and was a way of solving optimization problems during World War II. Or was that linear programming? They are all just theoretical to me. So far.

I don't know how cp would have done it differently, but my strategy for solving the problem was to try to first see how the current plan fit with the actual constraints of reality, and then make changes based on how far they were off from it. There was also a fair amount of intuitive guessing.

I will probably write about this at greater length on my language learning blog. It's important to me, even though it seems very much like it fits in a category of topics that nobody else actually wants to talk about with me, though I guess listening (or reading) would be tolerable. The thing is, there's a big difference between how it feels to me to be passively listened to and actively inquired. It's hard for me not to conflate caring about my interests with caring about me, myself, because I try to care about what my friends care about. To my dissatisfaction, men - who tend to have a high enough dorkiness tolerance level to handle being my friend at all - just don't seem to work this way. There's not even a question about, "What does it mean that we are talking about x?" It's just the face value itself. I enjoy figuring out how the male mind works, but sometimes it just grates on my nerves, their inability to act like they care, their inability to see how women normally and intuitively interpret rejection. And how it's somehow always a flaw in me that this is how I see the world. When three of your closest friends do it simultaneously, even though I'm sure it's inadvertently, it hurts a lot.

When I was much younger, about ten or eleven, I spent a lot of time with my brother watching him play computer games. There were only a handful of games that fully consumed my attention; most of my time playing at a computer was watching, and occasionally taking turns. One day, walking home from school, I imagined if it were possible to turn somebody's daily life into a game, and what that could look like (yeah. Not the only one to think that up). I think I spent several weeks fantasizing about an imaginary world where one could live vicariously through an avatar (didn't know that word at the time - did it even exist in 1995?), where the problems to solve would be "fairer". Like, where I'd be able to know what to do in order to get the results I wanted. I was not a popular kid. I often said really awkward things, made verbal blunders. I wanted really badly to have close friends, but that didn't happen for me until college. I dreamed of a world where that was possible.

There isn't a formula for friend-making. You can't solve this problem with constraint programming. There are too many variables! You can't account for all, or even most, of them. But I suppose this might be the best algorithm for solving this problem. You wouldn't want to use a genetic algorithm, which really is just complicated guessing, except as a last ditch effort, when all else has failed.

I have half a dozen other problems sitting on my mind's desk, that could be solved with constraint programming methods.

For example, the problem of how to balance a dinner (or more specifically, a set of dinners) that everyone will eat, isn't too expensive, is healthy, tastes good, is easy to make, is not too much the same as something you recently ate, makes it so you don't eat too much meat in any given week (an aspect of my religion's health code that a lot of people ignore, but I don't), and if you eat it you'll have components in your fridge for the next day. It is a complicated equation, but it's far from unsolvable. Yes, some factors are subjective, but all can be measured and described with data. It's just you need a LOT of data to solve this problem. I've been working on it subconsciously and consciously for a decade. I guess most housewives end up not really solving it explicitly. I really want to do that. I want to write a book of ~12 sets of dinner menus, each of which is slightly tweaked and optimized for a different priority, all of which are designed to have the right amount of meat and leftovers, and to be very different. I'm at the stage in the project where I'm testing the menus. I created them in 2014. Part of the huge appeal for this project is the idea that I could just hit "print" and suddenly have a grocery list. Eventually, I would like to just hit "enter" and that list would order the meals online for me. So far no third party service has done all the things I wanted, especially not the interconnected menus. It is going to be a bring your own recipe cookbook planner, basically. Nothing quite like it really exists.

Another idea that I have which could be solved using constraint programming is the complicated management of temple name cards. It wasn't until late 2018 that you could print single ordinances; before, you had to print the card with all of them (baptism, confirmation, initiatory, endowment, sealing to parents if they are known; sealing to spouse is a different card). So you ended up with a stack of cards that are easy to lose. You reprint the card, there is a significant risk of duplicate temple work. The thought makes me sick, actually.

Why not just organize it in a spreadsheet? Well, you could, but there are some factors that don't fit so well there. Basically, these things have to be done in order, parents have to be sealed before their children can be sealed to them, and if you can get all the children of a couple together, you can seal them all at once, which is my goal. Sometimes you want to prioritize the expiration date of the cards. Sometimes you want to prioritize the older people first, since they have been waiting the longest. You always want to prioritize by which ordinances you can physically do; I can't stand as a proxy for my male ancestors, we don't always have time to do an endowment session (~1 hr 45 minutes), we might be going with unendowed people to the baptistry, somebody might want a stack of cards, etc. Basically, I don't know how to write a program to solve this, so I am creating that spreadsheet, but to use it, I will be constantly reordering the columns, which is somehow far from ideal. I am looking forward to working through my backlog of temple names eventually, and being able to just print the ordinances for that day in order to avoid risk of duplicate work. But that's about two years away.

What is "my" discipline? How do I look at the world? I was trained as a teacher. A lot of time was spent on learning about theories in pedagogy. I haven't officially touched that field for a decade.

What is my field, then? Where and how do my ideas "count"? How can they be classified? How can what I do mix with what other people do and create something even better? I'm a pretty average housewife. It's not really a field but a state. Sometimes I dislike everything about this state except for my children and my husband, who I really love. But the cost, the cost, the cost... Worth it, just barely.

I am quite confident that I could make a meaningful, important, valuable contribution to the world. That my ideas could cross over into other disciplines and create some new method or theory or whatever. This is something I would really like to see happen, and vice versa, to apply interesting ideas to the way I personally solve my problems. Why should my housewifey constraints apply to my mind? They really needn't.

No comments:

Post a Comment