{"action":"opened","issue":{"url":"https://api.github.com/repos/MOEAFramework/MOEAFramework/issues/107","repository_url":"https://api.github.com/repos/MOEAFramework/MOEAFramework","labels_url":"https://api.github.com/repos/MOEAFramework/MOEAFramework/issues/107/labels{/name}","comments_url":"https://api.github.com/repos/MOEAFramework/MOEAFramework/issues/107/comments","events_url":"https://api.github.com/repos/MOEAFramework/MOEAFramework/issues/107/events","html_url":"https://github.com/MOEAFramework/MOEAFramework/issues/107","id":226600599,"number":107,"title":"representing a \"categorical\" variable","user":{"login":"fstonedahl","id":770633,"avatar_url":"https://avatars0.githubusercontent.com/u/770633?v=3","gravatar_id":"","url":"https://api.github.com/users/fstonedahl","html_url":"https://github.com/fstonedahl","followers_url":"https://api.github.com/users/fstonedahl/followers","following_url":"https://api.github.com/users/fstonedahl/following{/other_user}","gists_url":"https://api.github.com/users/fstonedahl/gists{/gist_id}","starred_url":"https://api.github.com/users/fstonedahl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fstonedahl/subscriptions","organizations_url":"https://api.github.com/users/fstonedahl/orgs","repos_url":"https://api.github.com/users/fstonedahl/repos","events_url":"https://api.github.com/users/fstonedahl/events{/privacy}","received_events_url":"https://api.github.com/users/fstonedahl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-05-05T15:00:43Z","updated_at":"2017-05-05T15:00:43Z","closed_at":null,"body":"I need to be able to represent variables that can be one of a discrete set of things -- e.g. \"spicy\", \"sweet\", \"sour\", \"salty\", \"minty\"\r\n\r\nI can picture doing this a few ways:\r\n1. Use an integer variable (e.g. 0...4).  But then some values are closer together in the genotype space, when they shouldn't be.  e.g. if using a real-backed integer encoding, then \"spicy\" is one step away from \"sweet\", but 3 steps away from \"salty\".  (binary-backed representation is worse, since it isn't \"fair\" unless N is a power of 2)\r\n2. Use a subset variable where k=1.  This logically makes sense, but feels a bit like overkill.  Also, the table at the end of the moea guide doesn't show whether any of the third party libraries support subset. Do they?\r\n3. Create a custom type & operator that mutates uniformly to another value in the set.  This wouldn't be hard, but I'm unclear on which search algorithms support custom types.   Is it all of the same MOEA algorithms that support *ALL* the built-in representations?  Do third-party algorithms support custom types at all?\r\n\r\nAdvice appreciated!\r\n"}}
{"actor":{"display_login":"fstonedahl"}}